From 6f900cc45d7dd7f97430812b86b5c1d1693c8ae3 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Wed, 29 Aug 2018 17:01:32 +0300 Subject: [PATCH] merge from ecomp a88f0072 - Modern UI Issue-ID: VID-378 Change-Id: Ibcb23dd27f550cf32ce2fe0239f0f496ae014ff6 Signed-off-by: Ittay Stern --- vid-webpack-master/.angular-cli.json | 59 - vid-webpack-master/.babelrc | 3 + vid-webpack-master/.gitignore | 3 + vid-webpack-master/.slignore | 1 + vid-webpack-master/angular.json | 109 + vid-webpack-master/cypress.json | 9 +- .../cypress/integration/iFrames/ala-carte.e2e.ts | 262 +- .../integration/iFrames/auditInfo.modal.e2e.ts | 74 +- .../cypress/integration/iFrames/browse-sdc.e2e.ts | 102 + .../integration/iFrames/drawingBoard.e2e.ts | 10610 ++++- .../integration/iFrames/instantiationStatus.e2e.ts | 104 +- .../integration/iFrames/network.popup.e2e.ts | 3087 ++ .../cypress/integration/iFrames/permission.e2e.ts | 116 + .../cypress/integration/iFrames/retry.e2e.ts | 199 + .../iFrames/searchExistingInstance.e2e.ts | 87 + .../integration/iFrames/service.popup.e2e.ts | 58 +- .../integration/iFrames/serviceWithNetwork.e2e.ts | 105 + .../iFrames/serviceWithVnfNetwork.e2e.ts | 94 + .../integration/iFrames/softDeleteAndResume.e2e.ts | 241 + .../integration/iFrames/tenantIsolation.e2e.ts | 4 + .../cypress/integration/iFrames/viewEdit.e2e.ts | 165 +- .../iFrames/viewOnlyDrawingBoard.e2e.ts | 315 + .../cypress/integration/iFrames/vnf.popup.e2e.ts | 1856 + .../cypress/integration/iFrames/vnfGroups.e2e.ts | 890 + .../cypress/integration/iFrames/welcomePage.e2e.ts | 40 + .../integration/shared/error.message.popup.e2e.ts | 6 +- .../cypress/integration/shared/spinner.e2e.ts | 28 +- .../application/application.session.actions.ts | 57 +- .../cypress/support/elements/element.actions.ts | 19 +- .../support/elements/element.input.actions.ts | 19 +- .../support/elements/element.select.actions.ts | 10 + vid-webpack-master/cypress/support/index.js | 21 +- .../cypress/support/jsonBuilders/jsonBuilder.ts | 9 +- .../cypress/support/jsonBuilders/mocks/aai.mock.ts | 49 + .../mocks/jsons/aLaCarteAuditInfoMSO.json | 13 + .../jsonBuilders/mocks/jsons/aaiGetHomingData.json | 7 + .../mocks/jsons/aaiServiceInstances.json | 14 +- .../jsonBuilders/mocks/jsons/aaiServices.json | 176 +- .../jsonBuilders/mocks/jsons/aaiSubDetails.json | 55 +- ...aaiSubViewEditForActiveFabricConfigService.json | 52 + .../jsons/aaiSubViewEditForComplexService.json | 8 +- ...aiSubViewEditForCreatedFabricConfigService.json | 52 + ...bViewEditForDeactivatedFabricConfigService.json | 52 + .../aaiSubViewEditForFabricConfigService.json | 52 + .../aaiSubViewEditForServiceWithSomeVFModule.json | 355 + .../mocks/jsons/activeFabricConfigService.json | 51 + .../mocks/jsons/asyncInstantiation.json | 183 +- .../mocks/jsons/basicAsyncInstantiation.json | 82 +- .../mocks/jsons/basicFabricConfigService.json | 51 + .../mocks/jsons/basicNetworkInstance.json | 73 + .../mocks/jsons/basicNetworkModel.json | 56 + .../jsonBuilders/mocks/jsons/basicRedux.json | 122 +- .../jsons/bug616888/Dror_service1806_Macro1.json | 192 + .../jsons/bug616888/Dror_service1806_Macro_NW.json | 143 + .../mocks/jsons/bug616888/list-services.json | 47 + .../bug616888/service-with-configuration.json | 170 + .../list-services.json | 19 + .../serviceWithoutInstantiationType.json | 25 + .../mocks/jsons/categoryParametres.json | 14 +- .../mocks/jsons/createdFabricConfigService.json | 51 + .../jsons/deactivatedFabricConfigService.json | 51 + .../mocks/jsons/emptyServiceRedux.json | 155 +- .../support/jsonBuilders/mocks/jsons/flags.json | 18 +- .../mocks/jsons/responceForFailedInstance.json | 12 + .../support/jsonBuilders/mocks/jsons/service.json | 30 +- .../jsons/serviceModels/ecompNamingFalseModel.json | 1065 + .../jsons/serviceModels/serviceForNewViewEdit.json | 130 + .../serviceWithNetwork/aaiServiceInstances.json | 14 + .../aaiSubDetailsForServiceWithNetwork.json | 290 + .../aaiSubViewEditForServiceWithNetwork.json | 258 + .../serviceWithNetwork/serviceWithNetwork.json | 47 + .../mocks/jsons/serviceWithVnfAndVfModules.json | 1088 +- .../jsonBuilders/mocks/jsons/subscribers.json | 6 +- .../support/jsonBuilders/mocks/jsons/tenants.json | 233 + .../jsonBuilders/mocks/jsons/topMenuInfo.json | 6 +- .../support/jsonBuilders/mocks/jsons/version.json | 5 + .../mocks/jsons/vnfGroupBasicServiceInstance.json | 32 + .../mocks/jsons/vnfGroupsBasicModel.json | 1430 + .../support/jsonBuilders/mocks/permission.mock.ts | 29 + .../cypress/support/jsonBuilders/mocks/vid.mock.ts | 36 +- .../models/asyncInstantiation.model.ts | 37 + .../support/jsonBuilders/models/service.model.ts | 14 + .../drawingBoardComponentInfo.steps.ts | 22 + .../steps/drawingBoard/drawingBoardModel.steps.ts | 17 + .../steps/drawingBoard/drawingBoardTree.steps.ts | 27 + .../support/steps/drawingBoard/general.steps.ts | 33 + .../cypress/support/steps/fill.network.step.ts | 19 + .../support/steps/fill.service.popup.step.ts | 25 + .../cypress/support/steps/fill.vfModule.step.ts | 24 + .../cypress/support/steps/fill.vnf.popup.step.ts | 30 + .../support/steps/general/clickOutside.step.ts | 14 + .../steps/general/compareDeepObjects.step.ts | 32 + .../support/steps/genericForm/checkPopover.step.ts | 14 + .../steps/genericForm/genericFormAction.steps.ts | 12 + .../cypress/support/steps/login.step.ts | 1 - .../cypress/support/steps/menu.step.ts | 19 + .../steps/openInstanceAuditInfoModal.step.ts | 18 + vid-webpack-master/karma.conf.js | 37 - vid-webpack-master/package-lock.json | 42634 ++++++++++++------- vid-webpack-master/package.cypress.json | 20 + vid-webpack-master/package.json | 141 +- vid-webpack-master/polyfills.ts | 6 +- vid-webpack-master/pom.xml | 21 +- vid-webpack-master/processCss.js | 20 + .../src/app/angular-tree-component.scss | 83 + vid-webpack-master/src/app/app.component.html | 1 + vid-webpack-master/src/app/app.component.ts | 21 +- vid-webpack-master/src/app/app.module.ts | 74 +- vid-webpack-master/src/app/app.routing.ts | 55 +- .../src/app/browseSdc/browseSdc.component.html | 26 - .../src/app/browseSdc/browseSdc.component.scss | 59 - .../src/app/browseSdc/browseSdc.component.ts | 176 - .../src/app/browseSdc/browseSdc.module.ts | 35 - .../previous-versions.component.ts | 29 - .../previous-versions/previous-versions.css | 4 - .../previous-versions/previous-versions.html | 18 - .../browseSdc/vid-table/vid-table.component.html | 26 - .../browseSdc/vid-table/vid-table.component.scss | 40 - .../app/browseSdc/vid-table/vid-table.component.ts | 59 - .../instance-popup/instance-popup.components.ts | 9 - .../service-instance-details.component.ts | 238 - .../service-instance-details.html | 168 - .../service-instance-details.scss | 64 - .../service-instance-details.service.spec.ts | 26 - .../service-instance-details.service.ts | 22 - .../servicePopupDataModel.ts | 32 - .../service-popup/service-popup.component.ts | 144 - .../components/service-popup/service-popup.html | 52 - .../components/service-popup/service-popup.scss | 185 - .../service-popup/service-popup.service.spec.ts | 138 - .../service-popup/service-popup.service.ts | 33 - .../vnf-instance-details.component.ts | 275 - .../vnf-instance-details/vnf-instance-details.html | 114 - .../vnf-instance-details.service.spec.ts | 241 - .../vnf-instance-details.service.ts | 64 - .../vnf-instance-details/vnfPopupDataModel.ts | 26 - .../app/components/vnf-popup/vnf-popup-service.ts | 55 - .../components/vnf-popup/vnf-popup.components.ts | 190 - .../src/app/components/vnf-popup/vnf-popup.html | 54 - .../src/app/configuration/vid.configuration.ts | 98 - .../available-models-tree.component.html | 35 - .../available-models-tree.component.scss | 398 - .../available-models-tree.component.ts | 166 - .../available-models-tree.service.ts | 36 - .../drawing-board-header.component.html | 33 - .../drawing-board-header.component.scss | 95 - .../drawing-board-header.component.ts | 119 - .../drawing-board-tree.component.ts | 133 - .../drawing-board-tree/drawing-board-tree.html | 42 - .../src/app/drawingBoard/drawingBoard.module.ts | 89 +- .../src/app/drawingBoard/drawingBoard.routing.ts | 63 + .../servicePlanningGuard/drawingBoardGuard.ts | 56 + .../available-models-tree.component.html | 47 + .../available-models-tree.component.scss | 506 + .../available-models-tree.component.ts | 167 + .../available-models-tree.service.spec.ts | 145 +- .../available-models-tree.service.ts | 76 + .../component-info/component-info-model.ts | 26 + .../component-info/component-info.component.html | 20 + .../component-info/component-info.component.scss | 40 + .../component-info/component-info.component.ts | 40 + .../component-info/component-info.service.spec.ts | 93 + .../component-info/component-info.service.ts | 41 + .../drawing-board-header.component.html | 78 + .../drawing-board-header.component.scss | 176 + .../drawing-board-header.component.ts | 187 + .../drawing-board-header.service.spec.ts | 184 + .../drawing-board-header.service.ts | 86 + .../tmp_instansiate_request.ts | 2 +- .../dragAndDrop/dragAndDrop.model.ts | 15 + .../dragAndDrop/dragAndDrop.service.spec.ts | 227 + .../dragAndDrop/dragAndDrop.service.ts | 78 + .../drawing-board-tree.component.ts | 207 + .../drawing-board-tree/drawing-board-tree.html | 96 + .../drawing-board-tree/drawing-board-tree.scss | 237 +- .../drawing-board-tree.service.spec.ts | 147 + .../drawing-board-tree.service.ts | 129 + .../drawing-board-tree/instance.tree.generator.ts | 8 + .../tree-node-header-properties.component.html | 5 + .../tree-node-header-properties.component.scss | 24 + .../tree-node-header-properties.component.spec.ts | 25 + .../tree-node-header-properties.component.ts | 10 + .../service-planning/drawing-board.modes.ts | 8 + .../duplicate/duplicate-vnf.component.html | 19 + .../duplicate/duplicate-vnf.component.scss | 9 + .../duplicate/duplicate-vnf.component.ts | 25 + .../duplicate/duplicate.service.spec.ts | 449 + .../duplicate/duplicate.service.ts | 189 + .../objectsToTree/dynamicInputs.service.spec.ts | 24 + .../objectsToTree/dynamicInputs.service.ts | 143 + .../objectsToTree/models/basic.model.info.ts | 121 + .../configuration/configuration.model.info.spec.ts | 1500 + .../configuration/configuration.model.info.ts | 87 + .../models/network/network.model.info.spec.ts | 1553 + .../models/network/network.model.info.ts | 264 + .../relatedVnfMember.info.model.spec.ts | 1211 + .../relatedVnfMember.info.model.ts | 158 + .../models/vfModule/vfModule.model.info.spec.ts | 1596 + .../models/vfModule/vfModule.model.info.ts | 388 + .../models/vnf/vnf.model.info.spec.ts | 1671 + .../objectsToTree/models/vnf/vnf.model.info.ts | 332 + .../vnfGrouping/vnfGrouping.model.info.spec.ts | 291 + .../models/vnfGrouping/vnfGrouping.model.info.ts | 272 + .../objectToInstanceTree.service.spec.ts | 2764 ++ .../objectToInstanceTree.service.ts | 163 + .../objectToModelTree.service.spec.ts | 727 + .../objectToModelTree/objectToModelTree.service.ts | 98 + .../objectsToTree/objectToTree.service.ts | 51 + .../objectsToTree/shared.tree.service.spec.ts | 1761 + .../objectsToTree/shared.tree.service.ts | 278 + .../service-planning/search/search.component.html | 8 + .../service-planning/search/search.component.scss | 3 + .../search/search.component.spec.ts | 93 + .../service-planning/search/search.component.ts | 50 + .../service-planning.component.html | 22 +- .../service-planning.component.scss | 12 + .../service-planning/service-planning.component.ts | 70 +- .../typeNodeInformation.model.spec.ts | 59 + .../service-planning/typeNodeInformation.model.ts | 39 + .../app/factories/models/requestDetails.model.ts | 3 +- .../src/app/factories/mso.factory.spec.ts | 31 +- .../src/app/factories/mso.factory.ts | 26 +- .../basic/basic.featureFlag.directive.spec.ts | 93 + .../directive/basic/basic.featureFlag.directive.ts | 29 + .../src/app/featureFlag/featureFlag.module.ts | 32 + .../app/featureFlag/service/featureFlag.service.ts | 28 + vid-webpack-master/src/app/global.actions.ts | 23 - .../healthStatus/health-status.component.spec.ts | 64 + .../app/healthStatus/health-status.component.ts | 6 +- .../src/app/healthStatus/health-status.module.ts | 25 + .../src/app/healthStatus/health-status.routing.ts | 19 + .../src/app/home/home.component.e2e-spec.js | 13 - .../src/app/home/home.component.html | 3 - .../src/app/home/home.component.scss | 4 - vid-webpack-master/src/app/home/home.component.ts | 30 - .../InstantiationStatus.module.ts | 9 +- .../InstantiationStatus.routing.ts | 19 + .../auditInfoModal/auditInfoModal.component.ts | 83 - .../instantiationStatus.component.html | 60 +- .../instantiationStatus.component.service.spec.ts | 118 +- .../instantiationStatus.component.service.ts | 136 +- .../instantiationStatus.component.spec.ts | 251 +- .../instantiationStatus.component.ts | 170 +- .../src/app/modules/inputs.module.ts | 20 - vid-webpack-master/src/app/service.actions.ts | 197 - vid-webpack-master/src/app/service.reducer.spec.ts | 286 - vid-webpack-master/src/app/service.reducer.ts | 214 - .../src/app/services/aaiService/aai.service.ts | 189 - .../src/app/services/msoService/mso.service.ts | 26 - vid-webpack-master/src/app/services/sdc.service.ts | 28 - .../app/services/service-planning.service.spec.ts | 467 - .../src/app/services/service-planning.service.ts | 282 - vid-webpack-master/src/app/shared/api.service.ts | 6 - .../auditInfoModal/auditInfoModal.component.html | 34 +- .../auditInfoModal/auditInfoModal.component.scss | 18 +- .../auditInfoModal.component.service.spec.ts | 274 + .../auditInfoModal.component.service.ts | 79 + .../auditInfoModal.component.spec.ts | 203 + .../auditInfoModal/auditInfoModal.component.ts | 122 + .../dynamic-inputs.component.spec.ts | 157 + .../dynamic-inputs/dynamic-inputs.component.ts | 2 +- .../components/dynamic-inputs/dynamic-inputs.html | 2 +- .../components/dynamic-inputs/dynamic-inputs.scss | 0 .../components/ellipsis/ellipsis.component.ts | 28 +- .../components/error-msg/error-msg.component.html | 5 + .../components/error-msg/error-msg.component.scss | 22 + .../error-msg/error-msg.component.spec.ts | 48 + .../components/error-msg/error-msg.component.ts | 28 + .../shared/components/error-msg/error-msg.model.ts | 11 + .../components/error-msg/error-msg.service.spec.ts | 38 + .../components/error-msg/error-msg.service.ts | 22 + .../components/error/error.component.service.ts | 15 +- .../checkbox/checkbox.formControl.component.html | 11 + .../checkbox/checkbox.formControl.component.ts | 13 + .../dropdown/dropdown.formControl.component.html | 21 + .../dropdown/dropdown.formControl.component.scss | 7 + .../dropdown/dropdown.formControl.component.ts | 27 + .../component/file/file.formControl.component.html | 22 + .../component/file/file.formControl.component.scss | 87 + .../file/file.formControl.component.spec.ts | 62 + .../component/file/file.formControl.component.ts | 27 + .../formControls/component/file/fileUnit.enum.ts | 7 + .../input/input.formControl.component.html | 25 + .../input/input.formControl.component.scss} | 0 .../input/input.formControl.component.spec.ts | 68 + .../component/input/input.formControl.component.ts | 18 + .../multiselect.formControl.component.html | 16 + .../multiselect.formControl.component.spec.ts | 74 + .../multiselect.formControl.component.ts | 20 + .../number/number.formControl.component.html | 13 + .../number/number.formControl.component.ts | 12 + .../formControlMessageError.component.html | 5 + .../formControlMessageError.component.ts | 15 + .../formGeneralErrors.component.scss | 1 + .../formGeneralErrors/formGeneralErrors.service.ts | 7 + .../basic.control.generator.spec.ts | 48 + .../basic.control.generator.ts | 240 + .../network.control.generator.spec.ts | 1979 + .../networkGenerator/network.control.generator.ts | 247 + .../service.control.generator.spec.ts | 1859 + .../service.control.generator.ts | 331 + .../vfModule.control.generator.spec.ts | 2008 + .../vfModule.control.generator.ts | 349 + .../vnfGenerator/vnf.control.generator.spec.ts | 1943 + .../vnfGenerator/vnf.control.generator.ts | 243 + .../vnfGroup.control.generator.spec.ts | 364 + .../vnfGroup.control.generator.ts | 118 + .../genericForm/generic-form.component.html | 29 + .../genericForm/generic-form.component.scss} | 16 +- .../genericForm/generic-form.component.ts | 45 + .../genericForm/generic-form.service.spec.ts | 140 + .../components/genericForm/generic-form.service.ts | 54 + .../generic-form-popup.component.html | 70 + .../generic-form-popup.component.scss} | 37 +- .../generic-form-popup.component.ts | 145 + .../generic-form-popup.service.spec.ts | 1938 + .../genericFormPopup/generic-form-popup.service.ts | 93 + .../basic.popup.service.spec.ts | 92 + .../genericFormServices/basic.popup.service.ts | 54 + .../genericFormServices/generic-popup.interface.ts | 25 + .../network/network.popup.service.spec.ts | 2395 ++ .../network/network.popup.service.ts | 150 + .../service/service.popup.service.spec.ts | 2439 ++ .../service/service.popup.service.ts | 184 + .../vfModule/vfModule.popuop.service.spec.ts | 2407 ++ .../vfModule/vfModule.popuop.service.ts | 184 + .../vnf/vnf.popup.service.spec.ts | 3242 ++ .../genericFormServices/vnf/vnf.popup.service.ts | 158 + .../vnfGroup/vnfGroup.popup.service.spec.ts | 3239 ++ .../vnfGroup/vnfGroup.popup.service.ts | 158 + .../components/messageBox/messageBox.component.ts | 15 +- .../components/messageBox/messageBox.data.ts | 45 +- .../messageBox/messageBox.service.spec.ts | 21 +- .../components/messageBox/messageBox.service.ts | 8 +- .../model-information.component.ts | 23 +- .../model-information/model-information.html | 4 +- .../model-information.service.spec.ts | 32 + .../model-information/model-information.service.ts | 16 + .../model-information/model-information.spec.ts | 12 + .../no-content-message-and-icon.component.html | 5 +- .../no-content-message-and-icon.component.scss | 3 +- .../no-content-message-and-icon.component.ts | 1 + .../components/popover/popover.component.html | 5 +- .../components/popover/popover.component.scss | 1 + .../shared/components/popover/popover.component.ts | 34 +- .../members-table/member-table-row.model.ts | 6 + .../members-table/members-table.component.html | 75 + .../members-table/members-table.component.scss | 91 + .../members-table/members-table.component.ts | 57 + .../members-table/members-table.service.spec.ts | 270 + .../members-table/members-table.service.ts | 153 + .../search-members-modal.component.html | 35 + .../search-members-modal.component.scss | 89 + .../search-members-modal.component.ts | 82 + .../components/spinner/spinner.component.html | 8 +- .../components/spinner/spinner.component.spec.ts | 44 +- .../shared/components/spinner/spinner.component.ts | 50 +- .../src/app/shared/components/svg/svg-component.ts | 47 + .../numbersLettersUnderscore.validator.spec.ts | 39 - .../numbersLettersUnderscore.validator.ts | 20 - .../clickOutside/clickOutside.directive.spec.ts | 52 + .../clickOutside/clickOutside.directive.ts | 41 + .../inputPreventionPattern.directive.spec.ts | 48 +- .../inputPreventionPattern.directive.ts | 19 +- .../app/shared/directives/svg/svg.directive.html | 0 .../src/app/shared/directives/svg/svg.directive.ts | 34 - vid-webpack-master/src/app/shared/index.ts | 1 - .../src/app/shared/models/ServiceNodeTypes.ts | 4 +- .../src/app/shared/models/VnfMember.ts | 11 + .../formControlModels/checkboxFormControl.model.ts | 11 + .../formControlModels/dropdownFormControl.model.ts | 29 + .../formControlModels/fileFormControl.model.ts | 18 + .../models/formControlModels/formControl.model.ts | 121 + .../formControlModels/formControlTypes.enum.ts | 8 + .../formControlModels/formPopupDetails.model.ts | 55 + .../formControlModels/inputFormControl.model.ts | 19 + .../multiselectFormControl.model.ts | 27 + .../formControlModels/numberFormControl.model.ts | 16 + .../src/app/shared/models/inputTypes.ts | 14 +- .../src/app/shared/models/lcpRegion.ts | 10 +- .../src/app/shared/models/level1Instance.ts | 24 + .../src/app/shared/models/modelInfo.ts | 12 +- .../src/app/shared/models/networkInstance.ts | 14 + .../src/app/shared/models/networkModel.ts | 32 + .../src/app/shared/models/networkTreeNode.ts | 23 + .../src/app/shared/models/nodeInstance.ts | 21 + .../src/app/shared/models/nodeModel.ts | 66 +- .../src/app/shared/models/productFamily.ts | 2 +- .../src/app/shared/models/serviceInstance.ts | 43 +- .../app/shared/models/serviceInstanceActions.ts | 24 + .../src/app/shared/models/serviceModel.ts | 11 +- .../src/app/shared/models/serviceProxyModel.ts | 22 + vid-webpack-master/src/app/shared/models/tenant.ts | 2 + .../src/app/shared/models/treeNodeModel.ts | 53 + .../src/app/shared/models/vfModule.ts | 9 +- .../src/app/shared/models/vfModuleInstance.ts | 13 +- .../src/app/shared/models/vfModuleTreeNode.ts | 22 +- .../src/app/shared/models/vnfGroupInstance.ts | 13 + .../src/app/shared/models/vnfGroupModel.ts | 32 + .../src/app/shared/models/vnfGroupTreeNode.ts | 12 + .../src/app/shared/models/vnfInstance.ts | 21 +- .../src/app/shared/models/vnfModel.ts | 51 +- .../src/app/shared/models/vnfTreeNode.ts | 23 +- .../capitalize/capitalize-and-format.pipe.spec.ts | 20 +- .../pipes/capitalize/capitalize-and-format.pipe.ts | 2 +- .../src/app/shared/pipes/data-filter.pipe.ts | 29 - .../pipes/dataFilter/data-filter.pipe.spec.ts | 52 + .../shared/pipes/dataFilter/data-filter.pipe.ts | 47 + .../dynamic-input-label.pipe.spec.ts | 36 +- .../dynamicInputLabel/dynamic-input-label.pipe.ts | 2 +- .../pipes/highlight/highlight-filter.pipe.spec.ts | 29 + .../pipes/{ => highlight}/highlight-filter.pipe.ts | 2 + .../pipes/objectToArray/objectToArray.pipe.spec.ts | 35 + .../pipes/objectToArray/objectToArray.pipe.ts | 8 + .../app/shared/pipes/order/orderBy.pipe.spec.ts | 60 + .../src/app/shared/pipes/order/orderBy.pipe.ts | 35 + .../src/app/shared/pipes/safe/safe.pipe.spec.ts | 60 + .../src/app/shared/pipes/safe/safe.pipe.ts | 22 + .../pipes/serviceInfo/serviceInfo.pipe.spec.ts | 21 +- .../shared/pipes/serviceInfo/serviceInfo.pipe.ts | 4 +- .../shared/resolvers/flag/flag.resolver.spec.ts | 61 + .../resolvers/flag/flag.resolver.ts} | 4 +- .../shared/resolvers/retry/retry.resolver.spec.ts | 306 + .../app/shared/resolvers/retry/retry.resolver.ts | 27 + .../resolvers/viewEdit/viewEdit.resolver.spec.ts | 82 + .../shared/resolvers/viewEdit/viewEdit.resolver.ts | 40 + .../health-status.service.spec.ts | 60 - .../healthStatusService/health-status.service.ts | 6 +- .../shared/server/serviceInfo/AuditStatus.model.ts | 4 +- .../shared/server/serviceInfo/serviceInfo.model.ts | 6 + .../server/serviceInfo/serviceInfo.service.spec.ts | 77 +- .../server/serviceInfo/serviceInfo.service.ts | 49 +- .../services/aaiService/aai.actions.ts | 4 +- .../{ => shared}/services/aaiService/aai.epics.ts | 40 +- .../shared/services/aaiService/aai.service.spec.ts | 497 + .../app/shared/services/aaiService/aai.service.ts | 619 + .../services/aaiService/model/crawledAaiService.ts | 30 + .../getAicZonesResponseInterface.ts | 0 .../getCategoryParamsResponseInterface.ts | 0 .../getServiceModelResponseInterface.ts | 2 +- .../getServicesResponseInterface.ts | 0 .../getSubDetailsResponseInterface.ts | 0 .../getSubscribersResponseInterface.ts | 2 +- .../{ => shared}/services/configuration.service.ts | 9 +- .../src/app/{ => shared}/services/data.service.ts | 0 .../default.data.generator.service.spec.ts | 372 +- .../default.data.generator.service.ts | 448 +- .../featureFlag/feature-flags.service.spec.ts | 47 + .../services/featureFlag/feature-flags.service.ts | 29 + .../shared/services/msoService/mso.service.spec.ts | 37 + .../app/shared/services/msoService/mso.service.ts | 38 + vid-webpack-master/src/app/shared/shared.module.ts | 178 +- .../src/app/{ => shared}/store/epics.ts | 4 +- vid-webpack-master/src/app/shared/store/module.ts | 36 + .../src/app/shared/store/reducers.ts | 16 + .../storeUtil/utils/general/general.action.spec.ts | 157 + .../storeUtil/utils/general/general.actions.ts | 150 + .../utils/general/general.reducers.spec.ts | 376 + .../storeUtil/utils/general/general.reducers.ts | 147 + .../storeUtil/utils/global/global.actions.ts | 37 + .../storeUtil/utils/global/global.reducers.spec.ts | 48 + .../storeUtil/utils/global/global.reducers.ts} | 18 +- .../src/app/shared/storeUtil/utils/main.reducer.ts | 67 + .../storeUtil/utils/network/network.actions.ts | 94 + .../utils/network/network.reducers.spec.ts | 114 + .../storeUtil/utils/network/network.reducers.ts | 102 + .../relatedVnfMember/relatedVnfMember.actions.ts | 68 + .../relatedVnfMember.reducers.spec.ts | 153 + .../relatedVnfMember/relatedVnfMember.reducers.ts | 58 + .../storeUtil/utils/service/service.actions.ts | 102 + .../utils/service/service.reducers.spec.ts | 499 + .../storeUtil/utils/service/service.reducers.ts | 107 + .../storeUtil/utils/vfModule/vfModule.actions.ts | 105 + .../utils/vfModule/vfModule.reducers.spec.ts | 248 + .../storeUtil/utils/vfModule/vfModule.reducers.ts | 165 + .../app/shared/storeUtil/utils/vnf/vnf.actions.ts | 99 + .../storeUtil/utils/vnf/vnf.reducers.spec.ts | 132 + .../app/shared/storeUtil/utils/vnf/vnf.reducers.ts | 124 + .../storeUtil/utils/vnfGroup/vnfGroup.actions.ts | 82 + .../utils/vnfGroup/vnfGroup.reducers.spec.ts | 140 + .../storeUtil/utils/vnfGroup/vnfGroup.reducers.ts | 108 + .../src/app/shared/utils/constants.ts | 9 +- .../httpInterceptor/httpInterceptor.service.ts | 27 +- .../src/app/shared/utils/log/log.service.spec.ts | 46 +- .../src/app/shared/utils/util.spec.ts | 31 + .../src/app/{ => shared}/utils/utils.ts | 4 - .../uniqueName/uniqueName.validator.spec.ts | 41 + .../validators/uniqueName/uniqueName.validator.ts | 100 + vid-webpack-master/src/app/store/module.ts | 29 - vid-webpack-master/src/app/store/reducers.ts | 17 - .../src/app/support/support.component.ts | 20 + .../form-async/form-async.component.ts | 52 +- .../form-async/form-async.service.spec.ts | 31 + .../vlanTagging/form-async/form-async.service.ts | 12 + .../form-async/form-async.style.scss | 0 .../form-async/form-async.template.html | 6 +- .../network-selector/network-selector.component.ts | 4 +- .../app/vlanTagging/vlan-tagging.component.html | 2 +- .../src/app/vlanTagging/vlan-tagging.component.ts | 31 +- .../src/app/vlanTagging/vlan-tagging.module.ts | 14 +- .../src/app/vlanTagging/vlan-tagging.routing.ts | 19 + vid-webpack-master/src/assets/img/X_o.svg | 8 - vid-webpack-master/src/assets/img/indesign.svg | 10 + vid-webpack-master/src/assets/img/inprogress.svg | 14 - vid-webpack-master/src/assets/img/pause.svg | 14 - vid-webpack-master/src/assets/img/pending.svg | 14 - vid-webpack-master/src/assets/img/plus-circle.svg | 15 + vid-webpack-master/src/assets/img/stoped.svg | 14 - .../src/assets/img/success+Circle.svg | 14 - vid-webpack-master/src/assets/img/vid-logo.jpg | Bin 0 -> 1893 bytes vid-webpack-master/src/index.html | 4 +- vid-webpack-master/src/jest.config.js | 45 + vid-webpack-master/src/jestGlobalMocks.ts | 15 + vid-webpack-master/src/public/index.html | 7 +- vid-webpack-master/src/setupJest.ts | 2 + vid-webpack-master/src/style/app.scss | 4 +- vid-webpack-master/src/styles.scss | 72 +- vid-webpack-master/src/tsconfig.spec.json | 14 +- vid-webpack-master/src/wallabyTest.ts | 21 + vid-webpack-master/tsconfig.json | 4 +- vid-webpack-master/tslint.json | 90 +- vid-webpack-master/wallaby.js | 29 + 522 files changed, 112325 insertions(+), 22654 deletions(-) delete mode 100644 vid-webpack-master/.angular-cli.json create mode 100644 vid-webpack-master/.babelrc create mode 100644 vid-webpack-master/.slignore create mode 100644 vid-webpack-master/angular.json create mode 100644 vid-webpack-master/cypress/integration/iFrames/browse-sdc.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/network.popup.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/permission.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/retry.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/searchExistingInstance.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/serviceWithNetwork.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/serviceWithVnfNetwork.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/softDeleteAndResume.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/viewOnlyDrawingBoard.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/vnf.popup.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/vnfGroups.e2e.ts create mode 100644 vid-webpack-master/cypress/integration/iFrames/welcomePage.e2e.ts create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aLaCarteAuditInfoMSO.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiGetHomingData.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForServiceWithSomeVFModule.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkInstance.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkModel.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro_NW.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/list-services.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/service-with-configuration.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/list-services.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/serviceWithoutInstantiationType.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/responceForFailedInstance.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/serviceForNewViewEdit.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiServiceInstances.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubDetailsForServiceWithNetwork.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubViewEditForServiceWithNetwork.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/serviceWithNetwork.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/tenants.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/version.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupsBasicModel.json create mode 100644 vid-webpack-master/cypress/support/jsonBuilders/mocks/permission.mock.ts create mode 100644 vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardComponentInfo.steps.ts create mode 100644 vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardModel.steps.ts create mode 100644 vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardTree.steps.ts create mode 100644 vid-webpack-master/cypress/support/steps/drawingBoard/general.steps.ts create mode 100644 vid-webpack-master/cypress/support/steps/fill.network.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/fill.vfModule.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/fill.vnf.popup.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/general/clickOutside.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/general/compareDeepObjects.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/genericForm/checkPopover.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/genericForm/genericFormAction.steps.ts create mode 100644 vid-webpack-master/cypress/support/steps/menu.step.ts create mode 100644 vid-webpack-master/cypress/support/steps/openInstanceAuditInfoModal.step.ts delete mode 100644 vid-webpack-master/karma.conf.js create mode 100644 vid-webpack-master/package.cypress.json create mode 100644 vid-webpack-master/processCss.js create mode 100644 vid-webpack-master/src/app/angular-tree-component.scss delete mode 100644 vid-webpack-master/src/app/browseSdc/browseSdc.component.html delete mode 100644 vid-webpack-master/src/app/browseSdc/browseSdc.component.scss delete mode 100644 vid-webpack-master/src/app/browseSdc/browseSdc.component.ts delete mode 100644 vid-webpack-master/src/app/browseSdc/browseSdc.module.ts delete mode 100644 vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.component.ts delete mode 100644 vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.css delete mode 100644 vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.html delete mode 100644 vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.html delete mode 100644 vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.scss delete mode 100644 vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.ts delete mode 100644 vid-webpack-master/src/app/components/instance-popup/instance-popup.components.ts delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.html delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.scss delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.spec.ts delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.ts delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-instance-details/servicePopupDataModel.ts delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-popup.component.ts delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-popup.html delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-popup.scss delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-popup.service.spec.ts delete mode 100644 vid-webpack-master/src/app/components/service-popup/service-popup.service.ts delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.component.ts delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.html delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.spec.ts delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.ts delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnfPopupDataModel.ts delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-popup.components.ts delete mode 100644 vid-webpack-master/src/app/components/vnf-popup/vnf-popup.html delete mode 100644 vid-webpack-master/src/app/configuration/vid.configuration.ts delete mode 100644 vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.html delete mode 100644 vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.scss delete mode 100644 vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.ts delete mode 100644 vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.ts delete mode 100644 vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.html delete mode 100644 vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.scss delete mode 100644 vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.ts delete mode 100644 vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.component.ts delete mode 100644 vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.html create mode 100644 vid-webpack-master/src/app/drawingBoard/drawingBoard.routing.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/guards/servicePlanningGuard/drawingBoardGuard.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts rename vid-webpack-master/src/app/drawingBoard/{ => service-planning}/available-models-tree/available-models-tree.service.spec.ts (83%) create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.html create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts rename vid-webpack-master/src/app/drawingBoard/{ => service-planning}/drawing-board-header/tmp_instansiate_request.ts (97%) create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.model.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html rename vid-webpack-master/src/app/drawingBoard/{ => service-planning}/drawing-board-tree/drawing-board-tree.scss (53%) create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/instance.tree.generator.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.html create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.scss create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board.modes.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.html create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.scss create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.html create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.scss create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.spec.ts create mode 100644 vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.ts create mode 100644 vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.spec.ts create mode 100644 vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.ts create mode 100644 vid-webpack-master/src/app/featureFlag/featureFlag.module.ts create mode 100644 vid-webpack-master/src/app/featureFlag/service/featureFlag.service.ts delete mode 100644 vid-webpack-master/src/app/global.actions.ts create mode 100644 vid-webpack-master/src/app/healthStatus/health-status.component.spec.ts create mode 100644 vid-webpack-master/src/app/healthStatus/health-status.module.ts create mode 100644 vid-webpack-master/src/app/healthStatus/health-status.routing.ts delete mode 100644 vid-webpack-master/src/app/home/home.component.e2e-spec.js delete mode 100644 vid-webpack-master/src/app/home/home.component.html delete mode 100644 vid-webpack-master/src/app/home/home.component.scss delete mode 100644 vid-webpack-master/src/app/home/home.component.ts create mode 100644 vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.routing.ts delete mode 100644 vid-webpack-master/src/app/instantiationStatus/auditInfoModal/auditInfoModal.component.ts delete mode 100644 vid-webpack-master/src/app/modules/inputs.module.ts delete mode 100644 vid-webpack-master/src/app/service.actions.ts delete mode 100644 vid-webpack-master/src/app/service.reducer.spec.ts delete mode 100644 vid-webpack-master/src/app/service.reducer.ts delete mode 100644 vid-webpack-master/src/app/services/aaiService/aai.service.ts delete mode 100644 vid-webpack-master/src/app/services/msoService/mso.service.ts delete mode 100644 vid-webpack-master/src/app/services/sdc.service.ts delete mode 100644 vid-webpack-master/src/app/services/service-planning.service.spec.ts delete mode 100644 vid-webpack-master/src/app/services/service-planning.service.ts delete mode 100644 vid-webpack-master/src/app/shared/api.service.ts rename vid-webpack-master/src/app/{instantiationStatus => shared/components}/auditInfoModal/auditInfoModal.component.html (68%) rename vid-webpack-master/src/app/{instantiationStatus => shared/components}/auditInfoModal/auditInfoModal.component.scss (90%) create mode 100644 vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/dynamic-inputs/dynamic-inputs.component.spec.ts rename vid-webpack-master/src/app/{ => shared}/components/dynamic-inputs/dynamic-inputs.component.ts (98%) rename vid-webpack-master/src/app/{ => shared}/components/dynamic-inputs/dynamic-inputs.html (95%) rename vid-webpack-master/src/app/{ => shared}/components/dynamic-inputs/dynamic-inputs.scss (100%) create mode 100644 vid-webpack-master/src/app/shared/components/error-msg/error-msg.component.html create mode 100644 vid-webpack-master/src/app/shared/components/error-msg/error-msg.component.scss create mode 100644 vid-webpack-master/src/app/shared/components/error-msg/error-msg.component.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/error-msg/error-msg.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/error-msg/error-msg.model.ts create mode 100644 vid-webpack-master/src/app/shared/components/error-msg/error-msg.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/error-msg/error-msg.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/checkbox/checkbox.formControl.component.html create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/checkbox/checkbox.formControl.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/dropdown/dropdown.formControl.component.html create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/dropdown/dropdown.formControl.component.scss create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/dropdown/dropdown.formControl.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/file/file.formControl.component.html create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/file/file.formControl.component.scss create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/file/file.formControl.component.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/file/file.formControl.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/file/fileUnit.enum.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/input/input.formControl.component.html rename vid-webpack-master/src/app/{instantiationStatus/auditInfoModal/auditInfoModal.component.service.ts => shared/components/formControls/component/input/input.formControl.component.scss} (100%) create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/input/input.formControl.component.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/input/input.formControl.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/multiselect/multiselect.formControl.component.html create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/multiselect/multiselect.formControl.component.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/multiselect/multiselect.formControl.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/number/number.formControl.component.html create mode 100644 vid-webpack-master/src/app/shared/components/formControls/component/number/number.formControl.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/formControls/errorMessage/formControlMessageError.component.html create mode 100644 vid-webpack-master/src/app/shared/components/formControls/errorMessage/formControlMessageError.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/formGeneralErrors/formGeneralErrors.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/basic.control.generator.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/basic.control.generator.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/service.control.generator.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/service.control.generator.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/generic-form.component.html rename vid-webpack-master/src/app/{components/vnf-popup/vnf-instance-details/vnf-instance-details.scss => shared/components/genericForm/generic-form.component.scss} (84%) create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/generic-form.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/generic-form.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericForm/generic-form.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.component.html rename vid-webpack-master/src/app/{components/vnf-popup/vnf-popup.scss => shared/components/genericFormPopup/generic-form-popup.component.scss} (84%) create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/basic.popup.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/basic.popup.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/generic-popup.interface.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/network/network.popup.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/network/network.popup.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/service/service.popup.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/service/service.popup.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/model-information/model-information.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/model-information/model-information.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/model-information/model-information.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/member-table-row.model.ts create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.html create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.scss create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.service.ts create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.html create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.scss create mode 100644 vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.ts create mode 100644 vid-webpack-master/src/app/shared/components/svg/svg-component.ts delete mode 100644 vid-webpack-master/src/app/shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator.spec.ts delete mode 100644 vid-webpack-master/src/app/shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator.ts create mode 100644 vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts create mode 100644 vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.ts delete mode 100644 vid-webpack-master/src/app/shared/directives/svg/svg.directive.html delete mode 100644 vid-webpack-master/src/app/shared/directives/svg/svg.directive.ts delete mode 100644 vid-webpack-master/src/app/shared/index.ts create mode 100644 vid-webpack-master/src/app/shared/models/VnfMember.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/checkboxFormControl.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/dropdownFormControl.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/fileFormControl.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/formControl.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/formControlTypes.enum.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/formPopupDetails.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/inputFormControl.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/multiselectFormControl.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/formControlModels/numberFormControl.model.ts create mode 100644 vid-webpack-master/src/app/shared/models/level1Instance.ts create mode 100644 vid-webpack-master/src/app/shared/models/networkInstance.ts create mode 100644 vid-webpack-master/src/app/shared/models/networkModel.ts create mode 100644 vid-webpack-master/src/app/shared/models/networkTreeNode.ts create mode 100644 vid-webpack-master/src/app/shared/models/nodeInstance.ts create mode 100644 vid-webpack-master/src/app/shared/models/serviceInstanceActions.ts create mode 100644 vid-webpack-master/src/app/shared/models/serviceProxyModel.ts create mode 100644 vid-webpack-master/src/app/shared/models/treeNodeModel.ts create mode 100644 vid-webpack-master/src/app/shared/models/vnfGroupInstance.ts create mode 100644 vid-webpack-master/src/app/shared/models/vnfGroupModel.ts create mode 100644 vid-webpack-master/src/app/shared/models/vnfGroupTreeNode.ts delete mode 100644 vid-webpack-master/src/app/shared/pipes/data-filter.pipe.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.spec.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.spec.ts rename vid-webpack-master/src/app/shared/pipes/{ => highlight}/highlight-filter.pipe.ts (86%) create mode 100644 vid-webpack-master/src/app/shared/pipes/objectToArray/objectToArray.pipe.spec.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/objectToArray/objectToArray.pipe.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/order/orderBy.pipe.spec.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/order/orderBy.pipe.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/safe/safe.pipe.spec.ts create mode 100644 vid-webpack-master/src/app/shared/pipes/safe/safe.pipe.ts create mode 100644 vid-webpack-master/src/app/shared/resolvers/flag/flag.resolver.spec.ts rename vid-webpack-master/src/app/{services/flags.resolve.ts => shared/resolvers/flag/flag.resolver.ts} (77%) create mode 100644 vid-webpack-master/src/app/shared/resolvers/retry/retry.resolver.spec.ts create mode 100644 vid-webpack-master/src/app/shared/resolvers/retry/retry.resolver.ts create mode 100644 vid-webpack-master/src/app/shared/resolvers/viewEdit/viewEdit.resolver.spec.ts create mode 100644 vid-webpack-master/src/app/shared/resolvers/viewEdit/viewEdit.resolver.ts delete mode 100644 vid-webpack-master/src/app/shared/server/healthStatusService/health-status.service.spec.ts rename vid-webpack-master/src/app/{ => shared}/services/aaiService/aai.actions.ts (94%) rename vid-webpack-master/src/app/{ => shared}/services/aaiService/aai.epics.ts (69%) create mode 100644 vid-webpack-master/src/app/shared/services/aaiService/aai.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/services/aaiService/aai.service.ts create mode 100644 vid-webpack-master/src/app/shared/services/aaiService/model/crawledAaiService.ts rename vid-webpack-master/src/app/{ => shared}/services/aaiService/responseInterfaces/getAicZonesResponseInterface.ts (100%) rename vid-webpack-master/src/app/{ => shared}/services/aaiService/responseInterfaces/getCategoryParamsResponseInterface.ts (100%) rename vid-webpack-master/src/app/{ => shared}/services/aaiService/responseInterfaces/getServiceModelResponseInterface.ts (53%) rename vid-webpack-master/src/app/{ => shared}/services/aaiService/responseInterfaces/getServicesResponseInterface.ts (100%) rename vid-webpack-master/src/app/{ => shared}/services/aaiService/responseInterfaces/getSubDetailsResponseInterface.ts (100%) rename vid-webpack-master/src/app/{ => shared}/services/aaiService/responseInterfaces/getSubscribersResponseInterface.ts (53%) rename vid-webpack-master/src/app/{ => shared}/services/configuration.service.ts (82%) rename vid-webpack-master/src/app/{ => shared}/services/data.service.ts (100%) create mode 100644 vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts create mode 100644 vid-webpack-master/src/app/shared/services/msoService/mso.service.spec.ts create mode 100644 vid-webpack-master/src/app/shared/services/msoService/mso.service.ts rename vid-webpack-master/src/app/{ => shared}/store/epics.ts (88%) create mode 100644 vid-webpack-master/src/app/shared/store/module.ts create mode 100644 vid-webpack-master/src/app/shared/store/reducers.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/general/general.action.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/general/general.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/general/general.reducers.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/general/general.reducers.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/global/global.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/global/global.reducers.spec.ts rename vid-webpack-master/src/app/{global.reducer.ts => shared/storeUtil/utils/global/global.reducers.ts} (53%) create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/main.reducer.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/network/network.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/network/network.reducers.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/network/network.reducers.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/relatedVnfMember/relatedVnfMember.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/relatedVnfMember/relatedVnfMember.reducers.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/relatedVnfMember/relatedVnfMember.reducers.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/service/service.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/service/service.reducers.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/service/service.reducers.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vnf/vnf.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vnf/vnf.reducers.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vnf/vnf.reducers.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vnfGroup/vnfGroup.actions.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vnfGroup/vnfGroup.reducers.spec.ts create mode 100644 vid-webpack-master/src/app/shared/storeUtil/utils/vnfGroup/vnfGroup.reducers.ts create mode 100644 vid-webpack-master/src/app/shared/utils/util.spec.ts rename vid-webpack-master/src/app/{ => shared}/utils/utils.ts (97%) create mode 100644 vid-webpack-master/src/app/shared/validators/uniqueName/uniqueName.validator.spec.ts create mode 100644 vid-webpack-master/src/app/shared/validators/uniqueName/uniqueName.validator.ts delete mode 100644 vid-webpack-master/src/app/store/module.ts delete mode 100644 vid-webpack-master/src/app/store/reducers.ts create mode 100644 vid-webpack-master/src/app/support/support.component.ts rename vid-webpack-master/src/app/{components => vlanTagging}/form-async/form-async.component.ts (54%) create mode 100644 vid-webpack-master/src/app/vlanTagging/form-async/form-async.service.spec.ts create mode 100644 vid-webpack-master/src/app/vlanTagging/form-async/form-async.service.ts rename vid-webpack-master/src/app/{components => vlanTagging}/form-async/form-async.style.scss (100%) rename vid-webpack-master/src/app/{components => vlanTagging}/form-async/form-async.template.html (91%) create mode 100644 vid-webpack-master/src/app/vlanTagging/vlan-tagging.routing.ts delete mode 100644 vid-webpack-master/src/assets/img/X_o.svg create mode 100644 vid-webpack-master/src/assets/img/indesign.svg delete mode 100644 vid-webpack-master/src/assets/img/inprogress.svg delete mode 100644 vid-webpack-master/src/assets/img/pause.svg delete mode 100644 vid-webpack-master/src/assets/img/pending.svg create mode 100644 vid-webpack-master/src/assets/img/plus-circle.svg delete mode 100644 vid-webpack-master/src/assets/img/stoped.svg delete mode 100644 vid-webpack-master/src/assets/img/success+Circle.svg create mode 100644 vid-webpack-master/src/assets/img/vid-logo.jpg create mode 100644 vid-webpack-master/src/jest.config.js create mode 100644 vid-webpack-master/src/jestGlobalMocks.ts create mode 100644 vid-webpack-master/src/setupJest.ts create mode 100644 vid-webpack-master/src/wallabyTest.ts create mode 100644 vid-webpack-master/wallaby.js diff --git a/vid-webpack-master/.angular-cli.json b/vid-webpack-master/.angular-cli.json deleted file mode 100644 index 0c2ce561b..000000000 --- a/vid-webpack-master/.angular-cli.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "project": { - "name": "vid-cli" - }, - "apps": [ - { - "root": "src", - "outDir": "dist", - "assets": [ - "assets", - "favicon.ico" - ], - "index": "index.html", - "main": "main.ts", - "polyfills": "polyfills.ts", - "test": "test.ts", - "tsconfig": "tsconfig.app.json", - "testTsconfig": "tsconfig.spec.json", - "prefix": "app", - "styles": [ - "styles.scss", - "../node_modules/font-awesome/css/font-awesome.css", - "../node_modules/bootstrap/dist/css/bootstrap.min.css", - "../node_modules/angular-tree-component/dist/angular-tree-component.css" - ], - "scripts": [], - "environmentSource": "environments/environment.ts", - "environments": { - "dev": "environments/environment.ts", - "prod": "environments/environment.prod.ts" - } - } - ], - "e2e": { - "protractor": { - "config": "./protractor.conf.js" - } - }, - "lint": [ - { - "project": "src/tsconfig.app.json", - "exclude": "**/node_modules/**" - }, - { - "project": "src/tsconfig.spec.json", - "exclude": "**/node_modules/**" - } - ], - "test": { - "karma": { - "config": "./karma.conf.js" - } - }, - "defaults": { - "styleExt": "scss", - "component": {} - } -} diff --git a/vid-webpack-master/.babelrc b/vid-webpack-master/.babelrc new file mode 100644 index 000000000..1320b9a32 --- /dev/null +++ b/vid-webpack-master/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env"] +} diff --git a/vid-webpack-master/.gitignore b/vid-webpack-master/.gitignore index a4d376c64..b54bdfe9d 100644 --- a/vid-webpack-master/.gitignore +++ b/vid-webpack-master/.gitignore @@ -58,3 +58,6 @@ __build__/** # IDE # .idea/ *.swp + +# Cypress screenshot # +/cypress/screenshots diff --git a/vid-webpack-master/.slignore b/vid-webpack-master/.slignore new file mode 100644 index 000000000..9d1cbb0ff --- /dev/null +++ b/vid-webpack-master/.slignore @@ -0,0 +1 @@ +vendor.bundle.js diff --git a/vid-webpack-master/angular.json b/vid-webpack-master/angular.json new file mode 100644 index 000000000..b1f2edc52 --- /dev/null +++ b/vid-webpack-master/angular.json @@ -0,0 +1,109 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "vid-cli": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "main": "src/main.ts", + "tsConfig": "src/tsconfig.app.json", + "polyfills": "src/polyfills.ts", + "assets": [ + "src/assets", + "src/favicon.ico" + ], + "styles": [ + "src/styles.scss", + "node_modules/font-awesome/css/font-awesome.css", + "node_modules/bootstrap/dist/css/bootstrap.min.css", + "node_modules/angular-tree-component/dist/angular-tree-component.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "vid-cli:build" + }, + "configurations": { + "production": { + "browserTarget": "vid-cli:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "vid-cli:build" + } + }, + "test": { + "builder": "@angular-builders/jest:run", + "options": { + "scripts": [], + "styles": [ + "src/styles.scss", + "node_modules/font-awesome/css/font-awesome.css", + "node_modules/bootstrap/dist/css/bootstrap.min.css", + "node_modules/angular-tree-component/dist/angular-tree-component.css" + ], + "assets": [ + "src/assets", + "src/favicon.ico" + ] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "src/tsconfig.app.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + } + }, + "defaultProject": "vid-cli", + "schematics": { + "@schematics/angular:component": { + "prefix": "app", + "styleext": "scss" + }, + "@schematics/angular:directive": { + "prefix": "app" + } + } +} diff --git a/vid-webpack-master/cypress.json b/vid-webpack-master/cypress.json index eb8c6e41d..7a6bc73fd 100644 --- a/vid-webpack-master/cypress.json +++ b/vid-webpack-master/cypress.json @@ -5,8 +5,13 @@ "pageLoadTimeout" : 100000, "defaultCommandTimeout" : 10000, "responseTimeout" : 100000, + "trashAssetsBeforeRuns": false, + "video": false, + "viewportWidth": 1920, + "viewportHeight": 1080, "reporterOptions": { - "mochaFile": "cypress/junitreport.xml", - "toConsole": true + "mochaFile": "cypress/reports/TEST-cypress-[hash].xml", + "toConsole": true, + "testCaseSwitchClassnameAndName": true } } diff --git a/vid-webpack-master/cypress/integration/iFrames/ala-carte.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/ala-carte.e2e.ts index 22eb88ca7..048836e52 100644 --- a/vid-webpack-master/cypress/integration/iFrames/ala-carte.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/ala-carte.e2e.ts @@ -1,11 +1,12 @@ /// /// -import { JsonBuilder } from '../../support/jsonBuilders/jsonBuilder'; -import { ServiceModel } from '../../support/jsonBuilders/models/service.model'; +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import * as _ from 'lodash'; describe('A la carte', function () { describe('check service name', () => { - var jsonBuilderAAIService : JsonBuilder = new JsonBuilder(); + let jsonBuilderAAIService: JsonBuilder = new JsonBuilder(); beforeEach(() => { @@ -21,52 +22,235 @@ describe('A la carte', function () { }); }); + afterEach(() => { + cy.screenshot(); + }); + const SERVICE_ID: string = '4d71990b-d8ad-4510-ac61-496288d9078e'; const INSTANCE_NAME_MANDATORY_MESSAGE: string = 'Missing data ("Instance Name" and 3 other fields'; const INSTANCE_NAME_NOT_MANDATORY_MESSAGE: string = 'Missing data ("Subscriber Name" and 2 other fields)'; - const CONFIRM_BUTTON : string = 'confirmButton'; + const CONFIRM_BUTTON: string = 'confirmButton'; - // function changeServiceName(obj : AAIServiceModel){ - // obj.service.version = "NEW VALUE"; - // return obj; - // } - it(`service name should be mandatory : serviceEcompNaming = false`, function () { + it(`service name should be mandatory : serviceEcompNaming = true`, ()=> { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicService.json').then((res) => { jsonBuilderAAIService.basicJson(res, Cypress.config('baseUrl') + '/rest/models/services/4d71990b-d8ad-4510-ac61-496288d9078e', 200, 0, SERVICE_ID + ' - service', - changeServiceEcompNamingToFalse); + changeServiceEcompNamingToTrue); + checkServiceNameInputIdMandatory(); + }); + }); + + it(`Service a-la-carte`, ()=> { + + const subscriptionServiceType : string = "TYLER SILVIA"; + const owningEntityName : string = "WayneHolland"; + const rollbackOnFailure : string = "true"; + const projectName : string = "WATKINS"; + const instanceName : string = "serviceInstanceName"; + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + + cy.setTestApiParamToGR(); + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte'; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + + cy.getElementByDataTestsId("openMenuBtn").click({force: true}) + .getElementByDataTestsId("context-menu-header-edit-item").click({force: true}) + .getElementByDataTestsId("instanceName") + .getElementByDataTestsId("subscriberName") + .getElementByDataTestsId("serviceType") + .getElementByDataTestsId("owningEntity") + .getElementByDataTestsId("project") + .getElementByDataTestsId("rollback"); + + cy.selectDropdownOptionByText("subscriberName", "SILVIA ROBBINS"); + cy.selectDropdownOptionByText("serviceType", subscriptionServiceType); + cy.selectDropdownOptionByText("owningEntity", owningEntityName); + cy.selectDropdownOptionByText("rollback", rollbackOnFailure); + cy.selectDropdownOptionByText("project", projectName); + cy.typeToInput("instanceName", instanceName); + + cy.get('#quantity-select').should('have.attr', 'disabled'); + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + cy.getReduxState().then((state) => { + const service = state.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd']; - checkServiceNameInputIdMandatory(); + cy.readFile('../vid-automation/src/test/resources/a-la-carte/redux-a-la-carte.json').then((file) => { + expect(service.subscriptionServiceType).to.equals(subscriptionServiceType); + expect(service.owningEntityName).to.equals(owningEntityName); + expect(service.rollbackOnFailure).to.equals(rollbackOnFailure); + expect(service.projectName).to.equals(projectName); + expect(service.instanceName).to.equals(instanceName); + }); + }); + }); }); }); - it(`service name should be mandatory : serviceEcompNaming = true`, function () { - cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicService.json').then((res) => { - jsonBuilderAAIService.basicJson(res, - Cypress.config('baseUrl') + '/rest/models/services/4d71990b-d8ad-4510-ac61-496288d9078e', - 200, - 0, - SERVICE_ID + ' - service', - changeServiceEcompNamingToTrue); - checkServiceNameInputIdMandatory(); + + it(`VNF a-la-carte`, ()=> { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + cy.setTestApiParamToGR(); + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte'; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + + cy.getElementByDataTestsId("openMenuBtn").click({force: true}) + .getElementByDataTestsId("context-menu-header-edit-item").click({force: true}) + .getElementByDataTestsId("instanceName") + .getElementByDataTestsId("subscriberName") + .getElementByDataTestsId("serviceType") + .getElementByDataTestsId("owningEntity") + .getElementByDataTestsId("project") + .getElementByDataTestsId("rollback"); + + cy.selectDropdownOptionByText("subscriberName", "SILVIA ROBBINS"); + cy.selectDropdownOptionByText("serviceType", "TYLER SILVIA"); + cy.selectDropdownOptionByText("owningEntity", "WayneHolland"); + cy.selectDropdownOptionByText("rollback", "true"); + cy.selectDropdownOptionByText("project", "WATKINS"); + cy.typeToInput("instanceName", "serviceInstanceName"); + + cy.get('#quantity-select').should('have.attr', 'disabled'); + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force: true}).then(() => { + cy.selectDropdownOptionByText('productFamily', 'Emanuel'); + cy.selectDropdownOptionByText('lcpRegion', 'JANET25'); + cy.typeToInput("lcpRegionText", "just another region"); + cy.selectDropdownOptionByText('tenant', 'USP-SIP-IC-24335-T-01'); + cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1'); + cy.selectDropdownOptionByText('platform', 'xxx1'); + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + cy.getReduxState().then((state) => { + + const vnf = state.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0']; + + cy.readFile('../vid-automation/src/test/resources/a-la-carte/redux-a-la-carte.json').then((file) => { + file.vnfs['2017-488_ADIOD-vPE 0'].trackById = vnf.trackById; + file.vnfs['2017-488_ADIOD-vPE 0'].vfModules = {}; + cy.deepCompare(vnf, file.vnfs['2017-488_ADIOD-vPE 0']) + }); + }); + }); + + }); + }); }); }); - function changeServiceEcompNamingToTrue(obj : ServiceModel){ - obj.service.serviceEcompNaming = "true"; - return obj; - } + it(`Network a-la-carte`, ()=> { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + cy.setTestApiParamToGR(); + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte'; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].networks = { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "ecomp_generated_naming": "false", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }; + res.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].networks = {}; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId("node-ExtVL 0-add-btn").click({force: true}); + cy.selectDropdownOptionByText("platform", "xxx1"); + cy.selectDropdownOptionByText("lcpRegion", "JANET25"); + cy.selectDropdownOptionByText("tenant", "USP-SIP-IC-24335-T-01"); + cy.selectDropdownOptionByText("productFamily", "SCOTTIE"); + cy.selectDropdownOptionByText("lineOfBusiness", "zzz1"); + cy.typeToInput("lcpRegionText", "lcpRegionText"); + + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + cy.getReduxState().then((state) => { + const network = state.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].networks['ExtVL 0']; + + cy.readFile('../vid-automation/src/test/resources/a-la-carte/redux-a-la-carte.json').then((file) => { + file.networks['ExtVL 0'].trackById = network.trackById; + cy.deepCompare(network, file.networks['ExtVL 0']); + }); + }); + }); + }); + }); + + it(`VFModule a-la-carte`, ()=> { + var timeBomb = new Date('12/09/2018'); + if (new Date() < timeBomb) { + return; + } + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + cy.setTestApiParamToGR(); + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte'; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - function changeServiceEcompNamingToFalse(obj : ServiceModel){ - obj.service.serviceEcompNaming = "false"; + cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force: true}).then(() => { + cy.selectDropdownOptionByText('productFamily', 'Emanuel'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-STTest2'); + cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1'); + cy.selectDropdownOptionByText('platform', 'xxx1'); + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + const vnfName = '2017-488_ADIOD-vPE 0'; + let vfModulesNames: Array = [ + '2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0', + '2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1', + '2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2', + ]; + + addVfModule(vnfName, vfModulesNames[0], 'mimazepubi', 'hvf6', '', 'AINWebTool-15-D-iftach', false, false, false) + .then(() => { + addVfModule(vnfName, vfModulesNames[1], 'puwesovabe', 'JANET25', 'my region', 'USP-SIP-IC-24335-T-01', true, true, false) + .then(() => { + addVfModule(vnfName, vfModulesNames[2], 'bnmgtrx', 'hvf6', '', 'AINWebTool-15-D-iftach', false, false, true) + .then(() => { + cy.getReduxState().then((state) => { + const vfModules = state.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs[vnfName].vfModules; + cy.readFile('../vid-automation/src/test/resources/a-la-carte/redux-a-la-carte.json').then((file) => { + for (let vfModulesName of vfModulesNames) { + const vfModule = vfModules[vfModulesName]; + let vfModuleObject = vfModule[Object.keys(vfModule)[0]]; + cy.deepCompare(vfModuleObject, file.vnfs[vnfName].vfModules[vfModulesName][vfModulesName]); + } + }); + }); + }); + }); + }); + }); + }); + }); + }); + + + function changeServiceEcompNamingToTrue(obj: ServiceModel) { + obj.service.serviceEcompNaming = "true"; return obj; } - function checkServiceNameInputIdMandatory(){ + function checkServiceNameInputIdMandatory() { cy.get('span').contains('Browse ASDC Service Models').click({force: true}) .getElementByDataTestsId('deploy-' + SERVICE_ID).click({force: true}) .wait(1000).getElementByDataTestsId(CONFIRM_BUTTON).click({force: true}) @@ -76,5 +260,29 @@ describe('A la carte', function () { cy.getElementByDataTestsId(CONFIRM_BUTTON).click({force: true}) .get('.error').contains(INSTANCE_NAME_NOT_MANDATORY_MESSAGE); } + + function addVfModule(vnfName: string, vfModuleName: string, instanceName: string, lcpRegion: string, legacyRegion: string, tenant: string, rollback: boolean, sdncPreLoad: boolean, deleteVgName: boolean): Chainable { + return cy.getElementByDataTestsId('node-' + vnfName).click({force: true}).then(() => { + cy.getElementByDataTestsId('node-' + vfModuleName + '-add-btn').click({force: true}).then(() => { + cy.getElementByDataTestsId('instanceName').clear().type(instanceName, {force: true}).then(() => { + if (deleteVgName) { + cy.getElementByDataTestsId('volumeGroupName').clear(); + } + }).then(() => { + cy.selectDropdownOptionByText('lcpRegion', lcpRegion); + if (!_.isEmpty(legacyRegion)) { + cy.typeToInput("lcpRegionText", legacyRegion); + } + cy.selectDropdownOptionByText('tenant', tenant); + cy.selectDropdownOptionByText('rollback', String(rollback)); + if (sdncPreLoad) { + cy.getElementByDataTestsId('sdncPreLoad').check(); + } + cy.getElementByDataTestsId('form-set').click({force: true}); + }); + }); + }); + } + }); }); diff --git a/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts index c915d48e9..f0db2c9e1 100644 --- a/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/auditInfo.modal.e2e.ts @@ -1,10 +1,13 @@ /// -import { JsonBuilder } from '../../support/jsonBuilders/jsonBuilder'; -import { AsyncInstantiationModel } from '../../support/jsonBuilders/models/asyncInstantiation.model'; +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {AsyncInstantiationModel} from '../../support/jsonBuilders/models/asyncInstantiation.model'; +import * as _ from 'lodash'; +import {ServiceModel} from "../../support/jsonBuilders/models/service.model"; describe('Audit information modal', function () { describe('basic UI tests', () => { - var jsonBuilderInstantiationBuilder : JsonBuilder = new JsonBuilder(); + var jsonBuilderInstantiationBuilder: JsonBuilder = new JsonBuilder(); + var jsonBuilderAndMock: JsonBuilder = new JsonBuilder(); beforeEach(() => { cy.window().then((win) => { win.sessionStorage.clear(); @@ -14,24 +17,69 @@ describe('Audit information modal', function () { Cypress.config('baseUrl') + "/asyncInstantiation**"); cy.initAAIMock(); cy.initVidMock(); + cy.initAsyncInstantiation(); cy.login(); }) }); + afterEach(() => { + cy.screenshot(); + }); + it(`should display 2 tables with information's`, function () { + cy.initAuditInfoMSOALaCarte(); + cy.openIframe('app/ui/#/instantiationStatus'); + cy.get('.instantiation-status-data tbody tr').each(function (row, index) { + cy.get('.icon-menu').eq(index).click({force: true}).then(()=>{ + cy.getElementByDataTestsId('context-menu-audit-info').click({force:true}).then(()=>{ + cy.get('#service-model-name').should('contain', row.find('#serviceModelName').text().trim()) + .getElementByDataTestsId('model-item-value-userId').should('contain', row.find('#userId').text().trim()) + .get('#service-instantiation-audit-info-vid').should('be.visible') + .get('#service-instantiation-audit-info-vid').find('#vidJobStatus').should('be.visible') + .get('#service-instantiation-audit-info-mso').should('be.visible') + .get('#service-instantiation-audit-info-mso').find('#msoJobStatus').should('be.visible') + .get('#cancelButton').click({force:true}); + }) + }); + }); + }); + + it("shouldn't show instance name in mso table on macro service", function () { + cy.openIframe('app/ui/#/instantiationStatus'); + cy.get('.icon-menu').eq(0).click({force:true}).then(() => { + cy.getElementByDataTestsId('context-menu-audit-info').click({force:true}).then(() => { + cy.get('#service-instantiation-audit-info-mso thead tr th#instanceName').should("not.be.visible") + .get('#service-instantiation-audit-info-mso tbody tr td.msoInstanceName').should("not.be.visible"); + }) + }) + }); + it('should show instance name in mso table on a la carte service', function () { + cy.readFile('../vid-automation/src/test/resources/a-la-carte/auditInfoMSOALaCarte.json').then((res) => { + cy.initAuditInfoMSOALaCarte(res); cy.openIframe('app/ui/#/instantiationStatus'); - cy.get('.instantiation-status-data tbody tr').each(function (row, index) { - cy.get('.icon-menu').eq(index).click() - .get('.audit-icon').click() - .get('#service-model-name').should('contain', row.find('#serviceModelName').text().trim()) - .getElementByDataTestsId('model-item-value-userId').should('contain', row.find('#userId').text().trim()) - .get('#service-instantiation-audit-info-vid').should('be.visible') - .get('#service-instantiation-audit-info-vid').find('#vidJobStatus').should('be.visible') - .get('#service-instantiation-audit-info-mso').should('be.visible') - .get('#service-instantiation-audit-info-mso').find('#msoJobStatus').should('be.visible') - .get('#cancelButton').click(); + cy.get('.icon-menu').eq(7).click({force:true}).then(() => { + cy.getElementByDataTestsId('context-menu-audit-info').click({force:true}).then(() => { + cy.get('#service-instantiation-audit-info-mso thead tr th#instanceName').should("be.visible") + .get('#service-instantiation-audit-info-mso tbody tr').each(function (row, index) { + assert.equal(row.find('.request-id').text().trim(), res[index]['requestId']); + assert.equal(row.find('.msoInstanceName').text().trim(), 'service: ' + res[index]['instanceName']); + assert.equal(row.find('#msoJobStatus').text().trim(), _.capitalize(res[index]['jobStatus'])); + assert.equal(row.find('#msoAdditionalInfo span').text().trim(), res[index]['additionalInfo']); + }); + }); + }) + }) + }); + + it('glossary should be visible', function () { + cy.openIframe('app/ui/#/instantiationStatus'); + cy.get('.icon-menu').eq(7).click().then(() => { + cy.getElementByDataTestsId('context-menu-audit-info').click().then(() => { + cy.get('#glossary_link').should('be.visible'); }); + }) }); + }); }); diff --git a/vid-webpack-master/cypress/integration/iFrames/browse-sdc.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/browse-sdc.e2e.ts new file mode 100644 index 000000000..1e80ee77e --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/browse-sdc.e2e.ts @@ -0,0 +1,102 @@ +/// +/// +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; + +describe('Browse SDC', function () { + var jsonBuilderAndMock : JsonBuilder = new JsonBuilder(); + + + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.initZones(); + cy.login(); + cy.visit("welcome.htm") + }); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it(`browse sdc open macro with network and then macro for new flow`, function () { + // const MACRO_WITH_CONFIGURATION_ID: string = 'ee6d61be-4841-4f98-8f23-5de9da846ca7'; + const MACRO_WITH_NETWORK_ID: string = "bd8ffd14-da36-4f62-813c-6716ba9f4354"; + const MACRO_FOR_NEW_FLOW_ID: string = '74fa72dd-012b-49c3-800d-06b12bcaf1a0'; + const CANCEL_BUTTON = "cancelButton"; + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/bug616888/list-services.json').then((res) => { + jsonBuilderAndMock.basicJson(res, + Cypress.config('baseUrl') + '/rest/models/services?distributionStatus=DISTRIBUTED', + 200, + 0, + 'list_services'); + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/bug616888/service-with-configuration.json').then((res) => { + jsonBuilderAndMock.basicJson(res, + Cypress.config('baseUrl') + '/rest/models/services/' + MACRO_WITH_NETWORK_ID, + 200, + 0, + 'MACRO_WITH_CONFIGURATION'); + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json').then((res) => { + jsonBuilderAndMock.basicJson(res, + Cypress.config('baseUrl') + '/rest/models/services/' + MACRO_FOR_NEW_FLOW_ID, + 200, + 0, + 'MACRO_FOR_NEW_FLOW'); + }); + + cy.get('span').contains('Browse ASDC Service Models').click({force: true}); + cy.wait("@list_services").then(() => { + cy.getElementByDataTestsId('deploy-' + MACRO_WITH_NETWORK_ID).click({force: true}) + .getElementByDataTestsId(CANCEL_BUTTON).click({force: true}); + cy.getElementByDataTestsId('deploy-' + MACRO_FOR_NEW_FLOW_ID).click({force: true}); + cy.get("iframe"); + }); + + cy.visit("welcome.htm"); //relaod page to not break the following tests + + }); + + it(`browse sdc of service without instantiationType open aLaCarte popup`, function () { + const VERY_OLD_SERVICE_UUID: string = "09c476c7-91ae-44b8-a731-04d8d8fa3695"; + const TEST_MOCKS_PATH="/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/"; + + const CANCEL_BUTTON = "cancelButton"; + + cy.readFile(TEST_MOCKS_PATH+'list-services.json').then((res) => { + jsonBuilderAndMock.basicJson(res, + Cypress.config('baseUrl') + '/rest/models/services?distributionStatus=DISTRIBUTED', + 200, + 0, + 'list_services'); + }); + + cy.readFile(TEST_MOCKS_PATH+'serviceWithoutInstantiationType.json').then((res) => { + jsonBuilderAndMock.basicJson(res, + Cypress.config('baseUrl') + '/rest/models/services/' + VERY_OLD_SERVICE_UUID, + 200, + 0, + 'MACRO_WITH_CONFIGURATION'); + }); + + cy.get('span').contains('Browse ASDC Service Models').click({force: true}); + cy.wait("@list_services").then(() => { + cy.getElementByDataTestsId('deploy-' + VERY_OLD_SERVICE_UUID).click({force: true}) + .getElementByDataTestsId('create-modal-title').contains("Create Service Instance -- a la carte"); + }); + + cy.visit("welcome.htm"); //relaod page to not break the following tests + + }); + + + +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/drawingBoard.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/drawingBoard.e2e.ts index 2f98ba864..d95cb8c85 100644 --- a/vid-webpack-master/cypress/integration/iFrames/drawingBoard.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/drawingBoard.e2e.ts @@ -1,130 +1,10608 @@ + /// describe('Drawing board', function () { - describe('basic UI tests', () => { + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.setReduxState(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.login(); + }); + }); + + afterEach(() => { + cy.screenshot(); + }); + + describe('duplicate', () => { - beforeEach(() => { - cy.window().then((win) => { - win.sessionStorage.clear(); - cy.setReduxState(); - cy.preventErrorsOnLoading(); - cy.initAAIMock(); - cy.initVidMock(); - cy.login(); + it('delete vf module reduce the number of vf modules ', function () { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').get('i').should('have.class', 'fa-plus-circle'); + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true}); + cy.fillVnfPopup().then(() => { + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true}); + cy.fillVnfPopup().then(() => { + cy.drawingBoardNumberOfExistingElementsShouldContains(2); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Remove'); + cy.drawingBoardNumberOfExistingElementsShouldContains(1); + }); + }) }); }); + it('create new vf module update the number of vf modules ', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').get('i').should('have.class', 'fa-plus-circle'); + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true}); + cy.fillVnfPopup().then(() => { + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true}); + cy.fillVnfPopup().then(() => { + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true}); + cy.fillVnfPopup().then(() => { + cy.drawingBoardNumberOfExistingElementsShouldContains(3); + }); + }); + }); + }); + }); - it('should display service model name', function () { + it('duplicate vnf multi - should update number of vf modules on left side and disable duplicate when created max', () => { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { cy.setReduxState(res); cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - cy.get('#service-model-name').contains('action-data'); + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').get('i').should('have.class', 'fa-plus-circle') + .drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true}); + cy.fillVnfPopup().then(() => { + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0') + .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate') + .get('.quantity-select option').should('have.length', 9) + .getElementByDataTestsId('duplicate-amount-vfmodules').select('4') + .getTagElementContainsText('button', 'Duplicate').click({force: true}); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 2) + .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate') + .get('.quantity-select option').should('have.length', 5) + .getElementByDataTestsId('duplicate-amount-vfmodules').select('5') + .getTagElementContainsText('button', 'Duplicate').click({force: true}); + cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0').get("span").should('have.class', 'icon-v ng-star-inserted'); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 9) + .get('ul.dropdown-menu li:nth-child(2)').should('have.class', 'disabled'); + // close menu + cy.get('body').click(); + cy.drawingBoardNumberOfExistingElementsShouldContains(10); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Remove'); + cy.drawingBoardNumberOfExistingElementsShouldContains(9); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 3) + .get('ul.dropdown-menu li:nth-child(2)').should('not.have.class', 'disabled'); + }) + }); + }); + + it('cancel duplicate multi vnf - shouldn\'t duplicate', () => { + let res = getReduxWithVNFS(true); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44'); + const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0'; + cy.getElementByDataTestsId(vnfNode).should('have.length', 1) + .drawingBoardTreeOpenContextMenuByElementDataTestId(vnfNode) + .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate') + .getElementByDataTestsId('duplicate-amount-vfmodules').select('5') + .getTagElementContainsText('button', 'Cancel').click({force: true}) + .getElementByDataTestsId(vnfNode).should('have.length', 1); + }); + + it('service with 2 network - can add unlimited number of network instances', () => { + let res = getReduxWith2Networks(); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2ab1da67-39cc-425f-ba52-59a64d0ea04a'); + cy.get('drawing-board-tree tree-node-content').should('have.have.length', 1); + + addNetworkFromModel('node-SR-IOV Provider 2-1').then(() => { + }); + }); + + it('duplicate vnf macro', () => { + let res = getReduxWithVNFS(true); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44'); + const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0'; + const vfModuleNode = 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1'; + cy.duplicateVnf(vnfNode, 1); + //edit the second vnf lineOfBusiness to be ECOMP + editSecondVnf(vnfNode); + assertEditvfModuleShowFile(vfModuleNode, "sample.json"); + //assert that each vnf has it's own lineOfBusiness + cy.getReduxState().then((state) => { + const serviceInstance = state.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44']; + chai.expect(serviceInstance.vnfs['VF_vMee 0'].lineOfBusiness).equal("zzz1"); + chai.expect(serviceInstance.vnfs['VF_vMee 0:0001'].lineOfBusiness).equal("ONAP"); }); }); - it('should display icon and message if no vnf and vnfModules', function () { + it('delete duplicate vnf ', () => { + let res = getReduxWith2VNFS(); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9'); + cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2); + + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate') + .getTagElementContainsText('button', 'Duplicate').click({force: true}) + .get('#drawing-board-tree .toggle-children').should('have.length', 1); + + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 2) + .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate') + .getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 3); + }); + + it('check the instanceParams set to instance ', () => { + let res = getReduxWith2VNFS(); + let instanceName = "InstanceName"; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9'); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Edit') + .getElementByDataTestsId('instanceName').type(instanceName) + .genericFormSubmitForm(); + + checkDynamicInputs(); + + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Edit'); + cy.getElementByDataTestsId('instanceName').should('have.value', instanceName); + checkDynamicInputs(); + + }); + + it('delete duplicate vfModule ', () => { + let res = getReduxWith2VNFS(); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9'); + cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2) + .drawingBoardTreeOpenContextMenuByElementDataTestId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0') + .drawingBoardTreeClickOnContextMenuOptionByName('Remove') + .getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2); + }); + + it('duplicate unique vnf ', () => { + let res = getReduxWith2VNFS(); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9'); + cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2) + .drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate') + .getTagElementContainsText('button', 'Duplicate').click({force: true}) + .get('#drawing-board-tree .toggle-children').should('have.length', 1); + }); + + it('duplicate a-la-carte vnf + networks', () => { + let res = getReduxWithVNFS(false); + cy.setTestApiParamToGR(); + + res.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].service.instantiationType = "A-La-Carte"; + + //remove VfModules since they are not fit to a-la-carte scenario + delete res.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].vfModules; + delete res.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].vfModules; + + res.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].instanceName = "VFvMee00001"; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44'); + const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0'; + cy.duplicateVnf(vnfNode, 1); + + //edit the second vnf lineOfBusiness to be ECOMP + editSecondVnf(vnfNode); + cy.drawingBoardPressAddButtonByElementName("node-ExtVL 0").click({force: true}).then(() => { + cy.fillNetworkPopup(); + }); + + // compare state with the json file + cy.getReduxState().then((state) => { + let serviceInstance = state.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44']; + //assert that each vnf has it's own lineOfBusiness + chai.expect(serviceInstance.vnfs['VF_vMee 0'].lineOfBusiness).equal("zzz1"); + chai.expect(serviceInstance.vnfs['VF_vMee 0:0001'].lineOfBusiness).equal("ONAP"); + cy.readFile('../vid-automation/src/test/resources/a-la-carte/redux-multiple-vnf-network.json').then((file) => { + const vnfs = file.vnfs; + var vnfNames = Object.keys(vnfs); + + for (var i: number = 0; i < vnfNames.length; i++) { + chai.expect(serviceInstance.vnfs).to.have.any.keys(vnfNames[i]); + } + + chai.expect(serviceInstance.vnfs['VF_vMee 0'].lineOfBusiness).equal(vnfs['VF_vMee 0'].lineOfBusiness); + chai.expect(serviceInstance.vnfs['VF_vMee 0'].instanceName).equal(vnfs['VF_vMee 0'].instanceName); + + vnfs['VF_vMee 0:0001'].trackById = serviceInstance.vnfs['VF_vMee 0:0001'].trackById; + + cy.deepCompare(serviceInstance.vnfs['VF_vMee 0:0001'], vnfs['VF_vMee 0:0001']); + cy.deepCompare(serviceInstance.vnfs['VF_vMee 0'], vnfs['VF_vMee 0']); + + const network = serviceInstance.networks['ExtVL 0']; + + file.networks['ExtVL 0'].trackById = network.trackById; + cy.deepCompare(network, file.networks['ExtVL 0']); + }); + }); + }); + + }); + + describe('multiple tests', () => { + it('remove vfModule with missing data should update deploy button status', () => { + let res = getReduxWithVFModuleMissingData(); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9'); + cy.getElementByDataTestsId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0-alert-icon').should('have.class', 'icon-alert') + .drawingBoardTreeOpenContextMenuByElementDataTestId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0') + .drawingBoardTreeClickOnContextMenuOptionByName('Remove') + .getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + + cy.updateServiceShouldNotOverrideChild(); + }); + + it('remove VNF with missing data should update deploy button status ', () => { + let res = getReduxWithVNFMissingData(); + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9'); + + cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0-alert-icon').should('have.class', 'icon-alert') + .drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Remove') + .getTagElementContainsText('button', 'Remove VNF').click({force: true}) + .getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + cy.updateServiceShouldNotOverrideChild(); + }); + + xit('should display service model name', () => { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { cy.setReduxState(res); cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.get('#service-model-name').contains('action-data'); + }); + }); + it('should display icon and message if no vnf and vnfModules', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId("text-title").contains("Please add objects (VNFs, network, modules etc.)"); + cy.getElementByDataTestsId("text-title2").contains("from the left tree to design the service instance"); + cy.getElementByDataTestsId("text-subtitle").contains("Once done, click Deploy to start instantiation"); cy.get('#not-node-img-id').and('be.visible'); + cy.getElementByDataTestsId("no-content-icon").should('have.class', "no-content-icon"); + cy.getElementByDataTestsId("no-content-icon").should('have.class', "upload-icon-service-planing"); + cy.getElementByDataTestsId("no-content-icon").should('have.attr', "src", "./assets/img/UPLOAD.svg"); }); }); - it('should show alert on remove vnf with modules', function () { + it('should show alert on remove vnf with modules', () => { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => { cy.setReduxState(res); cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0-menu-btn') - .click({force: true}); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0'); // assert vfModules are enabled cy.get('.tree-node-disabled div[data-tests-id="node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1"]') .should('not.be.visible'); - cy.get('.icon-trash').click(); + cy.drawingBoardTreeClickOnContextMenuOptionByName('Remove'); + cy.get('.title').contains('Remove VNF'); cy.get('.sdc-button').contains('Remove VNF').click(); // assert vfModules are disabled after remove parent vnf cy.get('.tree-node-disabled div[data-tests-id="node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1"]') .should('be.visible'); + cy.updateServiceShouldNotOverrideChild(); }); }); - it('should not show alert on remove vnf without modules', function () { + it('should not show alert on remove vnf without modules', () => { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => { cy.setReduxState(res); cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - cy.getElementByDataTestsId('node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1-menu-btn') - .click({force: true}); - cy.get('.icon-trash').click(); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1'); + cy.drawingBoardTreeClickOnContextMenuOptionByName('Remove') }); }); - it('should show if ecomp is true', function () { + it('should show if ecomp is true', () => { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { cy.setReduxState(res); cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force: true}); + cy.drawingBoardPressAddButtonByElementName('node-2017-388_ADIOD-vPE 0').click({force: true}); cy.selectDropdownOptionByText('productFamily', 'DHV'); - cy.selectDropdownOptionByText('lcpRegion', 'mtn6'); - cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testgamma'); - cy.selectDropdownOptionByText('lineOfBusiness', 'ECOMP'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria'); + cy.selectDropdownOptionByText('lineOfBusiness', 'ONAP'); cy.selectDropdownOptionByText('platform', 'platform'); + cy.genericFormSubmitForm(); - cy.getElementByDataTestsId('vnf-form-set').click({force: true}); - - cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').contains(''); + cy.getElementByDataTestsId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0').contains(''); + cy.updateServiceShouldNotOverrideChild(); }); }); - it('should show model nameif ecomp is false', function () { - const vnfModelName: string = '2017-488_ADIOD-vPE 0'; + it('should show model name if ecomp is false', () => { + const vnfModelKey: string = '2017-488_ADIOD-vPE 0', + vnfModelName: string = '2017-488_ADIOD-vPE'; cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { - res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs[vnfModelName].properties.ecomp_generated_naming = 'false'; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs[vnfModelKey].properties.ecomp_generated_naming = 'false'; cy.setReduxState(res); cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force: true}); + cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true}); cy.selectDropdownOptionByText('productFamily', 'DHV'); - cy.selectDropdownOptionByText('lcpRegion', 'mtn6'); - cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testgamma'); - cy.selectDropdownOptionByText('lineOfBusiness', 'ECOMP'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria'); + cy.selectDropdownOptionByText('lineOfBusiness', 'ONAP'); cy.selectDropdownOptionByText('platform', 'platform'); - - cy.getElementByDataTestsId('vnf-form-set').click({force: true}); + cy.genericFormSubmitForm(); cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').contains(vnfModelName); }); }); - // describe('add instance open a popup', () => { - // - // it('shouldn add vfModule without popup with no empty required fields', function () { - // cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => { - // res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules = []; - // cy.setReduxState(res); - // cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - // cy.get('available-models-tree tree-node-expander').eq(2).click(); - // cy.getElementByDataTestsId('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1-add-btn').click(); - // cy.get('drawing-board-tree .toggle-children').click(); - // cy.getElementByDataTestsId('node-25284168-24bb-4698-8cb4-3f509146eca5-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1') - // .and('be.visible'); - // }); - // }); - // - // it('should add vfModule with popup if empty required dynamic input', function () { - // cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => { - // res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1"].inputs["adiodvpe0_bandwidth"].default = ''; - // res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules = []; - // cy.setReduxState(res); - // cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); - // cy.get('available-models-tree tree-node-expander').eq(2).click(); - // cy.getElementByDataTestsId('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1-add-btn').click(); - // cy.get('#instance-popup').and('be.visible'); - // }); - // - // }); - // - // }); + describe('add instance open a popup', () => { + + it('should add vfModule with popup with empty required instance name', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => { + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties.ecomp_generated_naming = "false"; + res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules = []; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.get('available-models-tree tree-node-expander').eq(2).click(); + cy.drawingBoardPressAddButtonByElementName('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').click({force: true}); + }); + }); + + it('should add vfModule with popup if empty required dynamic input', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => { + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1"].inputs["adiodvpe0_bandwidth"].default = ''; + res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules = []; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.get('available-models-tree tree-node-expander').eq(2).click(); + cy.drawingBoardPressAddButtonByElementName('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').click({force: true}); + cy.get('#instance-popup').and('be.visible'); + }); + }); + + }); + + + describe('show warning and disable deploy button on vnf missing data', () => { + it('show warning on vnf, and disable button, remove warning and enable button after edit', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => { + res.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].existingVNFCounterMap['0903e1c0-8e03-4936-b5c2-260653b96413'] = 1; + res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].validationCounter = 1; + res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-388_ADIOD-vPE 1"] = { + "rollbackOnFailure": "false", + "vfModules": {}, + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "lcpCloudRegionId": "", + "tenantId": "", + "lineOfBusiness": "zzz1", + "platformName": "platform", + "isMissingData": true, + "modelInfo": { + "modelType": "service", + "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413", + "modelName": "2017-388_ADIOD-vPE", + "modelVersion": "1.0", + "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a", + "modelCustomizationName": "2017-388_ADIOD-vPE 1" + } + }; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId("node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1-alert-icon").and('be.visible'); + cy.isElementContainsAttr('deployBtn', 'disabled'); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1') + .drawingBoardTreeClickOnContextMenuOptionByName('Edit') + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria'); + cy.genericFormSubmitForm(); + cy.getElementByDataTestsId("node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1-alert-icon").should('not.be.visible'); + cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + cy.updateServiceShouldNotOverrideChild(); + }); + }); + }); + + describe('vnf should automatically displayed or not according its min value and its vf-modules min value', () => { + + it('vnf with min_instances value > 0 without required VF modules, should be created automatically without children', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json').then((res) => { + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties['min_instances'] = 1; + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"].properties['initialCount'] = 0; + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"].properties['initialCount'] = 0; + cy.setReduxState(res); + cy.fillServicePopup().then(() => { + cy.visit("welcome.htm").then(() => { + cy.visit('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd').then(() => { + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').should('exist'); + cy.getElementByDataTestsId('node-25284168-24bb-4698-8cb4-3f509146eca5-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').should('not.exist'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').should('not.exist'); + }) + }) + }); + }); + + }); + + it('vnf with min_instances value > 1 with required VF modules, should be created automatically with children only once', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json').then((res) => { + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties['min_instances'] = 3; + cy.setReduxState(res); + cy.fillServicePopup().then(() => { + cy.visit("welcome.htm").then(() => { + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').should('exist'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').should('have.length', 1); + + }); + }); + }); + }); + + + it('vnf with min_instances value = 0 with required VF modules should be created automatically with its children', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json').then((res) => { + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties['min_instances'] = 0; + cy.setReduxState(res); + cy.fillServicePopup().then(() => { + cy.visit("welcome.htm").then(() => { + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').should('exist'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').should('exist'); + cy.updateServiceShouldNotOverrideChild(); + }); + }); + }); + + }); + + + it('vnf without min_instances and without required VF modules, should not exist automatically in right side', () => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json').then((res) => { + cy.setReduxState(res); + cy.fillServicePopup().then(() => { + cy.visit("welcome.htm").then(() => { + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0').should('not.exist'); + }); + }); + }); + }); + }); + }); + + describe('supplementary file', () => { + it('delete file', () => { + let res = getReduxWithVNFS(true); + let instanceName = 'instanceName'; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44'); + const vfModuleNode = 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1'; + assertEditvfModuleShowFile(vfModuleNode, "sample.json"); + cy.getElementByDataTestsId('remove-uploaded-file').click({force: true}); + cy.getElementByDataTestsId('form-set').should('not.have.attr', 'disabled'); + cy.typeToInput('instanceName', instanceName); + cy.genericFormSubmitForm(); + cy.getReduxState().then((state) => { + const serviceInstance = state.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44']; + const vfModuleInstance = serviceInstance.vnfs['VF_vMee 0'].vfModules['vf_vmee0..VfVmee..vmme_vlc..module-1']['vf_vmee0..VfVmee..vmme_vlc..module-1dcudx']; + chai.expect(vfModuleInstance.supplementaryFile_hidden).to.be.null; + chai.expect(vfModuleInstance.supplementaryFile_hidden_content).to.be.null; + chai.expect(vfModuleInstance.supplementaryFileContent).to.be.undefined; + chai.expect(vfModuleInstance.supplementaryFileName).to.be.undefined; + }); + cy.getElementByDataTestsId('node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0').click(); + assertEditvfModuleShowFile(vfModuleNode, "Choose file"); + cy.getElementByDataTestsId('instanceName').should('have.value', instanceName); + }); + }); + + describe('component info', () => { + + const longText = 'Im a very long text for verify wrapping so please dont make me shorter'; + + function testIfComponentInfoShown(flagState:boolean) { + let res = getReduxWith2VNFS(); + res.global.flags.FLAG_1906_COMPONENT_INFO = flagState; + res.service.serviceHierarchy["f4d84bb4-a416-4b4e-997e-0059973630b9"].service.serviceRole = longText; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9'); + let conditionStr = flagState ? "" : "not."; + cy.get('component-info').should(conditionStr+"be.visible"); + const otherComponentWidth = flagState ? 5 : 6; + const otherComponentCss = 'col-md-'+otherComponentWidth ; + cy.get('available-models-tree').should("have.class", otherComponentCss); + cy.get('drawing-board-tree').should("have.class", otherComponentCss); + if (flagState) { + cy.get('component-info').should("have.class", 'col-md-2'); + } + + + } + + it('component info is shown and relevant fields are shown', () => { + testIfComponentInfoShown(true); + + let labelsAndValues = [ + ['Model Version', '1.0'], + ['Subscriber Name', 'SILVIA ROBBINS'], + ['Service Type', 'TYLER SILVIA'], + ['Service Role', longText] + ]; + const expectedTitle = 'Service Instance INFO'; + cy.assertComponentInfoTitleLabelsAndValues(expectedTitle, labelsAndValues); + cy.getElementByDataTestsId('model-item-value-Service Role').should('have.css', 'height', '32px'); //assert that long text is wrap + }); + + it('component info is not shown when feature flag is false', () => { + testIfComponentInfoShown(false); + }); }); + + + function addNetworkFromModel(instanceName: string) { + return cy.get('drawing-board-tree').find('tree-node-content').then((elemets) => { + cy.get('drawing-board-tree tree-node-content').should('have.have.length', elemets.length); + cy.drawingBoardPressAddButtonByElementName(instanceName).click({force: true}).then(() => { + cy.fillNetworkPopup(); + cy.get('drawing-board-tree tree-node-content').should('have.have.length', (elemets.length + 1)); + cy.updateServiceShouldNotOverrideChild(); + }); + }); + } + + function getReduxWith2VNFS() { + return { + "global": { + "name": null, + "flags": { + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SHOW_VERIFY_SERVICE": false, + "FLAG_COLLECTION_RESOURCE_SUPPORT": true, + "FLAG_ASYNC_INSTANTIATION": true, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_ADD_MSO_TESTAPI_FIELD": true, + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "CREATE_INSTANCE_TEST": false, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false, + "FLAG_ASYNC_JOBS": true, + "FLAG_1906_COMPONENT_INFO" : false + }, + "type": "[FLAGS] Update" + }, + "service": { + "serviceHierarchy": { + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "service": { + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "ComplexService", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "ComplexService", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "VF_vMee 0": { + "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60", + "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e", + "description": "VSP_vMee", + "name": "VF_vMee", + "version": "2.0", + "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9", + "inputs": {}, + "commands": {}, + "properties": { + "gpb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-ipv6-egress_rule_application": "any", + "sctp-b-ipv6-egress_src_start_port": "0", + "Internal2_allow_transit": "true", + "sctp-b-IPv6_ethertype": "IPv6", + "ncb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress_rule_protocol": "icmp", + "sctp-b-ingress_action": "pass", + "sctp-a-egress_rule_application": "any", + "sctp-b-ipv6-ingress-src_start_port": "0.0", + "ncb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_src_addresses": "local", + "fsb_volume_size_0": "320.0", + "sctp-a-ipv6-ingress-dst_start_port": "0", + "sctp-a-ipv6-ingress_ethertype": "IPv4", + "sctp-b-ipv6-ingress_rule_application": "any", + "domain_name": "default-domain", + "sctp-a-egress_src_addresses": "local", + "sctp-b-egress-src_start_port": "0.0", + "sctp-a-ingress_rule_protocol": "icmp", + "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group", + "sctp-b-ipv6-ingress-dst_end_port": "65535", + "sctp-a-ingress_ethertype": "IPv4", + "sctp-a-egress-src_start_port": "0.0", + "sctp-b-dst_subnet_prefix_v6": "::", + "nf_naming": "{ecomp_generated_naming=false}", + "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-b-egress-dst_start_port": "0.0", + "ncb_flavor_name": "nv.c20r64d1", + "sctp-b-egress_dst_subnet_prefix_len": "0.0", + "gpb1_Internal1_mac": "00:11:22:EF:AC:DF", + "Internal2_net_cidr": "10.0.0.10", + "sctp-a-ingress-dst_start_port": "0.0", + "fsb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-egress-dst_start_port": "0.0", + "sctp-a-egress_ethertype": "IPv4", + "vlc_st_service_mode": "in-network-nat", + "sctp-a-ipv6-egress_ethertype": "IPv4", + "sctp-a-egress-src_end_port": "65535.0", + "sctp-b-egress_action": "pass", + "sctp-b-ipv6-egress_rule_application": "any", + "sctp-a-ingress-src_subnet_prefix_len": "0.0", + "sctp-b-ipv6-ingress-src_end_port": "65535.0", + "sctp-a-ipv6-ingress-src_start_port": "0.0", + "fsb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group", + "sctp-b-ipv6-egress_ethertype": "IPv4", + "Internal1_net_cidr": "10.0.0.10", + "sctp-a-egress_dst_subnet_prefix": "0.0.0.0", + "fsb_flavor_name": "nv.c20r64d1", + "sctp_rule_protocol": "132", + "sctp-a-ipv6-ingress_rule_application": "any", + "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0", + "ecomp_generated_naming": "false", + "sctp-a-IPv6_ethertype": "IPv6", + "vlc_st_virtualization_type": "virtual-machine", + "vlc2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress-dst_end_port": "65535.0", + "sctp-b-ingress-dst_start_port": "0.0", + "sctp-a-ipv6-ingress-src_end_port": "65535.0", + "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-b-ingress_rule_application": "any", + "vlc_flavor_name": "nd.c16r64d1", + "int2_sec_group_name": "int2-sec-group", + "sctp-b-ipv6-egress_src_addresses": "local", + "vlc_st_interface_type_int1": "other1", + "vlc_st_interface_type_int2": "other2", + "sctp-a-ipv6-egress-dst_start_port": "0", + "sctp-b-egress-src_end_port": "65535.0", + "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0", + "Internal2_shared": "false", + "sctp-a-ipv6-egress_rule_protocol": "any", + "Internal2_rpf": "disable", + "vlc1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_end_port": "65535", + "sctp-a-ipv6-egress_src_addresses": "local", + "sctp-a-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-egress_src_end_port": "65535", + "Internal1_forwarding_mode": "l2", + "Internal2_dhcp": "false", + "sctp-a-dst_subnet_prefix_v6": "::", + "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2", + "vlc_st_interface_type_gtp": "other0", + "ncb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-src_subnet_prefix_v6": "::", + "sctp-a-egress_dst_subnet_prefix_len": "0.0", + "int1_sec_group_name": "int1-sec-group", + "Internal1_dhcp": "false", + "fsb2_Internal2_mac": "00:11:22:EF:AC:DF", + "Internal2_forwarding_mode": "l2", + "sctp-a-ipv6-egress_dst_end_port": "65535", + "sctp-b-egress_dst_subnet_prefix": "0.0.0.0", + "Internal1_net_cidr_len": "17", + "gpb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-a-ingress_dst_addresses": "local", + "sctp-b-ingress-src_subnet_prefix_len": "0.0", + "sctp-a-egress_action": "pass", + "fsb_volume_type_0": "SF-Default-SSD", + "ncb2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_sctp_a": "left", + "vlc_st_version": "2", + "sctp-a-src_subnet_prefix_v6": "::", + "vlc_st_interface_type_sctp_b": "right", + "sctp-a-ingress_rule_application": "any", + "sctp-b-egress_ethertype": "IPv4", + "sctp-a-ipv6-egress_src_start_port": "0", + "instance_ip_family_v6": "v6", + "gpb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress-src_start_port": "0.0", + "fsb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress_dst_addresses": "local", + "vlc_st_interface_type_oam": "management", + "multi_stage_design": "false", + "oam_sec_group_name": "oam-sec-group", + "Internal2_net_gateway": "10.0.0.10", + "sctp-a-ipv6-ingress-dst_end_port": "65535", + "Internal1_net_gateway": "10.0.0.10", + "sctp-b-ipv6-egress-dst_start_port": "0", + "sctp-b-ipv6-egress_rule_protocol": "any", + "gtp_sec_group_name": "gtp-sec-group", + "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_dst_addresses": "local", + "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0", + "sctp-b-ipv6-egress_action": "pass", + "sctp-a-egress_rule_protocol": "icmp", + "sctp-a-ipv6-egress_action": "pass", + "Internal1_shared": "false", + "sctp-b-ipv6-ingress_rule_protocol": "any", + "Internal2_net_cidr_len": "17", + "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-a-ingress-src_end_port": "65535.0", + "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-a-egress-dst_end_port": "65535.0", + "sctp-b-egress_rule_protocol": "icmp", + "sctp-a-ingress_action": "pass", + "sctp-b-ipv6-ingress_action": "pass", + "vlc_st_service_type": "firewall", + "sctp-b-ipv6-egress_dst_end_port": "65535", + "vlc2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-ingress-dst_start_port": "0", + "vlc_st_availability_zone": "true", + "sctp-b-ingress-src_subnet_prefix": "0.0.0.0", + "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2", + "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0", + "gpb_flavor_name": "nv.c20r64d1", + "Internal1_allow_transit": "true", + "availability_zone_max_count": "1", + "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2", + "sctp-b-ipv6-ingress_dst_addresses": "local", + "sctp-b-ipv6-ingress_ethertype": "IPv4", + "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-a-ingress-src_subnet_prefix": "0.0.0.0", + "vlc1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-ipv6-ingress_action": "pass", + "Internal1_rpf": "disable", + "sctp-b-ingress_ethertype": "IPv4", + "sctp-b-ingress-src_end_port": "65535.0", + "sctp-b-egress_rule_application": "any", + "sctp-a-ipv6-ingress_rule_protocol": "any", + "sctp-a-ingress-src_start_port": "0.0", + "sctp-b-egress-dst_end_port": "65535.0" + }, + "type": "VF", + "modelCustomizationName": "VF_vMee 0", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": { + "Port Mirroring Configuration By Policy 0": { + "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50", + "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "27.0", + "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 0", + "sourceNodes": [], + "collectorNodes": null, + "configurationByPolicy": false + } + }, + "serviceProxies": {}, + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "pnfs": {} + }, + "f4d84bb4-a416-4b4e-997e-0059973630b9": { + "service": { + "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "", + "serviceRole": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350", + "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "9.0", + "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtpocfo-kvm-az01" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "2017488_adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "2017488_adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "availability_zone_0": { + "displayName": "availability_zone_0", + "command": "get_input", + "inputName": "2017488_adiodvpe0_availability_zone_0" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "max_instances": 10, + "min_instances": 1, + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "ROUTER", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "vre172_nova_img", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "false", + "nf_naming_code": "me6", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "vpfe172_nova_img", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "ADIOD vPE", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "vPE", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } + } + }, + "pnfs": {} + } + }, + "serviceInstance": { + "f4d84bb4-a416-4b4e-997e-0059973630b9": { + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "rollbackOnFailure": "true", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0eknhp": { + "modelInfo": { + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "modelVersion": "6", + "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0" + }, + "isMissingData": false, + "instanceParams": [ + {} + ] + } + } + }, + "isMissingData": false, + "originalName": null, + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": "hvf6", + "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", + "lineOfBusiness": "ONAP", + "platformName": "platform", + "modelInfo": { + "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "modelVersionId": "ea81d6f7-0861-44a7-b7d5-d173b562c350", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "9.0", + "modelCustomizationId": "41516cc6-5098-4b40-a619-f8d5f55fc4d8", + "modelCustomizationName": "2017-488_ADIOD-vPE 0" + } + }, + "2017-488_ADIOD-vPE 0:0001": { + "rollbackOnFailure": "true", + "vfModules": {}, + "isMissingData": false, + "originalName": "2017-488_ADIOD-vPE 0", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": "hvf6", + "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", + "lineOfBusiness": "ONAP", + "platformName": "platform", + "modelInfo": { + "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "modelVersionId": "ea81d6f7-0861-44a7-b7d5-d173b562c350", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "9.0", + "modelCustomizationId": "41516cc6-5098-4b40-a619-f8d5f55fc4d8", + "modelCustomizationName": "2017-488_ADIOD-vPE 0" + } + } + }, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 0, + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "JAG1", + "projectName": "x1", + "owningEntityId": "aaa1", + "rollbackOnFailure": "false", + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "modelName": "ADIOD vMX vPE_BV Service 488", + "modelVersion": "1.0" + }, + "tenantName": "USP-SIP-IC-24335-T-01", + "existingVNFCounterMap": { + "41516cc6-5098-4b40-a619-f8d5f55fc4d8": 1 + }, + "existingNames": {}, + "aicZoneName": "YUDFJULP-JAG1" + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "JANET25", + "name": "JANET25", + "isPermitted": true + }, + { + "id": "hvf6", + "name": "hvf6", + "isPermitted": true + } + ], + "lcpRegionsTenantsMap": { + "JANET25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true + } + ] + } + }, + "subscribers": [ + { + "id": "CAR_2020_ER", + "name": "CAR_2020_ER", + "isPermitted": true + }, + { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-2", + "name": "DALE BRIDGES", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-1", + "name": "LLOYD BRIDGES", + "isPermitted": false + }, + { + "id": "jimmy-example", + "name": "JimmyExampleCust-20161102", + "isPermitted": false + }, + { + "id": "jimmy-example2", + "name": "JimmyExampleCust-20161103", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-102", + "name": "ERICA5779-TestSub-PWT-102", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-101", + "name": "ERICA5779-TestSub-PWT-101", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-4", + "name": "ERICA5779-Subscriber-5", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-103", + "name": "ERICA5779-TestSub-PWT-103", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-2", + "name": "ERICA5779-Subscriber-2", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + }, + { + "id": "ERICA5779-Subscriber-3", + "name": "ERICA5779-Subscriber-3", + "isPermitted": false + }, + { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "SCOTTIE", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "Cisneros", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "Josefina", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vSCP", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vMMSC", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "BAN1", + "name": "VSDKYUTP-BAN1" + }, + { + "id": "DKJ1", + "name": "DKJSJDKA-DKJ1" + }, + { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, + { + "id": "UIO1", + "name": "uioclli1-UIO1" + }, + { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, + { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, + { + "id": "SDE1", + "name": "ZXCVBNMA-SDE1" + }, + { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, + { + "id": "ORL1", + "name": "ORLDFLMA-ORL1" + }, + { + "id": "JAD1", + "name": "JADECLLI-JAD1" + }, + { + "id": "ZXL1", + "name": "LWLWCANN-ZXL1" + }, + { + "id": "CKL1", + "name": "CLKSKCKK-CKL1" + }, + { + "id": "SDF1", + "name": "sdfclli1-SDF1" + }, + { + "id": "RAD1", + "name": "RADICAL1-RAD1" + }, + { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, + { + "id": "REL1", + "name": "INGERFGT-REL1" + }, + { + "id": "JNL1", + "name": "CJALSDAC-JNL1" + }, + { + "id": "OLK1", + "name": "OLKOLKLS-OLK1" + }, + { + "id": "CHI1", + "name": "CHILLIWE-CHI1" + }, + { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, + { + "id": "TUF1", + "name": "TUFCLLI1-TUF1" + }, + { + "id": "KJN1", + "name": "CKALDKSA-KJN1" + }, + { + "id": "SAM1", + "name": "SNDGCA64-SAN1" + }, + { + "id": "SCK1", + "name": "SCKSCKSK-SCK1" + }, + { + "id": "HJH1", + "name": "AOEEQQQD-HJH1" + }, + { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, + { + "id": "KOR1", + "name": "HYFLNBVT-KOR1" + }, + { + "id": "ATL43", + "name": "AICLOCID-ATL43" + }, + { + "id": "ATL54", + "name": "AICFTAAI-ATL54" + }, + { + "id": "ATL66", + "name": "CLLIAAII-ATL66" + }, + { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, + { + "id": "ICC1", + "name": "SANJITAT-ICC1" + }, + { + "id": "MNT11", + "name": "WSXEFBTH-MNT11" + }, + { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, + { + "id": "MAD11", + "name": "SDFQWGKL-MAD11" + }, + { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, + { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, + { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, + { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, + { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, + { + "id": "DHA12", + "name": "WSXEDECF-DHA12" + }, + { + "id": "HJE1", + "name": "AOEEWWWD-HJE1" + }, + { + "id": "NCA1", + "name": "NCANCANN-NCA1" + }, + { + "id": "IOP1", + "name": "iopclli1-IOP1" + }, + { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, + { + "id": "KAP1", + "name": "HIOUYTRQ-KAP1" + }, + { + "id": "ZEN1", + "name": "ZENCLLI1-ZEN1" + }, + { + "id": "HKA1", + "name": "JAKHLASS-HKA1" + }, + { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, + { + "id": "SAI1", + "name": "UBEKQLPD-SAI1" + }, + { + "id": "ERT1", + "name": "ertclli1-ERT1" + }, + { + "id": "IBB1", + "name": "PLMKOIJU-IBB1" + }, + { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, + { + "id": "HSD1", + "name": "CHASKCDS-HSD1" + }, + { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, + { + "id": "SEE78", + "name": "SDCTEEE4-SEE78" + }, + { + "id": "SAN13", + "name": "TOKYJPFA-SAN13" + }, + { + "id": "SAA78", + "name": "SDCTAAA1-SAA78" + }, + { + "id": "LUC1", + "name": "ATLDFGYC-LUC1" + }, + { + "id": "AMD13", + "name": "MEMATLAN-AMD13" + }, + { + "id": "TOR1", + "name": "TOROONXN-TOR1" + }, + { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, + { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, + { + "id": "CAL33", + "name": "CALIFORN-CAL33" + }, + { + "id": "SHH78", + "name": "SDIT1HHH-SHH78" + }, + { + "id": "DSA1", + "name": "LKJHGFDS-DSA1" + }, + { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, + { + "id": "BNA1", + "name": "BNARAGBK-BNA1" + }, + { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, + { + "id": "APP1", + "name": "WBHGTYUI-APP1" + }, + { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, + { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, + { + "id": "mac10", + "name": "PKGTESTF-mac10" + }, + { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, + { + "id": "SAX78", + "name": "SDCTAXG1-SAX78" + }, + { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, + { + "id": "TOK1", + "name": "TOKYJPFA-TOK1" + }, + { + "id": "KGM2", + "name": "KGMTNC20-KGM2" + }, + { + "id": "DCC1b", + "name": "POIUYTGH-DCC1b" + }, + { + "id": "SKK78", + "name": "SDCTKKK1-SKK78" + }, + { + "id": "SGG78", + "name": "SDCTGGG1-SGG78" + }, + { + "id": "SJJ78", + "name": "SDCTJJJ1-SJJ78" + }, + { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, + { + "id": "LAG1", + "name": "LARGIZON-LAG1" + }, + { + "id": "IAA1", + "name": "QAZXSWED-IAA1" + }, + { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, + { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, + { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, + { + "id": "LAG45", + "name": "LARGIZON-LAG1a" + }, + { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, + { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, + { + "id": "DCC1a", + "name": "POIUYTGH-DCC1a" + }, + { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, + { + "id": "LON1", + "name": "LONEENCO-LON1" + }, + { + "id": "SJU78", + "name": "SDIT1JUB-SJU78" + }, + { + "id": "STN27", + "name": "HSTNTX01-STN27" + }, + { + "id": "SSW56", + "name": "ss8126GT-SSW56" + }, + { + "id": "SBB78", + "name": "SDIT1BBB-SBB78" + }, + { + "id": "DCC3", + "name": "POIUYTGH-DCC3" + }, + { + "id": "GNV1", + "name": "GNVLSCTL-GNV1" + }, + { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, + { + "id": "TOY1", + "name": "TORYONNZ-TOY1" + }, + { + "id": "STT1", + "name": "STTLWA02-STT1" + }, + { + "id": "STG1", + "name": "STTGGE62-STG1" + }, + { + "id": "SLL78", + "name": "SDCTLLL1-SLL78" + }, + { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, + { + "id": "ATL2", + "name": "ATLNGANW-ATL2" + }, + { + "id": "BOT1", + "name": "BOTHWAKY-BOT1" + }, + { + "id": "SNG1", + "name": "SNGPSIAU-SNG1" + }, + { + "id": "NYC1", + "name": "NYCMNY54-NYC1" + }, + { + "id": "LAG1b", + "name": "LARGIZON-LAG1b" + }, + { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, + { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, + { + "id": "PLT1", + "name": "PLTNCA60-PLT1" + }, + { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, + { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, + { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, + { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, + { + "id": "OKC1", + "name": "OKCBOK55-OKC1" + }, + { + "id": "PAR1", + "name": "PARSFRCG-PAR1" + }, + { + "id": "TES36", + "name": "ABCEETES-TES36" + }, + { + "id": "COM1", + "name": "PLMKOPIU-COM1" + }, + { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, + { + "id": "SDG78", + "name": "SDIT1BDG-SDG78" + }, + { + "id": "mac20", + "name": "PKGTESTF-mac20" + }, + { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, + { + "id": "HST25", + "name": "HSTNTX01-HST25" + }, + { + "id": "AMD18", + "name": "AUDIMA01-AMD18" + }, + { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, + { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, + { + "id": "SDD82", + "name": "SAIT1DD9-SDD82" + }, + { + "id": "JCV1", + "name": "JCVLFLBW-JCV1" + }, + { + "id": "SUL2", + "name": "WERTYUJK-SUL2" + }, + { + "id": "PUR1", + "name": "purelyde-PUR1" + }, + { + "id": "FDE55", + "name": "FDERT555-FDE55" + }, + { + "id": "SITE", + "name": "LONEENCO-SITE" + }, + { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, + { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, + { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, + { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, + { + "id": "RAI1", + "name": "poiuytre-RAI1" + }, + { + "id": "HPO1", + "name": "ATLNGAUP-HPO1" + }, + { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, + { + "id": "SCC80", + "name": "SAIT9CC3-SCC80" + }, + { + "id": "SAA12", + "name": "SAIT9AF8-SAA12" + }, + { + "id": "SAA14", + "name": "SAIT1AA9-SAA14" + }, + { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, + { + "id": "CWY1", + "name": "CWYMOWBS-CWY1" + }, + { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, + { + "id": "DSL12", + "name": "DSLFK242-DSL12" + }, + { + "id": "ATL53", + "name": "AAIATLTE-ATL53" + }, + { + "id": "SAA11", + "name": "SAIT9AA2-SAA11" + }, + { + "id": "ATL62", + "name": "TESSASCH-ATL62" + }, + { + "id": "AUG1", + "name": "ASDFGHJK-AUG1" + }, + { + "id": "POI22", + "name": "POIUY123-POI22" + }, + { + "id": "SAA13", + "name": "SAIT1AA9-SAA13" + }, + { + "id": "BHY17", + "name": "BHYTFRF3-BHY17" + }, + { + "id": "LIS1", + "name": "HOSTPROF-LIS1" + }, + { + "id": "SIP1", + "name": "ZXCVBNMK-SIP1" + }, + { + "id": "ATL99", + "name": "TEESTAAI-ATL43" + }, + { + "id": "ATL64", + "name": "FORLOAAJ-ATL64" + }, + { + "id": "TAT33", + "name": "TESAAISA-TAT33" + }, + { + "id": "RAD10", + "name": "INDIPUNE-RAD10" + }, + { + "id": "RTW5", + "name": "BHYTFRY4-RTW5" + }, + { + "id": "JGS1", + "name": "KSJKKKKK-JGS1" + }, + { + "id": "ATL98", + "name": "TEESTAAI-ATL43" + }, + { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, + { + "id": "ATL44", + "name": "ATLSANAB-ATL44" + }, + { + "id": "RTD2", + "name": "BHYTFRk4-RTD2" + }, + { + "id": "NIR1", + "name": "ORFLMANA-NIR1" + }, + { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, + { + "id": "NUM1", + "name": "QWERTYUI-NUM1" + }, + { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, + { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, + { + "id": "ATL56", + "name": "ATLSANAC-ATL56" + }, + { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, + { + "id": "RCT1", + "name": "AMSTERNL-RCT1" + }, + { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, + { + "id": "ABC14", + "name": "TESAAISA-ABC14" + }, + { + "id": "TAT37", + "name": "TESAAISD-TAT37" + }, + { + "id": "MIC54", + "name": "MICHIGAN-MIC54" + }, + { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, + { + "id": "AMF11", + "name": "AMDOCS01-AMF11" + }, + { + "id": "ATL63", + "name": "ATLSANEW-ATL63" + }, + { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, + { + "id": "MTN20", + "name": "MDTWNJ21-MTN20" + }, + { + "id": "ABC15", + "name": "AAITESAN-ABC15" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "[CATEGORY_PARAMETERS] Update" + } + } + } + + function getReduxWithVNFMissingData() { + return { + "global": { + "name": null, + "flags": { + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SHOW_VERIFY_SERVICE": false, + "FLAG_COLLECTION_RESOURCE_SUPPORT": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "CREATE_INSTANCE_TEST": false, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true, + "FLAG_ASYNC_INSTANTIATION": true, + "FLAG_ASYNC_JOBS": true, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_ADD_MSO_TESTAPI_FIELD": true + }, + "type": "[FLAGS] Update" + }, + "service": { + "serviceHierarchy": { + "f4d84bb4-a416-4b4e-997e-0059973630b9": { + "service": { + "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "", + "serviceRole": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350", + "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "9.0", + "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtpocfo-kvm-az01" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "2017488_adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "2017488_adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "availability_zone_0": { + "displayName": "availability_zone_0", + "command": "get_input", + "inputName": "2017488_adiodvpe0_availability_zone_0" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "ROUTER", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "vre172_nova_img", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "false", + "nf_naming_code": "me6", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "vpfe172_nova_img", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "ADIOD vPE", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "vPE", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 2, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } + } + }, + "pnfs": {} + }, + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "service": { + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "ComplexService", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "ComplexService", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "VF_vMee 0": { + "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60", + "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e", + "description": "VSP_vMee", + "name": "VF_vMee", + "version": "2.0", + "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9", + "inputs": {}, + "commands": {}, + "properties": { + "gpb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_start_port": "0", + "sctp-a-ipv6-egress_rule_application": "any", + "Internal2_allow_transit": "true", + "sctp-b-IPv6_ethertype": "IPv6", + "sctp-a-egress_rule_application": "any", + "sctp-b-ingress_action": "pass", + "sctp-b-ingress_rule_protocol": "icmp", + "ncb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-ingress-src_start_port": "0.0", + "ncb1_Internal2_mac": "00:11:22:EF:AC:DF", + "fsb_volume_size_0": "320.0", + "sctp-b-egress_src_addresses": "local", + "sctp-a-ipv6-ingress_ethertype": "IPv4", + "sctp-a-ipv6-ingress-dst_start_port": "0", + "sctp-b-ipv6-ingress_rule_application": "any", + "domain_name": "default-domain", + "sctp-a-ingress_rule_protocol": "icmp", + "sctp-b-egress-src_start_port": "0.0", + "sctp-a-egress_src_addresses": "local", + "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group", + "sctp-a-egress-src_start_port": "0.0", + "sctp-a-ingress_ethertype": "IPv4", + "sctp-b-ipv6-ingress-dst_end_port": "65535", + "sctp-b-dst_subnet_prefix_v6": "::", + "nf_naming": "{ecomp_generated_naming=true}", + "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-b-egress-dst_start_port": "0.0", + "ncb_flavor_name": "nv.c20r64d1", + "gpb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix_len": "0.0", + "Internal2_net_cidr": "10.0.0.10", + "sctp-a-ingress-dst_start_port": "0.0", + "sctp-a-egress-dst_start_port": "0.0", + "fsb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-egress_ethertype": "IPv4", + "vlc_st_service_mode": "in-network-nat", + "sctp-a-ipv6-egress_ethertype": "IPv4", + "sctp-a-egress-src_end_port": "65535.0", + "sctp-b-ipv6-egress_rule_application": "any", + "sctp-b-egress_action": "pass", + "sctp-a-ingress-src_subnet_prefix_len": "0.0", + "sctp-b-ipv6-ingress-src_end_port": "65535.0", + "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group", + "fsb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-a-ipv6-ingress-src_start_port": "0.0", + "sctp-b-ipv6-egress_ethertype": "IPv4", + "Internal1_net_cidr": "10.0.0.10", + "sctp-a-egress_dst_subnet_prefix": "0.0.0.0", + "fsb_flavor_name": "nv.c20r64d1", + "sctp_rule_protocol": "132", + "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_rule_application": "any", + "ecomp_generated_naming": "true", + "sctp-a-IPv6_ethertype": "IPv6", + "vlc2_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_virtualization_type": "virtual-machine", + "sctp-b-ingress-dst_start_port": "0.0", + "sctp-b-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-ingress-src_end_port": "65535.0", + "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-b-ingress_rule_application": "any", + "int2_sec_group_name": "int2-sec-group", + "vlc_flavor_name": "nd.c16r64d1", + "sctp-b-ipv6-egress_src_addresses": "local", + "vlc_st_interface_type_int1": "other1", + "sctp-b-egress-src_end_port": "65535.0", + "sctp-a-ipv6-egress-dst_start_port": "0", + "vlc_st_interface_type_int2": "other2", + "sctp-a-ipv6-egress_rule_protocol": "any", + "Internal2_shared": "false", + "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0", + "Internal2_rpf": "disable", + "vlc1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_end_port": "65535", + "sctp-a-ipv6-egress_src_addresses": "local", + "sctp-a-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-egress_src_end_port": "65535", + "Internal1_forwarding_mode": "l2", + "Internal2_dhcp": "false", + "sctp-a-dst_subnet_prefix_v6": "::", + "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2", + "vlc_st_interface_type_gtp": "other0", + "ncb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-src_subnet_prefix_v6": "::", + "sctp-a-egress_dst_subnet_prefix_len": "0.0", + "int1_sec_group_name": "int1-sec-group", + "Internal1_dhcp": "false", + "sctp-a-ipv6-egress_dst_end_port": "65535", + "Internal2_forwarding_mode": "l2", + "fsb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix": "0.0.0.0", + "Internal1_net_cidr_len": "17", + "gpb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress-src_subnet_prefix_len": "0.0", + "sctp-a-ingress_dst_addresses": "local", + "sctp-a-egress_action": "pass", + "fsb_volume_type_0": "SF-Default-SSD", + "ncb2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_sctp_a": "left", + "vlc_st_interface_type_sctp_b": "right", + "sctp-a-src_subnet_prefix_v6": "::", + "vlc_st_version": "2", + "sctp-b-egress_ethertype": "IPv4", + "sctp-a-ingress_rule_application": "any", + "gpb1_Internal2_mac": "00:11:22:EF:AC:DF", + "instance_ip_family_v6": "v6", + "sctp-a-ipv6-egress_src_start_port": "0", + "sctp-b-ingress-src_start_port": "0.0", + "sctp-b-ingress_dst_addresses": "local", + "fsb1_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_oam": "management", + "multi_stage_design": "false", + "oam_sec_group_name": "oam-sec-group", + "Internal2_net_gateway": "10.0.0.10", + "sctp-a-ipv6-ingress-dst_end_port": "65535", + "sctp-b-ipv6-egress-dst_start_port": "0", + "Internal1_net_gateway": "10.0.0.10", + "sctp-b-ipv6-egress_rule_protocol": "any", + "gtp_sec_group_name": "gtp-sec-group", + "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_dst_addresses": "local", + "sctp-a-egress_rule_protocol": "icmp", + "sctp-b-ipv6-egress_action": "pass", + "sctp-a-ipv6-egress_action": "pass", + "Internal1_shared": "false", + "sctp-b-ipv6-ingress_rule_protocol": "any", + "Internal2_net_cidr_len": "17", + "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-a-ingress-src_end_port": "65535.0", + "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-a-egress-dst_end_port": "65535.0", + "sctp-a-ingress_action": "pass", + "sctp-b-egress_rule_protocol": "icmp", + "sctp-b-ipv6-ingress_action": "pass", + "vlc_st_service_type": "firewall", + "sctp-b-ipv6-egress_dst_end_port": "65535", + "sctp-b-ipv6-ingress-dst_start_port": "0", + "vlc2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_availability_zone": "true", + "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2", + "sctp-b-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0", + "Internal1_allow_transit": "true", + "gpb_flavor_name": "nv.c20r64d1", + "availability_zone_max_count": "1", + "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2", + "sctp-b-ipv6-ingress_dst_addresses": "local", + "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-ingress_ethertype": "IPv4", + "vlc1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_action": "pass", + "Internal1_rpf": "disable", + "sctp-b-ingress_ethertype": "IPv4", + "sctp-b-egress_rule_application": "any", + "sctp-b-ingress-src_end_port": "65535.0", + "sctp-a-ipv6-ingress_rule_protocol": "any", + "sctp-a-ingress-src_start_port": "0.0", + "sctp-b-egress-dst_end_port": "65535.0" + }, + "type": "VF", + "modelCustomizationName": "VF_vMee 0", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": { + "Port Mirroring Configuration By Policy 0": { + "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50", + "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "27.0", + "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 0", + "sourceNodes": [], + "collectorNodes": null, + "configurationByPolicy": false + } + }, + "serviceProxies": {}, + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "pnfs": {} + } + }, + "serviceInstance": { + "f4d84bb4-a416-4b4e-997e-0059973630b9": { + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "rollbackOnFailure": "true", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0jkyqv": { + "isMissingData": false, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "modelVersion": "6", + "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0" + }, + "instanceParams": [ + {} + ], + "trackById": "n2ydptuy9lj" + } + } + }, + "isMissingData": false, + "originalName": null, + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": null, + "tenantId": null, + "lineOfBusiness": null, + "platformName": null, + "modelInfo": { + "modelType": "VF", + "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "9.0", + "modelCustomizationName": "2017-488_ADIOD-vPE 0" + }, + "trackById": "iapflwk8bip" + }, + "2017-488_ADIOD-vPE 0:0001": { + "rollbackOnFailure": "true", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0jkyqv": { + "isMissingData": false, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "modelVersion": "6", + "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0" + }, + "instanceParams": [ + {} + ], + "trackById": "wh18xgy0dc" + } + } + }, + "isMissingData": true, + "originalName": "2017-488_ADIOD-vPE 0", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": null, + "tenantId": null, + "lineOfBusiness": null, + "platformName": null, + "modelInfo": { + "modelType": "VF", + "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "9.0", + "modelCustomizationName": "2017-488_ADIOD-vPE 0" + }, + "trackById": "iapflwk8bip" + } + }, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 1, + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "JAG1", + "projectName": "x1", + "owningEntityId": "aaa1", + "rollbackOnFailure": "true", + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "modelName": "ADIOD vMX vPE_BV Service 488", + "modelVersion": "1.0" + }, + "existingVNFCounterMap": { + "91415b44-753d-494c-926a-456a9172bbb9": 1 + }, + "existingNetworksCounterMap": {}, + "tenantName": "USP-SIP-IC-24335-T-01", + "aicZoneName": "YUDFJULP-JAG1" + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "JANET25", + "name": "JANET25", + "isPermitted": true + }, + { + "id": "hvf6", + "name": "hvf6", + "isPermitted": true + } + ], + "lcpRegionsTenantsMap": { + "JANET25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true + } + ] + } + }, + "subscribers": [ + { + "id": "CAR_2020_ER", + "name": "CAR_2020_ER", + "isPermitted": true + }, + { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-2", + "name": "DALE BRIDGES", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-1", + "name": "LLOYD BRIDGES", + "isPermitted": false + }, + { + "id": "jimmy-example", + "name": "JimmyExampleCust-20161102", + "isPermitted": false + }, + { + "id": "jimmy-example2", + "name": "JimmyExampleCust-20161103", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-102", + "name": "ERICA5779-TestSub-PWT-102", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-101", + "name": "ERICA5779-TestSub-PWT-101", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-4", + "name": "ERICA5779-Subscriber-5", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-103", + "name": "ERICA5779-TestSub-PWT-103", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-2", + "name": "ERICA5779-Subscriber-2", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + }, + { + "id": "ERICA5779-Subscriber-3", + "name": "ERICA5779-Subscriber-3", + "isPermitted": false + }, + { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "SCOTTIE", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "Cisneros", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "Josefina", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vSCP", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vMMSC", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "BAN1", + "name": "VSDKYUTP-BAN1" + }, + { + "id": "DKJ1", + "name": "DKJSJDKA-DKJ1" + }, + { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, + { + "id": "UIO1", + "name": "uioclli1-UIO1" + }, + { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, + { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, + { + "id": "SDE1", + "name": "ZXCVBNMA-SDE1" + }, + { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, + { + "id": "ORL1", + "name": "ORLDFLMA-ORL1" + }, + { + "id": "JAD1", + "name": "JADECLLI-JAD1" + }, + { + "id": "ZXL1", + "name": "LWLWCANN-ZXL1" + }, + { + "id": "CKL1", + "name": "CLKSKCKK-CKL1" + }, + { + "id": "SDF1", + "name": "sdfclli1-SDF1" + }, + { + "id": "RAD1", + "name": "RADICAL1-RAD1" + }, + { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, + { + "id": "REL1", + "name": "INGERFGT-REL1" + }, + { + "id": "JNL1", + "name": "CJALSDAC-JNL1" + }, + { + "id": "OLK1", + "name": "OLKOLKLS-OLK1" + }, + { + "id": "CHI1", + "name": "CHILLIWE-CHI1" + }, + { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, + { + "id": "TUF1", + "name": "TUFCLLI1-TUF1" + }, + { + "id": "KJN1", + "name": "CKALDKSA-KJN1" + }, + { + "id": "SAM1", + "name": "SNDGCA64-SAN1" + }, + { + "id": "SCK1", + "name": "SCKSCKSK-SCK1" + }, + { + "id": "HJH1", + "name": "AOEEQQQD-HJH1" + }, + { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, + { + "id": "KOR1", + "name": "HYFLNBVT-KOR1" + }, + { + "id": "ATL43", + "name": "AICLOCID-ATL43" + }, + { + "id": "ATL54", + "name": "AICFTAAI-ATL54" + }, + { + "id": "ATL66", + "name": "CLLIAAII-ATL66" + }, + { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, + { + "id": "ICC1", + "name": "SANJITAT-ICC1" + }, + { + "id": "MNT11", + "name": "WSXEFBTH-MNT11" + }, + { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, + { + "id": "MAD11", + "name": "SDFQWGKL-MAD11" + }, + { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, + { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, + { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, + { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, + { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, + { + "id": "DHA12", + "name": "WSXEDECF-DHA12" + }, + { + "id": "HJE1", + "name": "AOEEWWWD-HJE1" + }, + { + "id": "NCA1", + "name": "NCANCANN-NCA1" + }, + { + "id": "IOP1", + "name": "iopclli1-IOP1" + }, + { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, + { + "id": "KAP1", + "name": "HIOUYTRQ-KAP1" + }, + { + "id": "ZEN1", + "name": "ZENCLLI1-ZEN1" + }, + { + "id": "HKA1", + "name": "JAKHLASS-HKA1" + }, + { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, + { + "id": "SAI1", + "name": "UBEKQLPD-SAI1" + }, + { + "id": "ERT1", + "name": "ertclli1-ERT1" + }, + { + "id": "IBB1", + "name": "PLMKOIJU-IBB1" + }, + { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, + { + "id": "HSD1", + "name": "CHASKCDS-HSD1" + }, + { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, + { + "id": "SEE78", + "name": "SDCTEEE4-SEE78" + }, + { + "id": "SAN13", + "name": "TOKYJPFA-SAN13" + }, + { + "id": "SAA78", + "name": "SDCTAAA1-SAA78" + }, + { + "id": "LUC1", + "name": "ATLDFGYC-LUC1" + }, + { + "id": "AMD13", + "name": "MEMATLAN-AMD13" + }, + { + "id": "TOR1", + "name": "TOROONXN-TOR1" + }, + { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, + { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, + { + "id": "CAL33", + "name": "CALIFORN-CAL33" + }, + { + "id": "SHH78", + "name": "SDIT1HHH-SHH78" + }, + { + "id": "DSA1", + "name": "LKJHGFDS-DSA1" + }, + { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, + { + "id": "BNA1", + "name": "BNARAGBK-BNA1" + }, + { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, + { + "id": "APP1", + "name": "WBHGTYUI-APP1" + }, + { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, + { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, + { + "id": "mac10", + "name": "PKGTESTF-mac10" + }, + { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, + { + "id": "SAX78", + "name": "SDCTAXG1-SAX78" + }, + { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, + { + "id": "TOK1", + "name": "TOKYJPFA-TOK1" + }, + { + "id": "KGM2", + "name": "KGMTNC20-KGM2" + }, + { + "id": "DCC1b", + "name": "POIUYTGH-DCC1b" + }, + { + "id": "SKK78", + "name": "SDCTKKK1-SKK78" + }, + { + "id": "SGG78", + "name": "SDCTGGG1-SGG78" + }, + { + "id": "SJJ78", + "name": "SDCTJJJ1-SJJ78" + }, + { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, + { + "id": "LAG1", + "name": "LARGIZON-LAG1" + }, + { + "id": "IAA1", + "name": "QAZXSWED-IAA1" + }, + { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, + { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, + { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, + { + "id": "LAG45", + "name": "LARGIZON-LAG1a" + }, + { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, + { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, + { + "id": "DCC1a", + "name": "POIUYTGH-DCC1a" + }, + { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, + { + "id": "LON1", + "name": "LONEENCO-LON1" + }, + { + "id": "SJU78", + "name": "SDIT1JUB-SJU78" + }, + { + "id": "STN27", + "name": "HSTNTX01-STN27" + }, + { + "id": "SSW56", + "name": "ss8126GT-SSW56" + }, + { + "id": "SBB78", + "name": "SDIT1BBB-SBB78" + }, + { + "id": "DCC3", + "name": "POIUYTGH-DCC3" + }, + { + "id": "GNV1", + "name": "GNVLSCTL-GNV1" + }, + { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, + { + "id": "TOY1", + "name": "TORYONNZ-TOY1" + }, + { + "id": "STT1", + "name": "STTLWA02-STT1" + }, + { + "id": "STG1", + "name": "STTGGE62-STG1" + }, + { + "id": "SLL78", + "name": "SDCTLLL1-SLL78" + }, + { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, + { + "id": "ATL2", + "name": "ATLNGANW-ATL2" + }, + { + "id": "BOT1", + "name": "BOTHWAKY-BOT1" + }, + { + "id": "SNG1", + "name": "SNGPSIAU-SNG1" + }, + { + "id": "NYC1", + "name": "NYCMNY54-NYC1" + }, + { + "id": "LAG1b", + "name": "LARGIZON-LAG1b" + }, + { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, + { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, + { + "id": "PLT1", + "name": "PLTNCA60-PLT1" + }, + { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, + { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, + { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, + { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, + { + "id": "OKC1", + "name": "OKCBOK55-OKC1" + }, + { + "id": "PAR1", + "name": "PARSFRCG-PAR1" + }, + { + "id": "TES36", + "name": "ABCEETES-TES36" + }, + { + "id": "COM1", + "name": "PLMKOPIU-COM1" + }, + { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, + { + "id": "SDG78", + "name": "SDIT1BDG-SDG78" + }, + { + "id": "mac20", + "name": "PKGTESTF-mac20" + }, + { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, + { + "id": "HST25", + "name": "HSTNTX01-HST25" + }, + { + "id": "AMD18", + "name": "AUDIMA01-AMD18" + }, + { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, + { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, + { + "id": "SDD82", + "name": "SAIT1DD9-SDD82" + }, + { + "id": "JCV1", + "name": "JCVLFLBW-JCV1" + }, + { + "id": "SUL2", + "name": "WERTYUJK-SUL2" + }, + { + "id": "PUR1", + "name": "purelyde-PUR1" + }, + { + "id": "FDE55", + "name": "FDERT555-FDE55" + }, + { + "id": "SITE", + "name": "LONEENCO-SITE" + }, + { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, + { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, + { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, + { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, + { + "id": "RAI1", + "name": "poiuytre-RAI1" + }, + { + "id": "HPO1", + "name": "ATLNGAUP-HPO1" + }, + { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, + { + "id": "SCC80", + "name": "SAIT9CC3-SCC80" + }, + { + "id": "SAA12", + "name": "SAIT9AF8-SAA12" + }, + { + "id": "SAA14", + "name": "SAIT1AA9-SAA14" + }, + { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, + { + "id": "CWY1", + "name": "CWYMOWBS-CWY1" + }, + { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, + { + "id": "DSL12", + "name": "DSLFK242-DSL12" + }, + { + "id": "ATL53", + "name": "AAIATLTE-ATL53" + }, + { + "id": "SAA11", + "name": "SAIT9AA2-SAA11" + }, + { + "id": "ATL62", + "name": "TESSASCH-ATL62" + }, + { + "id": "AUG1", + "name": "ASDFGHJK-AUG1" + }, + { + "id": "POI22", + "name": "POIUY123-POI22" + }, + { + "id": "SAA13", + "name": "SAIT1AA9-SAA13" + }, + { + "id": "BHY17", + "name": "BHYTFRF3-BHY17" + }, + { + "id": "LIS1", + "name": "HOSTPROF-LIS1" + }, + { + "id": "SIP1", + "name": "ZXCVBNMK-SIP1" + }, + { + "id": "ATL99", + "name": "TEESTAAI-ATL43" + }, + { + "id": "ATL64", + "name": "FORLOAAJ-ATL64" + }, + { + "id": "TAT33", + "name": "TESAAISA-TAT33" + }, + { + "id": "RAD10", + "name": "INDIPUNE-RAD10" + }, + { + "id": "RTW5", + "name": "BHYTFRY4-RTW5" + }, + { + "id": "JGS1", + "name": "KSJKKKKK-JGS1" + }, + { + "id": "ATL98", + "name": "TEESTAAI-ATL43" + }, + { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, + { + "id": "ATL44", + "name": "ATLSANAB-ATL44" + }, + { + "id": "RTD2", + "name": "BHYTFRk4-RTD2" + }, + { + "id": "NIR1", + "name": "ORFLMANA-NIR1" + }, + { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, + { + "id": "NUM1", + "name": "QWERTYUI-NUM1" + }, + { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, + { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, + { + "id": "ATL56", + "name": "ATLSANAC-ATL56" + }, + { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, + { + "id": "RCT1", + "name": "AMSTERNL-RCT1" + }, + { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, + { + "id": "ABC14", + "name": "TESAAISA-ABC14" + }, + { + "id": "TAT37", + "name": "TESAAISD-TAT37" + }, + { + "id": "MIC54", + "name": "MICHIGAN-MIC54" + }, + { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, + { + "id": "AMF11", + "name": "AMDOCS01-AMF11" + }, + { + "id": "ATL63", + "name": "ATLSANEW-ATL63" + }, + { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, + { + "id": "MTN20", + "name": "MDTWNJ21-MTN20" + }, + { + "id": "ABC15", + "name": "AAITESAN-ABC15" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "[LCP_REGIONS_AND_TENANTS] Update" + } + } + } + + function getReduxWithVFModuleMissingData() { + return { + "global": { + "name": null, + "flags": { + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SHOW_VERIFY_SERVICE": false, + "FLAG_COLLECTION_RESOURCE_SUPPORT": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "CREATE_INSTANCE_TEST": false, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true, + "FLAG_ASYNC_INSTANTIATION": true, + "FLAG_ASYNC_JOBS": true, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_ADD_MSO_TESTAPI_FIELD": true + }, + "type": "[FLAGS] Update" + }, + "service": { + "serviceHierarchy": { + "f4d84bb4-a416-4b4e-997e-0059973630b9": { + "service": { + "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "", + "serviceRole": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350", + "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "9.0", + "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtpocfo-kvm-az01" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "2017488_adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "2017488_adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "availability_zone_0": { + "displayName": "availability_zone_0", + "command": "get_input", + "inputName": "2017488_adiodvpe0_availability_zone_0" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "ROUTER", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "vre172_nova_img", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "false", + "nf_naming_code": "me6", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "vpfe172_nova_img", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "ADIOD vPE", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "vPE", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 2, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "8", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } + } + }, + "pnfs": {} + }, + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "service": { + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "ComplexService", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "ComplexService", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "VF_vMee 0": { + "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60", + "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e", + "description": "VSP_vMee", + "name": "VF_vMee", + "version": "2.0", + "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9", + "inputs": {}, + "commands": {}, + "properties": { + "gpb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_start_port": "0", + "sctp-a-ipv6-egress_rule_application": "any", + "Internal2_allow_transit": "true", + "sctp-b-IPv6_ethertype": "IPv6", + "sctp-a-egress_rule_application": "any", + "sctp-b-ingress_action": "pass", + "sctp-b-ingress_rule_protocol": "icmp", + "ncb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-ingress-src_start_port": "0.0", + "ncb1_Internal2_mac": "00:11:22:EF:AC:DF", + "fsb_volume_size_0": "320.0", + "sctp-b-egress_src_addresses": "local", + "sctp-a-ipv6-ingress_ethertype": "IPv4", + "sctp-a-ipv6-ingress-dst_start_port": "0", + "sctp-b-ipv6-ingress_rule_application": "any", + "domain_name": "default-domain", + "sctp-a-ingress_rule_protocol": "icmp", + "sctp-b-egress-src_start_port": "0.0", + "sctp-a-egress_src_addresses": "local", + "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group", + "sctp-a-egress-src_start_port": "0.0", + "sctp-a-ingress_ethertype": "IPv4", + "sctp-b-ipv6-ingress-dst_end_port": "65535", + "sctp-b-dst_subnet_prefix_v6": "::", + "nf_naming": "{ecomp_generated_naming=true}", + "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-b-egress-dst_start_port": "0.0", + "ncb_flavor_name": "nv.c20r64d1", + "gpb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix_len": "0.0", + "Internal2_net_cidr": "10.0.0.10", + "sctp-a-ingress-dst_start_port": "0.0", + "sctp-a-egress-dst_start_port": "0.0", + "fsb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-egress_ethertype": "IPv4", + "vlc_st_service_mode": "in-network-nat", + "sctp-a-ipv6-egress_ethertype": "IPv4", + "sctp-a-egress-src_end_port": "65535.0", + "sctp-b-ipv6-egress_rule_application": "any", + "sctp-b-egress_action": "pass", + "sctp-a-ingress-src_subnet_prefix_len": "0.0", + "sctp-b-ipv6-ingress-src_end_port": "65535.0", + "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group", + "fsb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-a-ipv6-ingress-src_start_port": "0.0", + "sctp-b-ipv6-egress_ethertype": "IPv4", + "Internal1_net_cidr": "10.0.0.10", + "sctp-a-egress_dst_subnet_prefix": "0.0.0.0", + "fsb_flavor_name": "nv.c20r64d1", + "sctp_rule_protocol": "132", + "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_rule_application": "any", + "ecomp_generated_naming": "true", + "sctp-a-IPv6_ethertype": "IPv6", + "vlc2_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_virtualization_type": "virtual-machine", + "sctp-b-ingress-dst_start_port": "0.0", + "sctp-b-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-ingress-src_end_port": "65535.0", + "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-b-ingress_rule_application": "any", + "int2_sec_group_name": "int2-sec-group", + "vlc_flavor_name": "nd.c16r64d1", + "sctp-b-ipv6-egress_src_addresses": "local", + "vlc_st_interface_type_int1": "other1", + "sctp-b-egress-src_end_port": "65535.0", + "sctp-a-ipv6-egress-dst_start_port": "0", + "vlc_st_interface_type_int2": "other2", + "sctp-a-ipv6-egress_rule_protocol": "any", + "Internal2_shared": "false", + "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0", + "Internal2_rpf": "disable", + "vlc1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_end_port": "65535", + "sctp-a-ipv6-egress_src_addresses": "local", + "sctp-a-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-egress_src_end_port": "65535", + "Internal1_forwarding_mode": "l2", + "Internal2_dhcp": "false", + "sctp-a-dst_subnet_prefix_v6": "::", + "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2", + "vlc_st_interface_type_gtp": "other0", + "ncb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-src_subnet_prefix_v6": "::", + "sctp-a-egress_dst_subnet_prefix_len": "0.0", + "int1_sec_group_name": "int1-sec-group", + "Internal1_dhcp": "false", + "sctp-a-ipv6-egress_dst_end_port": "65535", + "Internal2_forwarding_mode": "l2", + "fsb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix": "0.0.0.0", + "Internal1_net_cidr_len": "17", + "gpb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress-src_subnet_prefix_len": "0.0", + "sctp-a-ingress_dst_addresses": "local", + "sctp-a-egress_action": "pass", + "fsb_volume_type_0": "SF-Default-SSD", + "ncb2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_sctp_a": "left", + "vlc_st_interface_type_sctp_b": "right", + "sctp-a-src_subnet_prefix_v6": "::", + "vlc_st_version": "2", + "sctp-b-egress_ethertype": "IPv4", + "sctp-a-ingress_rule_application": "any", + "gpb1_Internal2_mac": "00:11:22:EF:AC:DF", + "instance_ip_family_v6": "v6", + "sctp-a-ipv6-egress_src_start_port": "0", + "sctp-b-ingress-src_start_port": "0.0", + "sctp-b-ingress_dst_addresses": "local", + "fsb1_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_oam": "management", + "multi_stage_design": "false", + "oam_sec_group_name": "oam-sec-group", + "Internal2_net_gateway": "10.0.0.10", + "sctp-a-ipv6-ingress-dst_end_port": "65535", + "sctp-b-ipv6-egress-dst_start_port": "0", + "Internal1_net_gateway": "10.0.0.10", + "sctp-b-ipv6-egress_rule_protocol": "any", + "gtp_sec_group_name": "gtp-sec-group", + "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_dst_addresses": "local", + "sctp-a-egress_rule_protocol": "icmp", + "sctp-b-ipv6-egress_action": "pass", + "sctp-a-ipv6-egress_action": "pass", + "Internal1_shared": "false", + "sctp-b-ipv6-ingress_rule_protocol": "any", + "Internal2_net_cidr_len": "17", + "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-a-ingress-src_end_port": "65535.0", + "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-a-egress-dst_end_port": "65535.0", + "sctp-a-ingress_action": "pass", + "sctp-b-egress_rule_protocol": "icmp", + "sctp-b-ipv6-ingress_action": "pass", + "vlc_st_service_type": "firewall", + "sctp-b-ipv6-egress_dst_end_port": "65535", + "sctp-b-ipv6-ingress-dst_start_port": "0", + "vlc2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_availability_zone": "true", + "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2", + "sctp-b-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0", + "Internal1_allow_transit": "true", + "gpb_flavor_name": "nv.c20r64d1", + "availability_zone_max_count": "1", + "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2", + "sctp-b-ipv6-ingress_dst_addresses": "local", + "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-ingress_ethertype": "IPv4", + "vlc1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_action": "pass", + "Internal1_rpf": "disable", + "sctp-b-ingress_ethertype": "IPv4", + "sctp-b-egress_rule_application": "any", + "sctp-b-ingress-src_end_port": "65535.0", + "sctp-a-ipv6-ingress_rule_protocol": "any", + "sctp-a-ingress-src_start_port": "0.0", + "sctp-b-egress-dst_end_port": "65535.0" + }, + "type": "VF", + "modelCustomizationName": "VF_vMee 0", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": { + "Port Mirroring Configuration By Policy 0": { + "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50", + "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "27.0", + "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 0", + "sourceNodes": [], + "collectorNodes": null, + "configurationByPolicy": false + } + }, + "serviceProxies": {}, + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "pnfs": {} + } + }, + "serviceInstance": { + "f4d84bb4-a416-4b4e-997e-0059973630b9": { + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "rollbackOnFailure": "true", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0jkyqv": { + "isMissingData": true, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "modelVersion": "6", + "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0" + }, + "instanceParams": [ + {} + ], + "trackById": "n2ydptuy9lj" + } + } + }, + "isMissingData": false, + "originalName": "2017-488_ADIOD-vPE 0", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": null, + "tenantId": null, + "lineOfBusiness": null, + "platformName": null, + "modelInfo": { + "modelType": "VF", + "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "9.0", + "modelCustomizationName": "2017-488_ADIOD-vPE 0" + }, + "trackById": "iapflwk8bip" + } + }, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 1, + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "JAG1", + "projectName": "x1", + "owningEntityId": "aaa1", + "rollbackOnFailure": "true", + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "modelName": "ADIOD vMX vPE_BV Service 488", + "modelVersion": "1.0" + }, + "existingVNFCounterMap": { + "41516cc6-5098-4b40-a619-f8d5f55fc4d8": 1 + }, + "existingNetworksCounterMap": {}, + "tenantName": "USP-SIP-IC-24335-T-01", + "aicZoneName": "YUDFJULP-JAG1" + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "JANET25", + "name": "JANET25", + "isPermitted": true + }, + { + "id": "hvf6", + "name": "hvf6", + "isPermitted": true + } + ], + "lcpRegionsTenantsMap": { + "JANET25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true + } + ] + } + }, + "subscribers": [ + { + "id": "CAR_2020_ER", + "name": "CAR_2020_ER", + "isPermitted": true + }, + { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-2", + "name": "DALE BRIDGES", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-1", + "name": "LLOYD BRIDGES", + "isPermitted": false + }, + { + "id": "jimmy-example", + "name": "JimmyExampleCust-20161102", + "isPermitted": false + }, + { + "id": "jimmy-example2", + "name": "JimmyExampleCust-20161103", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-102", + "name": "ERICA5779-TestSub-PWT-102", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-101", + "name": "ERICA5779-TestSub-PWT-101", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-4", + "name": "ERICA5779-Subscriber-5", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-103", + "name": "ERICA5779-TestSub-PWT-103", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-2", + "name": "ERICA5779-Subscriber-2", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + }, + { + "id": "ERICA5779-Subscriber-3", + "name": "ERICA5779-Subscriber-3", + "isPermitted": false + }, + { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "SCOTTIE", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "Cisneros", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "Josefina", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vSCP", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vMMSC", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "BAN1", + "name": "VSDKYUTP-BAN1" + }, + { + "id": "DKJ1", + "name": "DKJSJDKA-DKJ1" + }, + { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, + { + "id": "UIO1", + "name": "uioclli1-UIO1" + }, + { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, + { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, + { + "id": "SDE1", + "name": "ZXCVBNMA-SDE1" + }, + { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, + { + "id": "ORL1", + "name": "ORLDFLMA-ORL1" + }, + { + "id": "JAD1", + "name": "JADECLLI-JAD1" + }, + { + "id": "ZXL1", + "name": "LWLWCANN-ZXL1" + }, + { + "id": "CKL1", + "name": "CLKSKCKK-CKL1" + }, + { + "id": "SDF1", + "name": "sdfclli1-SDF1" + }, + { + "id": "RAD1", + "name": "RADICAL1-RAD1" + }, + { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, + { + "id": "REL1", + "name": "INGERFGT-REL1" + }, + { + "id": "JNL1", + "name": "CJALSDAC-JNL1" + }, + { + "id": "OLK1", + "name": "OLKOLKLS-OLK1" + }, + { + "id": "CHI1", + "name": "CHILLIWE-CHI1" + }, + { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, + { + "id": "TUF1", + "name": "TUFCLLI1-TUF1" + }, + { + "id": "KJN1", + "name": "CKALDKSA-KJN1" + }, + { + "id": "SAM1", + "name": "SNDGCA64-SAN1" + }, + { + "id": "SCK1", + "name": "SCKSCKSK-SCK1" + }, + { + "id": "HJH1", + "name": "AOEEQQQD-HJH1" + }, + { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, + { + "id": "KOR1", + "name": "HYFLNBVT-KOR1" + }, + { + "id": "ATL43", + "name": "AICLOCID-ATL43" + }, + { + "id": "ATL54", + "name": "AICFTAAI-ATL54" + }, + { + "id": "ATL66", + "name": "CLLIAAII-ATL66" + }, + { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, + { + "id": "ICC1", + "name": "SANJITAT-ICC1" + }, + { + "id": "MNT11", + "name": "WSXEFBTH-MNT11" + }, + { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, + { + "id": "MAD11", + "name": "SDFQWGKL-MAD11" + }, + { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, + { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, + { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, + { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, + { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, + { + "id": "DHA12", + "name": "WSXEDECF-DHA12" + }, + { + "id": "HJE1", + "name": "AOEEWWWD-HJE1" + }, + { + "id": "NCA1", + "name": "NCANCANN-NCA1" + }, + { + "id": "IOP1", + "name": "iopclli1-IOP1" + }, + { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, + { + "id": "KAP1", + "name": "HIOUYTRQ-KAP1" + }, + { + "id": "ZEN1", + "name": "ZENCLLI1-ZEN1" + }, + { + "id": "HKA1", + "name": "JAKHLASS-HKA1" + }, + { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, + { + "id": "SAI1", + "name": "UBEKQLPD-SAI1" + }, + { + "id": "ERT1", + "name": "ertclli1-ERT1" + }, + { + "id": "IBB1", + "name": "PLMKOIJU-IBB1" + }, + { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, + { + "id": "HSD1", + "name": "CHASKCDS-HSD1" + }, + { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, + { + "id": "SEE78", + "name": "SDCTEEE4-SEE78" + }, + { + "id": "SAN13", + "name": "TOKYJPFA-SAN13" + }, + { + "id": "SAA78", + "name": "SDCTAAA1-SAA78" + }, + { + "id": "LUC1", + "name": "ATLDFGYC-LUC1" + }, + { + "id": "AMD13", + "name": "MEMATLAN-AMD13" + }, + { + "id": "TOR1", + "name": "TOROONXN-TOR1" + }, + { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, + { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, + { + "id": "CAL33", + "name": "CALIFORN-CAL33" + }, + { + "id": "SHH78", + "name": "SDIT1HHH-SHH78" + }, + { + "id": "DSA1", + "name": "LKJHGFDS-DSA1" + }, + { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, + { + "id": "BNA1", + "name": "BNARAGBK-BNA1" + }, + { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, + { + "id": "APP1", + "name": "WBHGTYUI-APP1" + }, + { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, + { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, + { + "id": "mac10", + "name": "PKGTESTF-mac10" + }, + { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, + { + "id": "SAX78", + "name": "SDCTAXG1-SAX78" + }, + { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, + { + "id": "TOK1", + "name": "TOKYJPFA-TOK1" + }, + { + "id": "KGM2", + "name": "KGMTNC20-KGM2" + }, + { + "id": "DCC1b", + "name": "POIUYTGH-DCC1b" + }, + { + "id": "SKK78", + "name": "SDCTKKK1-SKK78" + }, + { + "id": "SGG78", + "name": "SDCTGGG1-SGG78" + }, + { + "id": "SJJ78", + "name": "SDCTJJJ1-SJJ78" + }, + { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, + { + "id": "LAG1", + "name": "LARGIZON-LAG1" + }, + { + "id": "IAA1", + "name": "QAZXSWED-IAA1" + }, + { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, + { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, + { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, + { + "id": "LAG45", + "name": "LARGIZON-LAG1a" + }, + { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, + { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, + { + "id": "DCC1a", + "name": "POIUYTGH-DCC1a" + }, + { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, + { + "id": "LON1", + "name": "LONEENCO-LON1" + }, + { + "id": "SJU78", + "name": "SDIT1JUB-SJU78" + }, + { + "id": "STN27", + "name": "HSTNTX01-STN27" + }, + { + "id": "SSW56", + "name": "ss8126GT-SSW56" + }, + { + "id": "SBB78", + "name": "SDIT1BBB-SBB78" + }, + { + "id": "DCC3", + "name": "POIUYTGH-DCC3" + }, + { + "id": "GNV1", + "name": "GNVLSCTL-GNV1" + }, + { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, + { + "id": "TOY1", + "name": "TORYONNZ-TOY1" + }, + { + "id": "STT1", + "name": "STTLWA02-STT1" + }, + { + "id": "STG1", + "name": "STTGGE62-STG1" + }, + { + "id": "SLL78", + "name": "SDCTLLL1-SLL78" + }, + { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, + { + "id": "ATL2", + "name": "ATLNGANW-ATL2" + }, + { + "id": "BOT1", + "name": "BOTHWAKY-BOT1" + }, + { + "id": "SNG1", + "name": "SNGPSIAU-SNG1" + }, + { + "id": "NYC1", + "name": "NYCMNY54-NYC1" + }, + { + "id": "LAG1b", + "name": "LARGIZON-LAG1b" + }, + { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, + { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, + { + "id": "PLT1", + "name": "PLTNCA60-PLT1" + }, + { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, + { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, + { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, + { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, + { + "id": "OKC1", + "name": "OKCBOK55-OKC1" + }, + { + "id": "PAR1", + "name": "PARSFRCG-PAR1" + }, + { + "id": "TES36", + "name": "ABCEETES-TES36" + }, + { + "id": "COM1", + "name": "PLMKOPIU-COM1" + }, + { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, + { + "id": "SDG78", + "name": "SDIT1BDG-SDG78" + }, + { + "id": "mac20", + "name": "PKGTESTF-mac20" + }, + { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, + { + "id": "HST25", + "name": "HSTNTX01-HST25" + }, + { + "id": "AMD18", + "name": "AUDIMA01-AMD18" + }, + { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, + { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, + { + "id": "SDD82", + "name": "SAIT1DD9-SDD82" + }, + { + "id": "JCV1", + "name": "JCVLFLBW-JCV1" + }, + { + "id": "SUL2", + "name": "WERTYUJK-SUL2" + }, + { + "id": "PUR1", + "name": "purelyde-PUR1" + }, + { + "id": "FDE55", + "name": "FDERT555-FDE55" + }, + { + "id": "SITE", + "name": "LONEENCO-SITE" + }, + { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, + { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, + { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, + { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, + { + "id": "RAI1", + "name": "poiuytre-RAI1" + }, + { + "id": "HPO1", + "name": "ATLNGAUP-HPO1" + }, + { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, + { + "id": "SCC80", + "name": "SAIT9CC3-SCC80" + }, + { + "id": "SAA12", + "name": "SAIT9AF8-SAA12" + }, + { + "id": "SAA14", + "name": "SAIT1AA9-SAA14" + }, + { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, + { + "id": "CWY1", + "name": "CWYMOWBS-CWY1" + }, + { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, + { + "id": "DSL12", + "name": "DSLFK242-DSL12" + }, + { + "id": "ATL53", + "name": "AAIATLTE-ATL53" + }, + { + "id": "SAA11", + "name": "SAIT9AA2-SAA11" + }, + { + "id": "ATL62", + "name": "TESSASCH-ATL62" + }, + { + "id": "AUG1", + "name": "ASDFGHJK-AUG1" + }, + { + "id": "POI22", + "name": "POIUY123-POI22" + }, + { + "id": "SAA13", + "name": "SAIT1AA9-SAA13" + }, + { + "id": "BHY17", + "name": "BHYTFRF3-BHY17" + }, + { + "id": "LIS1", + "name": "HOSTPROF-LIS1" + }, + { + "id": "SIP1", + "name": "ZXCVBNMK-SIP1" + }, + { + "id": "ATL99", + "name": "TEESTAAI-ATL43" + }, + { + "id": "ATL64", + "name": "FORLOAAJ-ATL64" + }, + { + "id": "TAT33", + "name": "TESAAISA-TAT33" + }, + { + "id": "RAD10", + "name": "INDIPUNE-RAD10" + }, + { + "id": "RTW5", + "name": "BHYTFRY4-RTW5" + }, + { + "id": "JGS1", + "name": "KSJKKKKK-JGS1" + }, + { + "id": "ATL98", + "name": "TEESTAAI-ATL43" + }, + { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, + { + "id": "ATL44", + "name": "ATLSANAB-ATL44" + }, + { + "id": "RTD2", + "name": "BHYTFRk4-RTD2" + }, + { + "id": "NIR1", + "name": "ORFLMANA-NIR1" + }, + { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, + { + "id": "NUM1", + "name": "QWERTYUI-NUM1" + }, + { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, + { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, + { + "id": "ATL56", + "name": "ATLSANAC-ATL56" + }, + { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, + { + "id": "RCT1", + "name": "AMSTERNL-RCT1" + }, + { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, + { + "id": "ABC14", + "name": "TESAAISA-ABC14" + }, + { + "id": "TAT37", + "name": "TESAAISD-TAT37" + }, + { + "id": "MIC54", + "name": "MICHIGAN-MIC54" + }, + { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, + { + "id": "AMF11", + "name": "AMDOCS01-AMF11" + }, + { + "id": "ATL63", + "name": "ATLSANEW-ATL63" + }, + { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, + { + "id": "MTN20", + "name": "MDTWNJ21-MTN20" + }, + { + "id": "ABC15", + "name": "AAITESAN-ABC15" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "[LCP_REGIONS_AND_TENANTS] Update" + } + } + } + + function getReduxWith2Networks() { + return { + "global": { + "name": null, + "type": "UPDATE_DRAWING_BOARD_STATUS", + "flags": { + "CREATE_INSTANCE_TEST": false, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_ASYNC_INSTANTIATION": true, + "FLAG_ASYNC_JOBS": true, + "FLAG_ADD_MSO_TESTAPI_FIELD": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "FLAG_COLLECTION_RESOURCE_SUPPORT": false, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_DEFAULT_VNF": true, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true, + "FLAG_A_LA_CARTE_AUDIT_INFO": true, + "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true, + "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true, + "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": false, + "FLAG_1902_NEW_VIEW_EDIT": false, + "FLAG_1810_IDENTIFY_SERVICE_FOR_NEW_UI": false, + "FLAG_1902_VNF_GROUPING": false, + "FLAG_SHOW_VERIFY_SERVICE": false, + "FLAG_ASYNC_ALACARTE_VFMODULE": true, + "FLAG_ASYNC_ALACARTE_VNF": true, + "FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF": true, + "FLAG_1810_AAI_LOCAL_CACHE": true, + "FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false, + "FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": false, + "FLAG_SUPPLEMENTARY_FILE": true, + "FLAG_5G_IN_NEW_INSTANTIATION_UI": true, + "FLAG_RESTRICTED_SELECT": false, + "FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY": true + }, + "drawingBoardStatus": "CREATE" + }, + "service": { + "serviceHierarchy": { + "2ab1da67-39cc-425f-ba52-59a64d0ea04a": { + "service": { + "uuid": "2ab1da67-39cc-425f-ba52-59a64d0ea04a", + "invariantUuid": "712b3447-f096-42f6-ae4c-4bdc8988feb6", + "name": "sgi_direct_net NC SRIOV network", + "version": "1.0", + "toscaModelURL": null, + "category": "Network Service", + "serviceType": "INFRASTRUCTURE", + "serviceRole": "PROVIDER-NETWORK", + "description": "SRIOV network model for NC 1.0, VLAN ID 103", + "serviceEcompNaming": "false", + "instantiationType": "A-La-Carte", + "inputs": {}, + "vidNotions": { + "instantiationUI": "networkWithPropertyNetworkTechnologyEqualsStandardSriovOrOvs", + "modelCategory": "5G Provider Network", + "viewEditUI": "legacy" + } + }, + "vnfs": {}, + "networks": { + "SR-IOV Provider 2-1": { + "uuid": "01f4c475-3f89-4f00-a2f4-39a873dba0ae", + "invariantUuid": "ffb9e45c-e674-4289-aad3-00040ad746e4", + "description": "NETWORK_CLOUD_PROVIDER_NETWORK", + "name": "NETWORK_CLOUD_PROVIDER_NETWORK", + "version": "1.0", + "customizationUuid": "42551d11-b8d1-460d-8795-3e1363ad7736", + "inputs": {}, + "commands": {}, + "properties": { + "network_role": "sgi_direct_net_1", + "network_assignments": "{is_external_network=false, is_shared_network=true, is_trunked=false, ipv4_subnet_default_assignment={dhcp_enabled=false, ip_version=4, min_subnets_count=1, use_ipv4=true}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={dhcp_enabled=false, use_ipv6=true, ip_version=6, min_subnets_count=1}, related_networks=[{related_network_role=sgi_direct_net_1_tenant}]}", + "exVL_naming": "{ecomp_generated_naming=false}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_scope": "GLOBAL", + "ecomp_generated_naming": "false", + "network_type": "SR-IOV-PROVIDER2-1", + "provider_network": "{physical_network_name=sriovnet1, is_provider_network=true}", + "network_technology": "STANDARD-SR-IOV", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "SR-IOV Provider 2-1" + }, + "SR-IOV Provider 2-2": { + "uuid": "01f4c475-3f89-4f00-a2f4-39a873dba0ae", + "invariantUuid": "ffb9e45c-e674-4289-aad3-00040ad746e4", + "description": "NETWORK_CLOUD_PROVIDER_NETWORK", + "name": "NETWORK_CLOUD_PROVIDER_NETWORK", + "version": "1.0", + "customizationUuid": "14d2dc2b-4e85-4ef5-b4da-fe996e2a5d33", + "inputs": {}, + "commands": {}, + "properties": { + "network_role": "sgi_direct_net_2", + "network_assignments": "{is_external_network=false, is_shared_network=true, is_trunked=false, ipv4_subnet_default_assignment={dhcp_enabled=false, ip_version=4, min_subnets_count=1, use_ipv4=true}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={dhcp_enabled=false, use_ipv6=true, ip_version=6, min_subnets_count=1}, related_networks=[{related_network_role=sgi_direct_net_2_tenant}]}", + "exVL_naming": "{ecomp_generated_naming=false}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_scope": "GLOBAL", + "ecomp_generated_naming": "false", + "network_type": "SR-IOV-PROVIDER2-2", + "provider_network": "{physical_network_name=sriovnet2, is_provider_network=true}", + "network_technology": "STANDARD-SR-IOV", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "SR-IOV Provider 2-2" + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {}, + "vnfGroups": {} + } + }, + "serviceInstance": { + "2ab1da67-39cc-425f-ba52-59a64d0ea04a": { + "action": "Create", + "isDirty": false, + "vnfs": {}, + "instanceParams": [ + {} + ], + "validationCounter": 0, + "existingNames": { + "myname": "" + }, + "existingVNFCounterMap": {}, + "existingVnfGroupCounterMap": {}, + "existingNetworksCounterMap": { + "01f4c475-3f89-4f00-a2f4-39a873dba0ae": 1 + }, + "optionalGroupMembersMap": {}, + "networks": { + "SR-IOV Provider 2-2": { + "action": "Create", + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "SR-IOV Provider 2-2", + "isMissingData": false, + "trackById": "83ad9rv48px", + "networkStoreKey": "SR-IOV Provider 2-2", + "instanceName": "NETWORK_CLOUD_PROVIDER_NETWORK", + "productFamilyId": null, + "lcpCloudRegionId": "olson5b", + "tenantId": "db1818f7f2e34862b378bfb2cc520f91", + "platformName": "APPLICATIONS-SERVICES", + "lineOfBusiness": null, + "instanceParams": [ + {} + ], + "modelInfo": { + "modelInvariantId": "ffb9e45c-e674-4289-aad3-00040ad746e4", + "modelVersionId": "01f4c475-3f89-4f00-a2f4-39a873dba0ae", + "modelName": "NETWORK_CLOUD_PROVIDER_NETWORK", + "modelVersion": "1.0", + "modelCustomizationId": "14d2dc2b-4e85-4ef5-b4da-fe996e2a5d33", + "modelCustomizationName": "SR-IOV Provider 2-2", + "uuid": "01f4c475-3f89-4f00-a2f4-39a873dba0ae" + }, + "uuid": "01f4c475-3f89-4f00-a2f4-39a873dba0ae" + } + }, + "vnfGroups": {}, + "bulkSize": 1, + "instanceName": "myname", + "globalSubscriberId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "subscriptionServiceType": "LINDSEY", + "owningEntityId": "2d097967-10d4-4c7f-b23c-89978249ae17", + "projectName": null, + "rollbackOnFailure": "true", + "aicZoneName": null, + "owningEntityName": "FIREWALL-MISCELLANEOUS", + "testApi": "VNF_API", + "tenantName": null, + "modelInfo": { + "modelInvariantId": "712b3447-f096-42f6-ae4c-4bdc8988feb6", + "modelVersionId": "2ab1da67-39cc-425f-ba52-59a64d0ea04a", + "modelName": "sgi_direct_net NC SRIOV network", + "modelVersion": "1.0", + "uuid": "2ab1da67-39cc-425f-ba52-59a64d0ea04a" + }, + "isALaCarte": true, + "name": "sgi_direct_net NC SRIOV network", + "version": "1.0", + "description": "SRIOV network model for NC 1.0, VLAN ID 103", + "category": "Network Service", + "uuid": "2ab1da67-39cc-425f-ba52-59a64d0ea04a", + "invariantUuid": "712b3447-f096-42f6-ae4c-4bdc8988feb6", + "serviceType": "INFRASTRUCTURE", + "serviceRole": "PROVIDER-NETWORK", + "vidNotions": { + "instantiationUI": "networkWithPropertyNetworkTechnologyEqualsStandardSriovOrOvs", + "modelCategory": "5G Provider Network", + "viewEditUI": "legacy" + }, + "isEcompGeneratedNaming": false, + "isMultiStepDesign": false + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "olson5a", + "name": "olson5a (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "olson5b", + "name": "olson5b (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "olson6a", + "name": "olson6a (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "lcpRegionsTenantsMap": { + "olson5a": [ + { + "id": "51e7dc5db9bb4c7b94766aacb8a3e72f", + "name": "Mobitools-FN-27099-T-01", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "d5b3c05cffa645dd9951bf2dd9ef5416", + "name": "Mobisupport-FN-27099-T-01", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "olson5b": [ + { + "id": "db1818f7f2e34862b378bfb2cc520f91", + "name": "Mobisupport-FN-27099-T-02", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "olson6a": [ + { + "id": "1dcd712850414fbd91f8a9fc9cca7fd4", + "name": "FNvEPC-27099-T-MS-RDM6A", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "26af9ed85a004932822a607d5e9973d5", + "name": "ssf-28239-T-RDM6A", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ] + } + }, + "subscribers": [ + { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": false + }, + { + "id": "VidE2ETest", + "name": "VidTest20161020", + "isPermitted": false + } + ], + "productFamilies": null, + "serviceTypes": { + "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb": [ + { + "id": "22", + "name": "JOHANNA_SANTOS", + "isPermitted": true + }, + { + "id": "11", + "name": "RAMSEY", + "isPermitted": false + }, + { + "id": "3", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "6", + "name": "INFRASTRUCTURE", + "isPermitted": false + }, + { + "id": "4", + "name": "BROOKE-RODRIQUEZ", + "isPermitted": false + }, + { + "id": "0", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "15", + "name": "Kennedy", + "isPermitted": true + }, + { + "id": "21", + "name": "SSD", + "isPermitted": true + }, + { + "id": "18", + "name": "VPMS", + "isPermitted": true + }, + { + "id": "1", + "name": "vJamie", + "isPermitted": true + }, + { + "id": "27", + "name": "vEPDG", + "isPermitted": false + }, + { + "id": "23", + "name": "vRichardson", + "isPermitted": true + }, + { + "id": "7", + "name": "vGDF", + "isPermitted": false + }, + { + "id": "2", + "name": "vCarroll", + "isPermitted": true + }, + { + "id": "17", + "name": "vMGCF", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": true + }, + { + "id": "25", + "name": "vMMSC", + "isPermitted": true + }, + { + "id": "8", + "name": "vMNS", + "isPermitted": true + }, + { + "id": "14", + "name": "vMOG", + "isPermitted": true + }, + { + "id": "10", + "name": "vOTA", + "isPermitted": true + }, + { + "id": "16", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "24", + "name": "vSEGW", + "isPermitted": true + }, + { + "id": "12", + "name": "vSILB", + "isPermitted": false + }, + { + "id": "19", + "name": "vSON", + "isPermitted": false + }, + { + "id": "13", + "name": "vSSF", + "isPermitted": false + }, + { + "id": "26", + "name": "vUDR", + "isPermitted": false + }, + { + "id": "20", + "name": "vVM", + "isPermitted": true + }, + { + "id": "5", + "name": "vVoiceMail", + "isPermitted": true + } + ] + }, + "aicZones": null, + "categoryParameters": { + "owningEntityList": [ + { + "id": "1ae27f5e-c0b3-4daf-8561-b25fc1c716e4", + "name": "AIC-ECOMP" + }, + { + "id": "2e51ed6c-1fac-43d4-8f84-9ec405eb7f35", + "name": "ENTERTAINMENT-VIDEO" + }, + { + "id": "2d097967-10d4-4c7f-b23c-89978249ae17", + "name": "FIREWALL-MISCELLANEOUS" + }, + { + "id": "aedf37e2-acda-4976-b89b-fd6d4ddffbc6", + "name": "IP-COMMUNICATIONS" + }, + { + "id": "9463675f-6a75-4cc8-8054-c6cb2e67ad51", + "name": "METRO-PACKET-CORE" + }, + { + "id": "92ddf9af-acae-484c-a786-ad7e9c0da26f", + "name": "MOBILITY-ACCESS" + }, + { + "id": "10c645f5-9924-4b89-bec0-b17cf49d3cad", + "name": "MOBILITY-CORE" + }, + { + "id": "048eb6e7-fa94-4f3b-ae03-3175a750dc57", + "name": "OPTICAL-TRANSPORT" + }, + { + "id": "0efc70be-d674-4777-a0fa-329eae187ca0", + "name": "PACKET-CORE" + }, + { + "id": "0463287b-b133-46ef-a0f5-9ce62be3a053", + "name": "PREMISES" + }, + { + "id": "ae4505ad-2961-4395-8659-df2253af4fa8", + "name": "WIRELINE-ACCESS" + } + ], + "projectList": [ + { + "id": "G.FAST", + "name": "G.FAST" + }, + { + "id": "GigaPower", + "name": "GigaPower" + }, + { + "id": "Kennedy", + "name": "Kennedy" + }, + { + "id": "Trinity", + "name": "Trinity" + }, + { + "id": "USP", + "name": "USP" + } + ], + "lineOfBusinessList": [ + { + "id": "", + "name": "" + }, + { + "id": "ADI", + "name": "ADI" + }, + { + "id": "ADIG", + "name": "ADIG" + }, + { + "id": "ADIOD", + "name": "ADIOD" + }, + { + "id": "AT&TLEGACYDATASERVICES", + "name": "AT&TLEGACYDATASERVICES" + }, + { + "id": "AT&TSWITCHEDETHERNET", + "name": "AT&TSWITCHEDETHERNET" + }, + { + "id": "AVPN", + "name": "AVPN" + }, + { + "id": "AVPN-MOW", + "name": "AVPN-MOW" + }, + { + "id": "CALEA", + "name": "CALEA" + }, + { + "id": "COLLABORATE", + "name": "COLLABORATE" + }, + { + "id": "DIRECT-TV", + "name": "DIRECT-TV" + }, + { + "id": "LINDSEY", + "name": "LINDSEY" + }, + { + "id": "FLEXWARE", + "name": "FLEXWARE" + }, + { + "id": "INFRASTRUCTURE", + "name": "INFRASTRUCTURE" + }, + { + "id": "IOT", + "name": "IOT" + }, + { + "id": "IP-FLEXIBLE-REACH", + "name": "IP-FLEXIBLE-REACH" + }, + { + "id": "IP-TOLL-FREE", + "name": "IP-TOLL-FREE" + }, + { + "id": "MOBILITY-ABS", + "name": "MOBILITY-ABS" + }, + { + "id": "MOBILITY-CONSUMER", + "name": "MOBILITY-CONSUMER" + }, + { + "id": "MOBILITY-RESELLER", + "name": "MOBILITY-RESELLER" + }, + { + "id": "NETBOND", + "name": "NETBOND" + }, + { + "id": "SD-WAN", + "name": "SD-WAN" + }, + { + "id": "UVERSE", + "name": "UVERSE" + }, + { + "id": "UVERSE-VOICE", + "name": "UVERSE-VOICE" + }, + { + "id": "VIRTUAL-EDGE", + "name": "VIRTUAL-EDGE" + }, + { + "id": "VOLTE", + "name": "VOLTE" + } + ], + "platformList": [ + { + "id": "3rdPartyCloud", + "name": "3rdPartyCloud" + }, + { + "id": "ACCESS", + "name": "ACCESS" + }, + { + "id": "AIC", + "name": "AIC" + }, + { + "id": "APPLICATIONS-SERVICES", + "name": "APPLICATIONS-SERVICES" + }, + { + "id": "BVOIP", + "name": "BVOIP" + }, + { + "id": "CALEA-DEDICATED", + "name": "CALEA-DEDICATED" + }, + { + "id": "CBB-MPLS-CORE", + "name": "CBB-MPLS-CORE" + }, + { + "id": "D1", + "name": "D1" + }, + { + "id": "D1.5", + "name": "D1.5" + }, + { + "id": "EPC", + "name": "EPC" + }, + { + "id": "FIRSTNET-DEDICATED", + "name": "FIRSTNET-DEDICATED" + }, + { + "id": "IMS-USP", + "name": "IMS-USP" + }, + { + "id": "IPAG", + "name": "IPAG" + }, + { + "id": "MNS", + "name": "MNS" + }, + { + "id": "NETWORK-CLOUD", + "name": "NETWORK-CLOUD" + }, + { + "id": "RADIO-WIRELESSENGINEERING", + "name": "RADIO-WIRELESSENGINEERING" + }, + { + "id": "RAN", + "name": "RAN" + }, + { + "id": "UCPE", + "name": "UCPE" + }, + { + "id": "VNI", + "name": "VNI" + } + ] + }, + "type": "UPDATE_LCP_REGIONS_AND_TENANTS" + } + } + } + + function getReduxWithVNFS(isEcompGeneratedNaming: boolean) { + return { + "global": { + "name": null, + "flags": { + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SHOW_VERIFY_SERVICE": false, + "FLAG_COLLECTION_RESOURCE_SUPPORT": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "CREATE_INSTANCE_TEST": false, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false, + "FLAG_ASYNC_INSTANTIATION": true, + "FLAG_ASYNC_JOBS": true, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_ADD_MSO_TESTAPI_FIELD": true, + "FLAG_SUPPLEMENTARY_FILE": true + }, + "type": "[FLAGS] Update" + }, + "service": { + "serviceHierarchy": { + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "service": { + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "ComplexService", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "ComplexService", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "VF_vMee 0": { + "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60", + "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e", + "description": "VSP_vMee", + "name": "VF_vMee", + "version": "2.0", + "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9", + "inputs": {}, + "commands": {}, + "properties": { + "max_instances": 10, + "min_instances": 1, + "gpb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_start_port": "0", + "sctp-a-ipv6-egress_rule_application": "any", + "Internal2_allow_transit": "true", + "sctp-b-IPv6_ethertype": "IPv6", + "sctp-a-egress_rule_application": "any", + "sctp-b-ingress_action": "pass", + "sctp-b-ingress_rule_protocol": "icmp", + "ncb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-ingress-src_start_port": "0.0", + "ncb1_Internal2_mac": "00:11:22:EF:AC:DF", + "fsb_volume_size_0": "320.0", + "sctp-b-egress_src_addresses": "local", + "sctp-a-ipv6-ingress_ethertype": "IPv4", + "sctp-a-ipv6-ingress-dst_start_port": "0", + "sctp-b-ipv6-ingress_rule_application": "any", + "domain_name": "default-domain", + "sctp-a-ingress_rule_protocol": "icmp", + "sctp-b-egress-src_start_port": "0.0", + "sctp-a-egress_src_addresses": "local", + "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group", + "sctp-a-egress-src_start_port": "0.0", + "sctp-a-ingress_ethertype": "IPv4", + "sctp-b-ipv6-ingress-dst_end_port": "65535", + "sctp-b-dst_subnet_prefix_v6": "::", + "nf_naming": "{ecomp_generated_naming=true}", + "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-b-egress-dst_start_port": "0.0", + "ncb_flavor_name": "nv.c20r64d1", + "gpb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix_len": "0.0", + "Internal2_net_cidr": "10.0.0.10", + "sctp-a-ingress-dst_start_port": "0.0", + "sctp-a-egress-dst_start_port": "0.0", + "fsb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-egress_ethertype": "IPv4", + "vlc_st_service_mode": "in-network-nat", + "sctp-a-ipv6-egress_ethertype": "IPv4", + "sctp-a-egress-src_end_port": "65535.0", + "sctp-b-ipv6-egress_rule_application": "any", + "sctp-b-egress_action": "pass", + "sctp-a-ingress-src_subnet_prefix_len": "0.0", + "sctp-b-ipv6-ingress-src_end_port": "65535.0", + "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group", + "fsb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-a-ipv6-ingress-src_start_port": "0.0", + "sctp-b-ipv6-egress_ethertype": "IPv4", + "Internal1_net_cidr": "10.0.0.10", + "sctp-a-egress_dst_subnet_prefix": "0.0.0.0", + "fsb_flavor_name": "nv.c20r64d1", + "sctp_rule_protocol": "132", + "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_rule_application": "any", + "ecomp_generated_naming": isEcompGeneratedNaming.toString(), + "sctp-a-IPv6_ethertype": "IPv6", + "vlc2_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_virtualization_type": "virtual-machine", + "sctp-b-ingress-dst_start_port": "0.0", + "sctp-b-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-ingress-src_end_port": "65535.0", + "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-b-ingress_rule_application": "any", + "int2_sec_group_name": "int2-sec-group", + "vlc_flavor_name": "nd.c16r64d1", + "sctp-b-ipv6-egress_src_addresses": "local", + "vlc_st_interface_type_int1": "other1", + "sctp-b-egress-src_end_port": "65535.0", + "sctp-a-ipv6-egress-dst_start_port": "0", + "vlc_st_interface_type_int2": "other2", + "sctp-a-ipv6-egress_rule_protocol": "any", + "Internal2_shared": "false", + "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0", + "Internal2_rpf": "disable", + "vlc1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_end_port": "65535", + "sctp-a-ipv6-egress_src_addresses": "local", + "sctp-a-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-egress_src_end_port": "65535", + "Internal1_forwarding_mode": "l2", + "Internal2_dhcp": "false", + "sctp-a-dst_subnet_prefix_v6": "::", + "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2", + "vlc_st_interface_type_gtp": "other0", + "ncb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-src_subnet_prefix_v6": "::", + "sctp-a-egress_dst_subnet_prefix_len": "0.0", + "int1_sec_group_name": "int1-sec-group", + "Internal1_dhcp": "false", + "sctp-a-ipv6-egress_dst_end_port": "65535", + "Internal2_forwarding_mode": "l2", + "fsb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix": "0.0.0.0", + "Internal1_net_cidr_len": "17", + "gpb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress-src_subnet_prefix_len": "0.0", + "sctp-a-ingress_dst_addresses": "local", + "sctp-a-egress_action": "pass", + "fsb_volume_type_0": "SF-Default-SSD", + "ncb2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_sctp_a": "left", + "vlc_st_interface_type_sctp_b": "right", + "sctp-a-src_subnet_prefix_v6": "::", + "vlc_st_version": "2", + "sctp-b-egress_ethertype": "IPv4", + "sctp-a-ingress_rule_application": "any", + "gpb1_Internal2_mac": "00:11:22:EF:AC:DF", + "instance_ip_family_v6": "v6", + "sctp-a-ipv6-egress_src_start_port": "0", + "sctp-b-ingress-src_start_port": "0.0", + "sctp-b-ingress_dst_addresses": "local", + "fsb1_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_oam": "management", + "multi_stage_design": "false", + "oam_sec_group_name": "oam-sec-group", + "Internal2_net_gateway": "10.0.0.10", + "sctp-a-ipv6-ingress-dst_end_port": "65535", + "sctp-b-ipv6-egress-dst_start_port": "0", + "Internal1_net_gateway": "10.0.0.10", + "sctp-b-ipv6-egress_rule_protocol": "any", + "gtp_sec_group_name": "gtp-sec-group", + "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_dst_addresses": "local", + "sctp-a-egress_rule_protocol": "icmp", + "sctp-b-ipv6-egress_action": "pass", + "sctp-a-ipv6-egress_action": "pass", + "Internal1_shared": "false", + "sctp-b-ipv6-ingress_rule_protocol": "any", + "Internal2_net_cidr_len": "17", + "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-a-ingress-src_end_port": "65535.0", + "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-a-egress-dst_end_port": "65535.0", + "sctp-a-ingress_action": "pass", + "sctp-b-egress_rule_protocol": "icmp", + "sctp-b-ipv6-ingress_action": "pass", + "vlc_st_service_type": "firewall", + "sctp-b-ipv6-egress_dst_end_port": "65535", + "sctp-b-ipv6-ingress-dst_start_port": "0", + "vlc2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_availability_zone": "true", + "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2", + "sctp-b-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0", + "Internal1_allow_transit": "true", + "gpb_flavor_name": "nv.c20r64d1", + "availability_zone_max_count": "1", + "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2", + "sctp-b-ipv6-ingress_dst_addresses": "local", + "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-ingress_ethertype": "IPv4", + "vlc1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_action": "pass", + "Internal1_rpf": "disable", + "sctp-b-ingress_ethertype": "IPv4", + "sctp-b-egress_rule_application": "any", + "sctp-b-ingress-src_end_port": "65535.0", + "sctp-a-ipv6-ingress_rule_protocol": "any", + "sctp-a-ingress-src_start_port": "0.0", + "sctp-b-egress-dst_end_port": "65535.0" + }, + "type": "VF", + "modelCustomizationName": "VF_vMee 0", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "ecomp_generated_naming": "false", + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": { + "Port Mirroring Configuration By Policy 0": { + "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50", + "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "27.0", + "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 0", + "sourceNodes": [], + "collectorNodes": null, + "configurationByPolicy": false + } + }, + "serviceProxies": {}, + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "pnfs": {} + } + }, + "serviceInstance": { + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "vnfs": { + "VF_vMee 0": { + "originalName": "VF_vMee 0", + "rollbackOnFailure": "true", + "instanceName": "", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "vf_vmee0..VfVmee..vmme_vlc..module-1dcudx": { + "modelInfo": { + "modelInvariantId": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "modelVersionId": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "modelName": "VfVmee..vmme_vlc..module-1", + "modelVersion": "2", + "modelCustomizationId": "55b1be94-671a-403e-a26c-667e9c47d091", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1" + }, + "isMissingData": false, + "supplementaryFile": "C:\\fakepath\\sample.json", + "supplementaryFile_hidden": {}, + "supplementaryFile_hidden_content": "{\r\n \"name\": \"a\",\r\n \"value\": \"32\"\r\n}", + "supplementaryFileContent": { + "name": "a", + "value": "32" + }, + "supplementaryFileName": "sample.json", + "instanceParams": [ + {} + ] + } + } + }, + "isMissingData": false, + "modelName": "VF_vMee 0", + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "lcpCloudRegionId": "hvf6", + "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", + "lineOfBusiness": "zzz1", + "platformName": "platform", + "modelInfo": { + "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e", + "modelVersionId": "d6557200-ecf2-4641-8094-5393ae3aae60", + "modelName": "VF_vMee", + "modelVersion": "2.0", + "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9", + "modelCustomizationName": "VF_vMee 0" + }, + "legacyRegion": null + } + }, + "networks": {}, + "instanceParams": [ + {} + ], + "validationCounter": 0, + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "hvf6", + "tenantId": "1178612d2b394be4834ad77f567c0af2", + "aicZoneId": "YYY1", + "projectName": "yyy1", + "owningEntityId": "aaa1", + "owningEntityName": "aaa1", + "rollbackOnFailure": "true", + "isALaCarte": false, + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "modelName": "ComplexService", + "modelVersion": "1.0" + }, + "instanceName": "", + "existingNames": { + "serviceinstancename": "", + "vfvmee00001": "" + }, + "existingVNFCounterMap": { + "91415b44-753d-494c-926a-456a9172bbb9": 1 + }, + "existingNetworksCounterMap": {}, + "tenantName": "AIN Web Tool-15-D-SSPtestcustome", + "aicZoneName": "UUUAIAAI-YYY1" + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "JANET25", + "name": "JANET25", + "isPermitted": true + }, + { + "id": "hvf6", + "name": "hvf6", + "isPermitted": true + } + ], + "lcpRegionsTenantsMap": { + "JANET25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true + } + ] + } + }, + "subscribers": [ + { + "id": "CAR_2020_ER", + "name": "CAR_2020_ER", + "isPermitted": true + }, + { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-2", + "name": "DALE BRIDGES", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-1", + "name": "LLOYD BRIDGES", + "isPermitted": false + }, + { + "id": "jimmy-example", + "name": "JimmyExampleCust-20161102", + "isPermitted": false + }, + { + "id": "jimmy-example2", + "name": "JimmyExampleCust-20161103", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-102", + "name": "ERICA5779-TestSub-PWT-102", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-101", + "name": "ERICA5779-TestSub-PWT-101", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-4", + "name": "ERICA5779-Subscriber-5", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-103", + "name": "ERICA5779-TestSub-PWT-103", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-2", + "name": "ERICA5779-Subscriber-2", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + }, + { + "id": "ERICA5779-Subscriber-3", + "name": "ERICA5779-Subscriber-3", + "isPermitted": false + }, + { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "SCOTTIE", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "Cisneros", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "Josefina", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vSCP", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vMMSC", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "BAN1", + "name": "VSDKYUTP-BAN1" + }, + { + "id": "DKJ1", + "name": "DKJSJDKA-DKJ1" + }, + { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, + { + "id": "UIO1", + "name": "uioclli1-UIO1" + }, + { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, + { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, + { + "id": "SDE1", + "name": "ZXCVBNMA-SDE1" + }, + { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, + { + "id": "ORL1", + "name": "ORLDFLMA-ORL1" + }, + { + "id": "JAD1", + "name": "JADECLLI-JAD1" + }, + { + "id": "ZXL1", + "name": "LWLWCANN-ZXL1" + }, + { + "id": "CKL1", + "name": "CLKSKCKK-CKL1" + }, + { + "id": "SDF1", + "name": "sdfclli1-SDF1" + }, + { + "id": "RAD1", + "name": "RADICAL1-RAD1" + }, + { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, + { + "id": "REL1", + "name": "INGERFGT-REL1" + }, + { + "id": "JNL1", + "name": "CJALSDAC-JNL1" + }, + { + "id": "OLK1", + "name": "OLKOLKLS-OLK1" + }, + { + "id": "CHI1", + "name": "CHILLIWE-CHI1" + }, + { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, + { + "id": "TUF1", + "name": "TUFCLLI1-TUF1" + }, + { + "id": "KJN1", + "name": "CKALDKSA-KJN1" + }, + { + "id": "SAM1", + "name": "SNDGCA64-SAN1" + }, + { + "id": "SCK1", + "name": "SCKSCKSK-SCK1" + }, + { + "id": "HJH1", + "name": "AOEEQQQD-HJH1" + }, + { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, + { + "id": "KOR1", + "name": "HYFLNBVT-KOR1" + }, + { + "id": "ATL43", + "name": "AICLOCID-ATL43" + }, + { + "id": "ATL54", + "name": "AICFTAAI-ATL54" + }, + { + "id": "ATL66", + "name": "CLLIAAII-ATL66" + }, + { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, + { + "id": "ICC1", + "name": "SANJITAT-ICC1" + }, + { + "id": "MNT11", + "name": "WSXEFBTH-MNT11" + }, + { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, + { + "id": "MAD11", + "name": "SDFQWGKL-MAD11" + }, + { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, + { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, + { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, + { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, + { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, + { + "id": "DHA12", + "name": "WSXEDECF-DHA12" + }, + { + "id": "HJE1", + "name": "AOEEWWWD-HJE1" + }, + { + "id": "NCA1", + "name": "NCANCANN-NCA1" + }, + { + "id": "IOP1", + "name": "iopclli1-IOP1" + }, + { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, + { + "id": "KAP1", + "name": "HIOUYTRQ-KAP1" + }, + { + "id": "ZEN1", + "name": "ZENCLLI1-ZEN1" + }, + { + "id": "HKA1", + "name": "JAKHLASS-HKA1" + }, + { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, + { + "id": "SAI1", + "name": "UBEKQLPD-SAI1" + }, + { + "id": "ERT1", + "name": "ertclli1-ERT1" + }, + { + "id": "IBB1", + "name": "PLMKOIJU-IBB1" + }, + { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, + { + "id": "HSD1", + "name": "CHASKCDS-HSD1" + }, + { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, + { + "id": "SEE78", + "name": "SDCTEEE4-SEE78" + }, + { + "id": "SAN13", + "name": "TOKYJPFA-SAN13" + }, + { + "id": "SAA78", + "name": "SDCTAAA1-SAA78" + }, + { + "id": "LUC1", + "name": "ATLDFGYC-LUC1" + }, + { + "id": "AMD13", + "name": "MEMATLAN-AMD13" + }, + { + "id": "TOR1", + "name": "TOROONXN-TOR1" + }, + { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, + { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, + { + "id": "CAL33", + "name": "CALIFORN-CAL33" + }, + { + "id": "SHH78", + "name": "SDIT1HHH-SHH78" + }, + { + "id": "DSA1", + "name": "LKJHGFDS-DSA1" + }, + { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, + { + "id": "BNA1", + "name": "BNARAGBK-BNA1" + }, + { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, + { + "id": "APP1", + "name": "WBHGTYUI-APP1" + }, + { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, + { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, + { + "id": "mac10", + "name": "PKGTESTF-mac10" + }, + { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, + { + "id": "SAX78", + "name": "SDCTAXG1-SAX78" + }, + { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, + { + "id": "TOK1", + "name": "TOKYJPFA-TOK1" + }, + { + "id": "KGM2", + "name": "KGMTNC20-KGM2" + }, + { + "id": "DCC1b", + "name": "POIUYTGH-DCC1b" + }, + { + "id": "SKK78", + "name": "SDCTKKK1-SKK78" + }, + { + "id": "SGG78", + "name": "SDCTGGG1-SGG78" + }, + { + "id": "SJJ78", + "name": "SDCTJJJ1-SJJ78" + }, + { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, + { + "id": "LAG1", + "name": "LARGIZON-LAG1" + }, + { + "id": "IAA1", + "name": "QAZXSWED-IAA1" + }, + { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, + { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, + { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, + { + "id": "LAG45", + "name": "LARGIZON-LAG1a" + }, + { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, + { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, + { + "id": "DCC1a", + "name": "POIUYTGH-DCC1a" + }, + { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, + { + "id": "LON1", + "name": "LONEENCO-LON1" + }, + { + "id": "SJU78", + "name": "SDIT1JUB-SJU78" + }, + { + "id": "STN27", + "name": "HSTNTX01-STN27" + }, + { + "id": "SSW56", + "name": "ss8126GT-SSW56" + }, + { + "id": "SBB78", + "name": "SDIT1BBB-SBB78" + }, + { + "id": "DCC3", + "name": "POIUYTGH-DCC3" + }, + { + "id": "GNV1", + "name": "GNVLSCTL-GNV1" + }, + { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, + { + "id": "TOY1", + "name": "TORYONNZ-TOY1" + }, + { + "id": "STT1", + "name": "STTLWA02-STT1" + }, + { + "id": "STG1", + "name": "STTGGE62-STG1" + }, + { + "id": "SLL78", + "name": "SDCTLLL1-SLL78" + }, + { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, + { + "id": "ATL2", + "name": "ATLNGANW-ATL2" + }, + { + "id": "BOT1", + "name": "BOTHWAKY-BOT1" + }, + { + "id": "SNG1", + "name": "SNGPSIAU-SNG1" + }, + { + "id": "NYC1", + "name": "NYCMNY54-NYC1" + }, + { + "id": "LAG1b", + "name": "LARGIZON-LAG1b" + }, + { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, + { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, + { + "id": "PLT1", + "name": "PLTNCA60-PLT1" + }, + { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, + { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, + { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, + { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, + { + "id": "OKC1", + "name": "OKCBOK55-OKC1" + }, + { + "id": "PAR1", + "name": "PARSFRCG-PAR1" + }, + { + "id": "TES36", + "name": "ABCEETES-TES36" + }, + { + "id": "COM1", + "name": "PLMKOPIU-COM1" + }, + { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, + { + "id": "SDG78", + "name": "SDIT1BDG-SDG78" + }, + { + "id": "mac20", + "name": "PKGTESTF-mac20" + }, + { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, + { + "id": "HST25", + "name": "HSTNTX01-HST25" + }, + { + "id": "AMD18", + "name": "AUDIMA01-AMD18" + }, + { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, + { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, + { + "id": "SDD82", + "name": "SAIT1DD9-SDD82" + }, + { + "id": "JCV1", + "name": "JCVLFLBW-JCV1" + }, + { + "id": "SUL2", + "name": "WERTYUJK-SUL2" + }, + { + "id": "PUR1", + "name": "purelyde-PUR1" + }, + { + "id": "FDE55", + "name": "FDERT555-FDE55" + }, + { + "id": "SITE", + "name": "LONEENCO-SITE" + }, + { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, + { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, + { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, + { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, + { + "id": "RAI1", + "name": "poiuytre-RAI1" + }, + { + "id": "HPO1", + "name": "ATLNGAUP-HPO1" + }, + { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, + { + "id": "SCC80", + "name": "SAIT9CC3-SCC80" + }, + { + "id": "SAA12", + "name": "SAIT9AF8-SAA12" + }, + { + "id": "SAA14", + "name": "SAIT1AA9-SAA14" + }, + { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, + { + "id": "CWY1", + "name": "CWYMOWBS-CWY1" + }, + { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, + { + "id": "DSL12", + "name": "DSLFK242-DSL12" + }, + { + "id": "ATL53", + "name": "AAIATLTE-ATL53" + }, + { + "id": "SAA11", + "name": "SAIT9AA2-SAA11" + }, + { + "id": "ATL62", + "name": "TESSASCH-ATL62" + }, + { + "id": "AUG1", + "name": "ASDFGHJK-AUG1" + }, + { + "id": "POI22", + "name": "POIUY123-POI22" + }, + { + "id": "SAA13", + "name": "SAIT1AA9-SAA13" + }, + { + "id": "BHY17", + "name": "BHYTFRF3-BHY17" + }, + { + "id": "LIS1", + "name": "HOSTPROF-LIS1" + }, + { + "id": "SIP1", + "name": "ZXCVBNMK-SIP1" + }, + { + "id": "ATL99", + "name": "TEESTAAI-ATL43" + }, + { + "id": "ATL64", + "name": "FORLOAAJ-ATL64" + }, + { + "id": "TAT33", + "name": "TESAAISA-TAT33" + }, + { + "id": "RAD10", + "name": "INDIPUNE-RAD10" + }, + { + "id": "RTW5", + "name": "BHYTFRY4-RTW5" + }, + { + "id": "JGS1", + "name": "KSJKKKKK-JGS1" + }, + { + "id": "ATL98", + "name": "TEESTAAI-ATL43" + }, + { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, + { + "id": "ATL44", + "name": "ATLSANAB-ATL44" + }, + { + "id": "RTD2", + "name": "BHYTFRk4-RTD2" + }, + { + "id": "NIR1", + "name": "ORFLMANA-NIR1" + }, + { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, + { + "id": "NUM1", + "name": "QWERTYUI-NUM1" + }, + { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, + { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, + { + "id": "ATL56", + "name": "ATLSANAC-ATL56" + }, + { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, + { + "id": "RCT1", + "name": "AMSTERNL-RCT1" + }, + { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, + { + "id": "ABC14", + "name": "TESAAISA-ABC14" + }, + { + "id": "TAT37", + "name": "TESAAISD-TAT37" + }, + { + "id": "MIC54", + "name": "MICHIGAN-MIC54" + }, + { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, + { + "id": "AMF11", + "name": "AMDOCS01-AMF11" + }, + { + "id": "ATL63", + "name": "ATLSANEW-ATL63" + }, + { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, + { + "id": "MTN20", + "name": "MDTWNJ21-MTN20" + }, + { + "id": "ABC15", + "name": "AAITESAN-ABC15" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "[PRODUCT_FAMILIES] Update" + } + } + } + + function editSecondVnf(vnfNode: string) { + cy.drawingBoardTreeOpenContextMenuByElementDataTestId(vnfNode, 1) + .drawingBoardTreeClickOnContextMenuOptionByName('Edit'); + cy.selectDropdownOptionByText('lineOfBusiness', 'ONAP'); + cy.genericFormSubmitForm(); + } + + function checkDynamicInputs() { + cy.getReduxState().then((state) => { + let dynamicInputs = state.service.serviceHierarchy['f4d84bb4-a416-4b4e-997e-0059973630b9'].vnfs['2017-488_ADIOD-vPE 0'].inputs; + + chai.expect(dynamicInputs.vnf_config_template_version.description).equal("VPE Software Version"); + chai.expect(dynamicInputs.bandwidth_units.description).equal("Units of bandwidth"); + chai.expect(dynamicInputs.bandwidth.description).equal("Requested VPE bandwidth"); + chai.expect(dynamicInputs.AIC_CLLI.description).equal("AIC Site CLLI"); + chai.expect(dynamicInputs.availability_zone_0.description).equal("The Availability Zone to launch the instance.") + chai.expect(dynamicInputs.ASN.description).equal("AV/PE"); + chai.expect(dynamicInputs.vnf_instance_name.description).equal("The hostname assigned to the vpe."); + + }); + } + + function assertEditvfModuleShowFile(vfModuleNode: string, content: string) { + cy.drawingBoardTreeOpenContextMenuByElementDataTestId(vfModuleNode) + .drawingBoardTreeClickOnContextMenuOptionByName('Edit'); + cy.get(".file-name").contains(content); + + } }); diff --git a/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts index be1b2ac7d..b358ad233 100644 --- a/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts @@ -1,11 +1,14 @@ /// /// -import { JsonBuilder } from '../../support/jsonBuilders/jsonBuilder'; -import { AsyncInstantiationModel } from '../../support/jsonBuilders/models/asyncInstantiation.model'; +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {AsyncInstantiationModel} from '../../support/jsonBuilders/models/asyncInstantiation.model'; +import {ServiceModel} from "../../support/jsonBuilders/models/service.model"; -describe('Instantiation status page', function () { +describe('Instantiation status', function () { var jsonBuilderInstantiationBuilder : JsonBuilder = new JsonBuilder(); + var asyncRes: Array; + beforeEach(() => { cy.window().then((win) => { win.sessionStorage.clear(); @@ -14,37 +17,78 @@ describe('Instantiation status page', function () { cy.initAAIMock(); cy.initVidMock(); jsonBuilderInstantiationBuilder.basicMock('/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json', - Cypress.config('baseUrl') + "/asyncInstantiation**"); + Cypress.config('baseUrl') + "/asyncInstantiation**", + (res: any) => { + asyncRes = res; + return res; + }); cy.login(); }) }); - it('should disaplay the correct icons per status', function () { - cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json').then((res) => { - cy.openIframe('app/ui/#/instantiationStatus'); - for(let i = 0 ; i < res.length; i++){ - if(res[i].project){ - cy.getTableRowByIndex('instantiation-status', i).get('td#project span').contains(res[i].project); - } - if(res[i].userId){ - cy.getTableRowByIndex('instantiation-status', i).get('td#userId span').contains(res[i].userId); - } - if(res[i].tenantName){ - cy.getTableRowByIndex('instantiation-status', i).get('td#tenantName span').contains(res[i].tenantName); - } - if(res[i].serviceModelName){ - cy.getTableRowByIndex('instantiation-status', i).get('td#serviceModelName span').contains(res[i].serviceModelName); - } - if(res[i].serviceInstanceName){ - cy.getTableRowByIndex('instantiation-status', i).get('td#serviceInstanceName span').contains(res[i].serviceInstanceName); - } - if(res[i].serviceModelVersion){ - cy.getTableRowByIndex('instantiation-status', i).get('td#serviceModelVersion span').contains(res[i].serviceModelVersion); - } - if(res[i].subscriberName){ - cy.getTableRowByIndex('instantiation-status', i).get('td#subscriberName span').contains(res[i].subscriberName); - } + afterEach(() => { + cy.screenshot(); + }); + + it('should display the correct icons per status', function () { + const serviceAction:any = {INSTANTIATE : 'Instantiate', DELETE: 'Delete', UPDATE: 'Update'}; + cy.openIframe('app/ui/#/instantiationStatus'); + for(let i = 0 ; i < asyncRes.length; i++){ + if(asyncRes[i].project){ + cy.getTableRowByIndex('instantiation-status', i).get('td#project span').contains(asyncRes[i].project); } - }); + if(asyncRes[i].userId){ + cy.getTableRowByIndex('instantiation-status', i).get('td#userId span').contains(asyncRes[i].userId); + } + if(asyncRes[i].tenantName){ + cy.getTableRowByIndex('instantiation-status', i).get('td#tenantName span').contains(asyncRes[i].tenantName); + } + if(asyncRes[i].serviceModelName){ + cy.getTableRowByIndex('instantiation-status', i).get('td#serviceModelName span').contains(asyncRes[i].serviceModelName); + } + if(asyncRes[i].serviceInstanceName){ + cy.getTableRowByIndex('instantiation-status', i).get('td#serviceInstanceName span').contains(asyncRes[i].serviceInstanceName); + } + if(asyncRes[i].serviceModelVersion){ + cy.getTableRowByIndex('instantiation-status', i).get('td#serviceModelVersion span').contains(asyncRes[i].serviceModelVersion); + } + if(asyncRes[i].subscriberName){ + cy.getTableRowByIndex('instantiation-status', i).get('td#subscriberName span').contains(asyncRes[i].subscriberName); + } + if(asyncRes[i].action) { + cy.getTableRowByIndex('instantiation-status', i).get('td#action span').contains(serviceAction[asyncRes[i].action]); + } + } + }); + + it('should enable correct menu items', function () { + cy.openIframe('app/ui/#/instantiationStatus'); + + // Instantiate action with Job status FAILED - isRetry = true + cy.get( '#5c2cd8e5-27d0-42e3-85a1-85db5eaba459').find('.menu-div').click(); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-retry']`).should('not.exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-remove']`).should('exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-open']`).should('exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-hide']`).should('not.exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-audit-info']`).should('not.exist'); + + // Instantiate action with Job status FAILED - isRetry = false + cy.get( '#e1db03c3-6274-4ff7-84cf-7bd3a3946de7').find('.menu-div').click(); + cy.get('.dropdown-menu').find(`[data-tests-id='context-menu-retry']`).should('not.be.visible'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-open']`).should('exist'); + + //Delete action with Job status IN_PROGRESS + cy.get( '#850dc7d2-5240-437f-9bcd-b1ed7dc339c2').find('.menu-div').click(); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-remove']`).should('exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-open']`).should('exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-hide']`).should('exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-audit-info']`).should('not.exist'); + //Update action with Job status COMPLETED + cy.get( '#850dc7d2-5240-437f-9bcd-b1ed7dc339c1').find('.menu-div').click(); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-remove']`).should('exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-open']`).should('not.exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-hide']`).should('not.exist'); + cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='context-menu-audit-info']`).should('not.exist'); }); + }); diff --git a/vid-webpack-master/cypress/integration/iFrames/network.popup.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/network.popup.e2e.ts new file mode 100644 index 000000000..1ad706462 --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/network.popup.e2e.ts @@ -0,0 +1,3087 @@ +/// + +import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder"; +import {ServiceModel} from "../../support/jsonBuilders/models/service.model"; + +describe('Network popup', function () { + + var jsonBuilderAndMock: JsonBuilder = new JsonBuilder(); + + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.setReduxState(); + cy.preventErrorsOnLoading(); + cy.permissionVidMock(); + cy.setTestApiParamToGR(); + cy.initAAIMock(); + cy.initVidMock(); + cy.login(); + }) + }); + + afterEach(() => { + cy.screenshot(); + }); + + describe('basic UI tests', () => { + + it('Network(A-La-Carte) - create / edit / duplicate / delete', function () { + let redux = getReduxWithVNFSAndNetwork(); + redux.service.serviceHierarchy['6b528779-44a3-4472-bdff-9cd15ec93450'].service.instantiationType = 'A-La-Carte'; + + cy.setReduxState(redux); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6b528779-44a3-4472-bdff-9cd15ec93450'); + //create + cy.getElementByDataTestsId('node-ExtVL 0-add-btn').click({force: true}).then(() => { + + + verifyServiceModelNameInModelInfo(); + cy.fillNetworkPopup(); + }); + }); + + it('Network (Macro) - create / edit / duplicate / delete', function () { + + cy.setReduxState(getReduxWithVNFSAndNetwork()); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6b528779-44a3-4472-bdff-9cd15ec93450'); + //create + cy.getElementByDataTestsId('node-ExtVL 0-add-btn').click({force: true}).then(() => { + verifyServiceModelNameInModelInfo(); + cy.fillNetworkPopup().then(()=>{ + cy.getElementByDataTestsId('node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0').should('be.visible'); + cy.getElementByDataTestsId('numberButton').contains('1'); + + //Edit + cy.getElementByDataTestsId('node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0-menu-btn').click({force: true}) + .getElementByDataTestsId('context-menu-edit').click({force: true}).then(() => { + cy.checkIsOptionSelected('productFamily', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb'); + cy.checkIsOptionSelected('lcpRegion', 'hvf6'); + cy.checkIsOptionSelected('tenant', '229bcdc6eaeb4ca59d55221141d01f8e'); + cy.checkIsOptionSelected('lineOfBusiness', 'zzz1'); + cy.checkIsOptionSelected('platform', 'xxx1'); + //change platform value + cy.selectDropdownOptionByText('platform', 'platform'); + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + cy.getElementByDataTestsId('numberButton').contains('1'); + cy.getElementByDataTestsId('node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0-menu-btn').click({force: true}) + .getElementByDataTestsId('context-menu-edit').click({force: true}).then(() => { + cy.checkIsOptionSelected('platform', 'platform'); + // cancel button should close the dialog + cy.getElementByDataTestsId('cancelButton').click({force: true}).then(() => { + // duplicate network + cy.getElementByDataTestsId('node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0-menu-btn').click({force: true}) + .getElementByDataTestsId('context-menu-duplicate').click({force: true}).then(() => { + cy.getTagElementContainsText('button', 'Duplicate').click({force: true}); + cy.getElementByDataTestsId('node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0').should('have.length', 2); + cy.getElementByDataTestsId('numberButton').contains('2'); + //delete + cy.getElementByDataTestsId('node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0-menu-btn').eq(1).click({force: true}) + cy.getElementByDataTestsId('context-menu-remove').click({force: true}).then(()=>{ + cy.getElementByDataTestsId('numberButton').contains('1'); + cy.getElementByDataTestsId('node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0').should('have.length', 1); + + }) + + }); + }); + }) + }) + }); + }); + }); + + }); + + it('Network dynamic inputs', function () { + let redux = getReduxWithVNFSAndNetwork(); + redux.service.serviceHierarchy['6b528779-44a3-4472-bdff-9cd15ec93450'].networks['ExtVL 0'].inputs = { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + 'entry_schema': null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": false, + "default": "Gbps" + } + }; + cy.setReduxState(redux); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6b528779-44a3-4472-bdff-9cd15ec93450'); + + cy.getElementByDataTestsId('node-ExtVL 0-add-btn').click({force: true}).then(() => { + //check if dynamic inputs exist + cy.getElementByDataTestsId('vnf_config_template_version'); + cy.getElementByDataTestsId('bandwidth_units'); + + //check if required icon exists + cy.get('label').contains('VNF config template version:').should('have.class', 'required'); + cy.get('label').contains('Bandwidth units:').should('not.have.class', 'required'); + + //set button should be disabled when some dynamic inputs not valid + cy.selectDropdownOptionByText('productFamily', 'Emanuel'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-STTest2'); + cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1'); + cy.selectDropdownOptionByText('platform', 'xxx1'); + cy.getElementByDataTestsId('form-set').should('not.have.attr', 'disabled'); + + // clear required dynamic input. + cy.getElementByDataTestsId('vnf_config_template_version').clear(); + cy.getElementByDataTestsId('form-set').should('have.attr', 'disabled'); + + }); + }); + + it('Edit service with network - delete 1 create 1', function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicNetworkModel.json').then((res) => { + jsonBuilderAndMock.basicJson(res, + Cypress.config('baseUrl') + '/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450', + 200, + 0, + 'initServiceModel'); + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicNetworkInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb", + 200, 0, + "initServiceInstanceTopology" + ) + }); + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + + //add one network + cy.getElementByDataTestsId('node-ExtVL 0-add-btn').click({force: true}).then(() => { + verifyServiceModelNameInModelInfo(); + cy.fillNetworkPopup(); + }); + + const networkNodeToDelete = "node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0"; + cy.getElementByDataTestsId(`${networkNodeToDelete}-menu-btn`).eq(0).click({force: true}) + .getElementByDataTestsId('context-menu-delete').click(); + + //click update + cy.getElementByDataTestsId('deployBtn').should('have.text', 'UPDATE').click(); + + cy.getReduxState().then((state) => { + const network = state.service.serviceInstance[SERVICE_MODEL_ID].networks["ExtVL 0_1"]; + cy.wait('@expectedPostAsyncInstantiation').then(xhr => { + cy.readFile('../vid-automation/src/test/resources/asyncInstantiation/vidRequestDelete1Create1Network.json').then((expectedResult) => { + expectedResult.networks["ExtVL 0_1"].trackById = network.trackById; + cy.deepCompare(xhr.request.body, expectedResult); + }); + }); + }); + + }); + + function verifyServiceModelNameInModelInfo() { + cy.getElementByDataTestsId('model-item-label-serviceModelName').contains('Service Name'); + cy.getElementByDataTestsId('model-item-value-serviceModelName').contains('action-data'); + } + + function getReduxWithVNFSAndNetwork() { + return { + "global": { + "name": null, + "flags": { + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SHOW_VERIFY_SERVICE": false, + "FLAG_COLLECTION_RESOURCE_SUPPORT": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "FLAG_ADVANCED_PORTS_FILTER": true, + "CREATE_INSTANCE_TEST": false, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false, + "FLAG_REGION_ID_FROM_REMOTE": true, + "FLAG_ASYNC_INSTANTIATION": true, + "FLAG_ASYNC_JOBS": true, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_ADD_MSO_TESTAPI_FIELD": true + }, + "type": "[FLAGS] Update" + }, + "service": { + "serviceHierarchy": { + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "service": { + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "ComplexService", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "ComplexService", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "VF_vMee 0": { + "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60", + "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e", + "description": "VSP_vMee", + "name": "VF_vMee", + "version": "2.0", + "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9", + "inputs": {}, + "commands": {}, + "properties": { + "max_instances": 10, + "min_instances": 1, + "gpb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_start_port": "0", + "sctp-a-ipv6-egress_rule_application": "any", + "Internal2_allow_transit": "true", + "sctp-b-IPv6_ethertype": "IPv6", + "sctp-a-egress_rule_application": "any", + "sctp-b-ingress_action": "pass", + "sctp-b-ingress_rule_protocol": "icmp", + "ncb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-ingress-src_start_port": "0.0", + "ncb1_Internal2_mac": "00:11:22:EF:AC:DF", + "fsb_volume_size_0": "320.0", + "sctp-b-egress_src_addresses": "local", + "sctp-a-ipv6-ingress_ethertype": "IPv4", + "sctp-a-ipv6-ingress-dst_start_port": "0", + "sctp-b-ipv6-ingress_rule_application": "any", + "domain_name": "default-domain", + "sctp-a-ingress_rule_protocol": "icmp", + "sctp-b-egress-src_start_port": "0.0", + "sctp-a-egress_src_addresses": "local", + "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group", + "sctp-a-egress-src_start_port": "0.0", + "sctp-a-ingress_ethertype": "IPv4", + "sctp-b-ipv6-ingress-dst_end_port": "65535", + "sctp-b-dst_subnet_prefix_v6": "::", + "nf_naming": "{ecomp_generated_naming=true}", + "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-b-egress-dst_start_port": "0.0", + "ncb_flavor_name": "nv.c20r64d1", + "gpb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix_len": "0.0", + "Internal2_net_cidr": "10.0.0.10", + "sctp-a-ingress-dst_start_port": "0.0", + "sctp-a-egress-dst_start_port": "0.0", + "fsb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-egress_ethertype": "IPv4", + "vlc_st_service_mode": "in-network-nat", + "sctp-a-ipv6-egress_ethertype": "IPv4", + "sctp-a-egress-src_end_port": "65535.0", + "sctp-b-ipv6-egress_rule_application": "any", + "sctp-b-egress_action": "pass", + "sctp-a-ingress-src_subnet_prefix_len": "0.0", + "sctp-b-ipv6-ingress-src_end_port": "65535.0", + "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group", + "fsb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-a-ipv6-ingress-src_start_port": "0.0", + "sctp-b-ipv6-egress_ethertype": "IPv4", + "Internal1_net_cidr": "10.0.0.10", + "sctp-a-egress_dst_subnet_prefix": "0.0.0.0", + "fsb_flavor_name": "nv.c20r64d1", + "sctp_rule_protocol": "132", + "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_rule_application": "any", + "ecomp_generated_naming": "false", + "sctp-a-IPv6_ethertype": "IPv6", + "vlc2_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_virtualization_type": "virtual-machine", + "sctp-b-ingress-dst_start_port": "0.0", + "sctp-b-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-ingress-src_end_port": "65535.0", + "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-b-ingress_rule_application": "any", + "int2_sec_group_name": "int2-sec-group", + "vlc_flavor_name": "nd.c16r64d1", + "sctp-b-ipv6-egress_src_addresses": "local", + "vlc_st_interface_type_int1": "other1", + "sctp-b-egress-src_end_port": "65535.0", + "sctp-a-ipv6-egress-dst_start_port": "0", + "vlc_st_interface_type_int2": "other2", + "sctp-a-ipv6-egress_rule_protocol": "any", + "Internal2_shared": "false", + "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0", + "Internal2_rpf": "disable", + "vlc1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_end_port": "65535", + "sctp-a-ipv6-egress_src_addresses": "local", + "sctp-a-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-egress_src_end_port": "65535", + "Internal1_forwarding_mode": "l2", + "Internal2_dhcp": "false", + "sctp-a-dst_subnet_prefix_v6": "::", + "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2", + "vlc_st_interface_type_gtp": "other0", + "ncb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-src_subnet_prefix_v6": "::", + "sctp-a-egress_dst_subnet_prefix_len": "0.0", + "int1_sec_group_name": "int1-sec-group", + "Internal1_dhcp": "false", + "sctp-a-ipv6-egress_dst_end_port": "65535", + "Internal2_forwarding_mode": "l2", + "fsb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix": "0.0.0.0", + "Internal1_net_cidr_len": "17", + "gpb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress-src_subnet_prefix_len": "0.0", + "sctp-a-ingress_dst_addresses": "local", + "sctp-a-egress_action": "pass", + "fsb_volume_type_0": "SF-Default-SSD", + "ncb2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_sctp_a": "left", + "vlc_st_interface_type_sctp_b": "right", + "sctp-a-src_subnet_prefix_v6": "::", + "vlc_st_version": "2", + "sctp-b-egress_ethertype": "IPv4", + "sctp-a-ingress_rule_application": "any", + "gpb1_Internal2_mac": "00:11:22:EF:AC:DF", + "instance_ip_family_v6": "v6", + "sctp-a-ipv6-egress_src_start_port": "0", + "sctp-b-ingress-src_start_port": "0.0", + "sctp-b-ingress_dst_addresses": "local", + "fsb1_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_oam": "management", + "multi_stage_design": "true", + "oam_sec_group_name": "oam-sec-group", + "Internal2_net_gateway": "10.0.0.10", + "sctp-a-ipv6-ingress-dst_end_port": "65535", + "sctp-b-ipv6-egress-dst_start_port": "0", + "Internal1_net_gateway": "10.0.0.10", + "sctp-b-ipv6-egress_rule_protocol": "any", + "gtp_sec_group_name": "gtp-sec-group", + "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_dst_addresses": "local", + "sctp-a-egress_rule_protocol": "icmp", + "sctp-b-ipv6-egress_action": "pass", + "sctp-a-ipv6-egress_action": "pass", + "Internal1_shared": "false", + "sctp-b-ipv6-ingress_rule_protocol": "any", + "Internal2_net_cidr_len": "17", + "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-a-ingress-src_end_port": "65535.0", + "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-a-egress-dst_end_port": "65535.0", + "sctp-a-ingress_action": "pass", + "sctp-b-egress_rule_protocol": "icmp", + "sctp-b-ipv6-ingress_action": "pass", + "vlc_st_service_type": "firewall", + "sctp-b-ipv6-egress_dst_end_port": "65535", + "sctp-b-ipv6-ingress-dst_start_port": "0", + "vlc2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_availability_zone": "true", + "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2", + "sctp-b-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0", + "Internal1_allow_transit": "true", + "gpb_flavor_name": "nv.c20r64d1", + "availability_zone_max_count": "1", + "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2", + "sctp-b-ipv6-ingress_dst_addresses": "local", + "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-ingress_ethertype": "IPv4", + "vlc1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_action": "pass", + "Internal1_rpf": "disable", + "sctp-b-ingress_ethertype": "IPv4", + "sctp-b-egress_rule_application": "any", + "sctp-b-ingress-src_end_port": "65535.0", + "sctp-a-ipv6-ingress_rule_protocol": "any", + "sctp-a-ingress-src_start_port": "0.0", + "sctp-b-egress-dst_end_port": "65535.0" + }, + "type": "VF", + "modelCustomizationName": "VF_vMee 0", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": true + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": { + "Port Mirroring Configuration By Policy 0": { + "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50", + "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "27.0", + "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 0", + "sourceNodes": [], + "collectorNodes": null, + "configurationByPolicy": false + } + }, + "serviceProxies": {}, + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": true + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "pnfs": {} + }, + "6b528779-44a3-4472-bdff-9cd15ec93450": { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "min_instances": 1, + "max_instances": 10, + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": {} + } + }, + "pnfs": {} + } + }, + "serviceInstance": { + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "vnfs": { + "VF_vMee 0": { + "rollbackOnFailure": "true", + "vfModules": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": { + "isMissingData": false, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "modelName": "VfVmee..base_vmme..module-0", + "modelVersion": "2", + "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "modelCustomizationName": "VfVmee..base_vmme..module-0" + }, + "instanceParams": [ + {} + ], + "trackById": "wmtm6sy2uj" + } + } + }, + "isMissingData": true, + "originalName": "VF_vMee 0", + "vnfStoreKey": "VF_vMee 0", + "trackById": "p3wk448m5do", + "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60", + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "lcpCloudRegionId": null, + "tenantId": null, + "lineOfBusiness": null, + "platformName": null, + "modelInfo": { + "modelType": "VF", + "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e", + "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "modelName": "VF_vMee", + "modelVersion": "2.0", + "modelCustomizationName": "VF_vMee 0" + } + } + }, + "networks": {}, + "instanceParams": [ + {} + ], + "validationCounter": 1, + "existingNames": {}, + "existingVNFCounterMap": { + "d91415b44-753d-494c-926a-456a9172bbb9": 1 + }, + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "lcpCloudRegionId": "hvf6", + "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", + "aicZoneId": "JAG1", + "projectName": "x1", + "rollbackOnFailure": "true", + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "modelName": "ComplexService", + "modelVersion": "1.0", + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44" + }, + "isALaCarte": false, + "name": "ComplexService", + "version": "1.0", + "description": "ComplexService", + "category": "Emanuel", + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceType": "", + "serviceRole": "", + "isMultiStepDesign": false + }, + "6b528779-44a3-4472-bdff-9cd15ec93450": { + "networks": {}, + "vnfs": {}, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 0, + "existingNames": { + "123": "", + "instancename": "", + "yoav": "" + }, + "existingVNFCounterMap": {}, + "existingNetworksCounterMap": {}, + "instanceName": "InstanceName", + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "JAG1", + "projectName": null, + "rollbackOnFailure": "true", + "aicZoneName": "YUDFJULP-JAG1", + "owningEntityName": "WayneHolland", + "testApi": "GR_API", + "tenantName": "USP-SIP-IC-24335-T-01", + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "modelName": "action-data", + "modelVersion": "1.0", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450" + }, + "isALaCarte": false, + "name": "action-data", + "version": "1.0", + "description": "", + "category": "", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceType": "", + "serviceRole": "", + "isMultiStepDesign": false + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "JANET25", + "name": "JANET25", + "isPermitted": true + }, + { + "id": "hvf6", + "name": "hvf6", + "isPermitted": true + } + ], + "lcpRegionsTenantsMap": { + "JANET25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true + } + ] + } + }, + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "SCOTTIE", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "Cisneros", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "Josefina", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vSCP", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vMMSC", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "BAN1", + "name": "VSDKYUTP-BAN1" + }, + { + "id": "DKJ1", + "name": "DKJSJDKA-DKJ1" + }, + { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, + { + "id": "UIO1", + "name": "uioclli1-UIO1" + }, + { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, + { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, + { + "id": "SDE1", + "name": "ZXCVBNMA-SDE1" + }, + { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, + { + "id": "ORL1", + "name": "ORLDFLMA-ORL1" + }, + { + "id": "JAD1", + "name": "JADECLLI-JAD1" + }, + { + "id": "ZXL1", + "name": "LWLWCANN-ZXL1" + }, + { + "id": "CKL1", + "name": "CLKSKCKK-CKL1" + }, + { + "id": "SDF1", + "name": "sdfclli1-SDF1" + }, + { + "id": "RAD1", + "name": "RADICAL1-RAD1" + }, + { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, + { + "id": "REL1", + "name": "INGERFGT-REL1" + }, + { + "id": "JNL1", + "name": "CJALSDAC-JNL1" + }, + { + "id": "OLK1", + "name": "OLKOLKLS-OLK1" + }, + { + "id": "CHI1", + "name": "CHILLIWE-CHI1" + }, + { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, + { + "id": "TUF1", + "name": "TUFCLLI1-TUF1" + }, + { + "id": "KJN1", + "name": "CKALDKSA-KJN1" + }, + { + "id": "SAM1", + "name": "SNDGCA64-SAN1" + }, + { + "id": "SCK1", + "name": "SCKSCKSK-SCK1" + }, + { + "id": "HJH1", + "name": "AOEEQQQD-HJH1" + }, + { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, + { + "id": "KOR1", + "name": "HYFLNBVT-KOR1" + }, + { + "id": "ATL43", + "name": "AICLOCID-ATL43" + }, + { + "id": "ATL54", + "name": "AICFTAAI-ATL54" + }, + { + "id": "ATL66", + "name": "CLLIAAII-ATL66" + }, + { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, + { + "id": "ICC1", + "name": "SANJITAT-ICC1" + }, + { + "id": "MNT11", + "name": "WSXEFBTH-MNT11" + }, + { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, + { + "id": "MAD11", + "name": "SDFQWGKL-MAD11" + }, + { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, + { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, + { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, + { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, + { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, + { + "id": "DHA12", + "name": "WSXEDECF-DHA12" + }, + { + "id": "HJE1", + "name": "AOEEWWWD-HJE1" + }, + { + "id": "NCA1", + "name": "NCANCANN-NCA1" + }, + { + "id": "IOP1", + "name": "iopclli1-IOP1" + }, + { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, + { + "id": "KAP1", + "name": "HIOUYTRQ-KAP1" + }, + { + "id": "ZEN1", + "name": "ZENCLLI1-ZEN1" + }, + { + "id": "HKA1", + "name": "JAKHLASS-HKA1" + }, + { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, + { + "id": "SAI1", + "name": "UBEKQLPD-SAI1" + }, + { + "id": "ERT1", + "name": "ertclli1-ERT1" + }, + { + "id": "IBB1", + "name": "PLMKOIJU-IBB1" + }, + { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, + { + "id": "HSD1", + "name": "CHASKCDS-HSD1" + }, + { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, + { + "id": "SEE78", + "name": "SDCTEEE4-SEE78" + }, + { + "id": "SAN13", + "name": "TOKYJPFA-SAN13" + }, + { + "id": "SAA78", + "name": "SDCTAAA1-SAA78" + }, + { + "id": "LUC1", + "name": "ATLDFGYC-LUC1" + }, + { + "id": "AMD13", + "name": "MEMATLAN-AMD13" + }, + { + "id": "TOR1", + "name": "TOROONXN-TOR1" + }, + { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, + { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, + { + "id": "CAL33", + "name": "CALIFORN-CAL33" + }, + { + "id": "SHH78", + "name": "SDIT1HHH-SHH78" + }, + { + "id": "DSA1", + "name": "LKJHGFDS-DSA1" + }, + { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, + { + "id": "BNA1", + "name": "BNARAGBK-BNA1" + }, + { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, + { + "id": "APP1", + "name": "WBHGTYUI-APP1" + }, + { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, + { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, + { + "id": "mac10", + "name": "PKGTESTF-mac10" + }, + { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, + { + "id": "SAX78", + "name": "SDCTAXG1-SAX78" + }, + { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, + { + "id": "TOK1", + "name": "TOKYJPFA-TOK1" + }, + { + "id": "KGM2", + "name": "KGMTNC20-KGM2" + }, + { + "id": "DCC1b", + "name": "POIUYTGH-DCC1b" + }, + { + "id": "SKK78", + "name": "SDCTKKK1-SKK78" + }, + { + "id": "SGG78", + "name": "SDCTGGG1-SGG78" + }, + { + "id": "SJJ78", + "name": "SDCTJJJ1-SJJ78" + }, + { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, + { + "id": "LAG1", + "name": "LARGIZON-LAG1" + }, + { + "id": "IAA1", + "name": "QAZXSWED-IAA1" + }, + { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, + { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, + { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, + { + "id": "LAG45", + "name": "LARGIZON-LAG1a" + }, + { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, + { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, + { + "id": "DCC1a", + "name": "POIUYTGH-DCC1a" + }, + { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, + { + "id": "LON1", + "name": "LONEENCO-LON1" + }, + { + "id": "SJU78", + "name": "SDIT1JUB-SJU78" + }, + { + "id": "STN27", + "name": "HSTNTX01-STN27" + }, + { + "id": "SSW56", + "name": "ss8126GT-SSW56" + }, + { + "id": "SBB78", + "name": "SDIT1BBB-SBB78" + }, + { + "id": "DCC3", + "name": "POIUYTGH-DCC3" + }, + { + "id": "GNV1", + "name": "GNVLSCTL-GNV1" + }, + { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, + { + "id": "TOY1", + "name": "TORYONNZ-TOY1" + }, + { + "id": "STT1", + "name": "STTLWA02-STT1" + }, + { + "id": "STG1", + "name": "STTGGE62-STG1" + }, + { + "id": "SLL78", + "name": "SDCTLLL1-SLL78" + }, + { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, + { + "id": "ATL2", + "name": "ATLNGANW-ATL2" + }, + { + "id": "BOT1", + "name": "BOTHWAKY-BOT1" + }, + { + "id": "SNG1", + "name": "SNGPSIAU-SNG1" + }, + { + "id": "NYC1", + "name": "NYCMNY54-NYC1" + }, + { + "id": "LAG1b", + "name": "LARGIZON-LAG1b" + }, + { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, + { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, + { + "id": "PLT1", + "name": "PLTNCA60-PLT1" + }, + { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, + { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, + { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, + { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, + { + "id": "OKC1", + "name": "OKCBOK55-OKC1" + }, + { + "id": "PAR1", + "name": "PARSFRCG-PAR1" + }, + { + "id": "TES36", + "name": "ABCEETES-TES36" + }, + { + "id": "COM1", + "name": "PLMKOPIU-COM1" + }, + { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, + { + "id": "SDG78", + "name": "SDIT1BDG-SDG78" + }, + { + "id": "mac20", + "name": "PKGTESTF-mac20" + }, + { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, + { + "id": "HST25", + "name": "HSTNTX01-HST25" + }, + { + "id": "AMD18", + "name": "AUDIMA01-AMD18" + }, + { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, + { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, + { + "id": "SDD82", + "name": "SAIT1DD9-SDD82" + }, + { + "id": "JCV1", + "name": "JCVLFLBW-JCV1" + }, + { + "id": "SUL2", + "name": "WERTYUJK-SUL2" + }, + { + "id": "PUR1", + "name": "purelyde-PUR1" + }, + { + "id": "FDE55", + "name": "FDERT555-FDE55" + }, + { + "id": "SITE", + "name": "LONEENCO-SITE" + }, + { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, + { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, + { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, + { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, + { + "id": "RAI1", + "name": "poiuytre-RAI1" + }, + { + "id": "HPO1", + "name": "ATLNGAUP-HPO1" + }, + { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, + { + "id": "SCC80", + "name": "SAIT9CC3-SCC80" + }, + { + "id": "SAA12", + "name": "SAIT9AF8-SAA12" + }, + { + "id": "SAA14", + "name": "SAIT1AA9-SAA14" + }, + { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, + { + "id": "CWY1", + "name": "CWYMOWBS-CWY1" + }, + { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, + { + "id": "DSL12", + "name": "DSLFK242-DSL12" + }, + { + "id": "ATL53", + "name": "AAIATLTE-ATL53" + }, + { + "id": "SAA11", + "name": "SAIT9AA2-SAA11" + }, + { + "id": "ATL62", + "name": "TESSASCH-ATL62" + }, + { + "id": "AUG1", + "name": "ASDFGHJK-AUG1" + }, + { + "id": "POI22", + "name": "POIUY123-POI22" + }, + { + "id": "SAA13", + "name": "SAIT1AA9-SAA13" + }, + { + "id": "BHY17", + "name": "BHYTFRF3-BHY17" + }, + { + "id": "LIS1", + "name": "HOSTPROF-LIS1" + }, + { + "id": "SIP1", + "name": "ZXCVBNMK-SIP1" + }, + { + "id": "ATL99", + "name": "TEESTAAI-ATL43" + }, + { + "id": "ATL64", + "name": "FORLOAAJ-ATL64" + }, + { + "id": "TAT33", + "name": "TESAAISA-TAT33" + }, + { + "id": "RAD10", + "name": "INDIPUNE-RAD10" + }, + { + "id": "RTW5", + "name": "BHYTFRY4-RTW5" + }, + { + "id": "JGS1", + "name": "KSJKKKKK-JGS1" + }, + { + "id": "ATL98", + "name": "TEESTAAI-ATL43" + }, + { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, + { + "id": "ATL44", + "name": "ATLSANAB-ATL44" + }, + { + "id": "RTD2", + "name": "BHYTFRk4-RTD2" + }, + { + "id": "NIR1", + "name": "ORFLMANA-NIR1" + }, + { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, + { + "id": "NUM1", + "name": "QWERTYUI-NUM1" + }, + { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, + { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, + { + "id": "ATL56", + "name": "ATLSANAC-ATL56" + }, + { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, + { + "id": "RCT1", + "name": "AMSTERNL-RCT1" + }, + { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, + { + "id": "ABC14", + "name": "TESAAISA-ABC14" + }, + { + "id": "TAT37", + "name": "TESAAISD-TAT37" + }, + { + "id": "MIC54", + "name": "MICHIGAN-MIC54" + }, + { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, + { + "id": "AMF11", + "name": "AMDOCS01-AMF11" + }, + { + "id": "ATL63", + "name": "ATLSANEW-ATL63" + }, + { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, + { + "id": "MTN20", + "name": "MDTWNJ21-MTN20" + }, + { + "id": "ABC15", + "name": "AAITESAN-ABC15" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "[LCP_REGIONS_AND_TENANTS] Update", + "subscribers": [ + { + "id": "CAR_2020_ER", + "name": "CAR_2020_ER", + "isPermitted": true + }, + { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-2", + "name": "DALE BRIDGES", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-1", + "name": "LLOYD BRIDGES", + "isPermitted": false + }, + { + "id": "jimmy-example", + "name": "JimmyExampleCust-20161102", + "isPermitted": false + }, + { + "id": "jimmy-example2", + "name": "JimmyExampleCust-20161103", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-102", + "name": "ERICA5779-TestSub-PWT-102", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-101", + "name": "ERICA5779-TestSub-PWT-101", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-4", + "name": "ERICA5779-Subscriber-5", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-103", + "name": "ERICA5779-TestSub-PWT-103", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-2", + "name": "ERICA5779-Subscriber-2", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + }, + { + "id": "ERICA5779-Subscriber-3", + "name": "ERICA5779-Subscriber-3", + "isPermitted": false + }, + { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + } + ] + } + } + } + + }); +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/permission.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/permission.e2e.ts new file mode 100644 index 000000000..225c12c6b --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/permission.e2e.ts @@ -0,0 +1,116 @@ +/// +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; + +describe('Permissions ', ()=> { + var jsonBuilderAndMock: JsonBuilder = new JsonBuilder(); + + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.login(); + + + }); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it('user without permission get mode-view : is not permitted', () => { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + + cy.initDrawingBoardUserPermission({isEditPermitted : false}); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450", + 200, + 0, + "ecompNamingFalseModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroping_serviceInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `**/aai_get_service_instance_topology/**`, + 200, 0, + "serviceWithVnfGroping_serviceInstance", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + + cy.url().should('contains', 'VIEW') + }); + + it('user without permission get mode-view : is permitted', () => { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + + cy.initDrawingBoardUserPermission(); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450", + 200, + 0, + "ecompNamingFalseModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb", + 200, 0, + "initServiceInstanceTopology", + ) + }); + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + + cy.url().should('contains', 'EDIT'); + cy.getElementByDataTestsId('deployBtn').contains('UPDATE'); + cy.getElementByDataTestsId('isViewOnly-status-test').contains('IN EDITING'); + }); + + it(`RETRY - drawing board mode - no permission should show retry view only mode`, () =>{ + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + const JOB_ID: string = '123456-44a3-4472-bdff-9cd15ec12345'; + cy.initDrawingBoardUserPermission({isEditPermitted : false}); + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => { + + // Adding VNF with isFailed. + res.vnfs["2017-388_ADIOD-vPE 0"].isFailed = true; + res.vnfs["2017-488_ADIOD-vPE 0"].isFailed = true; + + // Adding VFModule with isFailed. + res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].isFailed = true; + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/asyncInstantiation/bulkForRetry/" + JOB_ID, + 200, 0, + "initServiceInstanceRetryTopology", + ); + cy.openIframe(`app/ui/#/servicePlanning/RETRY_EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&jobId=${JOB_ID}`); + + cy.url().should('contains', '/RETRY?') + }); + }); +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/retry.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/retry.e2e.ts new file mode 100644 index 000000000..cc6434300 --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/retry.e2e.ts @@ -0,0 +1,199 @@ +/// +/// +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; + +describe('Retry Page', function () { + let jsonBuilderAndMock: JsonBuilder = new JsonBuilder(); + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + jsonBuilderAndMock.basicMock('/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json', + Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450"); + cy.initVidMock(); + cy.initZones(); + cy.permissionVidMock(); + cy.login(); + }); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it(`RETRY - drawing board mode - should show correct failed icon with children + Retry button / Mock Data`, ()=> { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + const JOB_ID: string = '123456-44a3-4472-bdff-9cd15ec12345'; + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => { + // Service with isFailed. + res.isFailed= true; + res.action = 'Create'; + res.statusMessage = 'Service instantiation has failed.' + // Adding VNF with isFailed. + res.vnfs["2017-388_ADIOD-vPE 0"].isFailed = true; + res.vnfs["2017-488_ADIOD-vPE 0"].isFailed = true; + res.vnfs["2017-488_ADIOD-vPE 0"].statusMessage = 'VNF instantiation failed message'; + res.vnfs["2017-388_ADIOD-vPE 0"].action = 'Create'; + res.vnfs["2017-488_ADIOD-vPE 0"].action = 'Create'; + res.networks["ExtVL 0"].action = 'Create'; + res.networks["ExtVL 0"].statusMessage = 'Network instantiation failed message'; + + // Adding VFModule with isFailed. + res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].isFailed = true; + res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].statusMessage = 'Short vfModule Failure Message'; + res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].action = 'Create'; + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/asyncInstantiation/bulkForRetry/" + JOB_ID, + 200, 0, + "initServiceInstanceRetryTopology", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/RETRY_EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&jobId=${JOB_ID}`); + + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').click(); + + cy.get('.failed-msg').should('have.length', 5); + cy.get('.newIcon').should('have.length', 4); + + //cy.drawingBoardNumberOfExistingElementsShouldContains(4); + cy.get('.toggle-children-wrapper.toggle-children-wrapper-expanded').eq(0).click().then(()=>{ + cy.get('.failed-msg').should('have.length', 5); + cy.get('.newIcon').should('have.length', 4); + }); + + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0') + .drawingBoardTreeClickOnContextMenuOptionByName('Edit') + .getElementByDataTestsId('cancelButton').click({force: true}); + cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0') + .drawingBoardTreeClickOnContextMenuOptionByName('Remove'); + + cy.get('.newIcon').should('have.length', 2); + cy.getElementByDataTestsId('isViewOnly-status-test').contains('IN EDITING'); + + cy.getElementByDataTestsId("openMenuBtn").click({force: true}) + .getElementByDataTestsId("context-menu-header-edit-item").click({force: true}) + .getElementByDataTestsId("serviceName").should('have.text','mCaNkinstancename') + .getElementByDataTestsId("subscriberName") + .getElementByDataTestsId("serviceType") + .getElementByDataTestsId("owningEntity") + .getElementByDataTestsId("project") + .getElementByDataTestsId("rollback") + .getElementByDataTestsId('cancelButton').click({force: true}); + cy.getElementByDataTestsId("openMenuBtn").click({force: true}) + .getElementByDataTestsId("context-menu-header-audit-item"); + // button should be RETRY + cy.getElementByDataTestsId('deployBtn').should('contain', 'REDEPLOY'); + cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + + cy.checkPopoverContentOnMouseEvent('service-failed-msg', '.popover-content.popover-body','mouseenter', 0) + .should('contain', 'Service instantiation has failed'); + }); + + it(`RETRY - view mode- should show failed icon with no actions enabled`, ()=> { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + const JOB_ID: string = '123456-44a3-4472-bdff-9cd15ec12345'; + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => { + + // Adding VNF with isFailed. + res.vnfs["2017-388_ADIOD-vPE 0"].isFailed = true; + res.vnfs["2017-488_ADIOD-vPE 0"].isFailed = true; + res.vnfs["2017-388_ADIOD-vPE 0"].action = 'Create'; + res.vnfs["2017-488_ADIOD-vPE 0"].action = 'Create'; + res.vnfs["2017-488_ADIOD-vPE 0"].statusMessage = 'Very long message that checks the popoverwindow can show very very long messagewithout problem.as-erfderfd-rfghthth-yjyjyj-ukuk. For more details go to audit show window'; + // Adding VFModule with isFailed. + res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].isFailed = true; + res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].action = 'Create'; + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/responceForFailedInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/asyncInstantiation/auditStatusForRetry**", + 200, + 0, + "msoStatusForFailedInstance", + ) + }); + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/asyncInstantiation/bulkForRetry/" + JOB_ID, + 200, 0, + "initServiceInstanceRetryTopology", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/RETRY?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&jobId=${JOB_ID}`); + + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').click(); + + cy.get('.failed-msg').should('have.length', 4); + cy.get('.newIcon').should('have.length', 4); + + cy.get('.toggle-children-wrapper.toggle-children-wrapper-expanded').eq(0).click().then(()=>{ + cy.get('.failed-msg').should('have.length', 4); + cy.get('.newIcon').should('have.length', 4); + }); + cy.assertMenuItemsForNode(['showAuditInfo'],'node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0-menu-btn'); + cy.getElementByDataTestsId('isViewOnly-status-test').contains('VIEW ONLY'); + + // deploy button should be 'REDEPLOY' and disabled. + cy.getElementByDataTestsId('editBtn').should('contain', 'REDEPLOY').should('have.attr', 'disabled'); + + cy.checkPopoverContentOnMouseEvent('failed-error-message', '.popover-content.popover-body','mouseenter', 0) + .should('not.be.visible'); + cy.checkPopoverContentOnMouseEvent('failed-error-message', '.popover-content.popover-body','mouseenter', 1) + .should('contain', 'Very long'); + + }); + + it(`RETRY - drawing board mode - should show correct failed icon + Retry button`, function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + const JOB_ID: string = '123456-44a3-4472-bdff-9cd15ec12345'; + let expectedResult: JSON; + + cy.readFile('../vid-automation/src/test/resources/asyncInstantiation/ServiceTreeForRetry_serviceInstance.json').then((res) => { + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/asyncInstantiation/bulkForRetry/" + JOB_ID, + 200, 0, + "initServiceInstanceRetryTopology", + ) + }); + + //TODO - join this to correct API test + + + + cy.openIframe(`app/ui/#/servicePlanning/RETRY_EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&jobId=${JOB_ID}`); + + cy.get('.failed-msg').should('have.length', 1); + cy.get('.newIcon').should('have.length', 1); + //TODO + + cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + + // button should be RETRY + cy.getElementByDataTestsId('deployBtn').should('contain', 'REDEPLOY').click(); + + + //TODO - join this to correct API test + + + }); + +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/searchExistingInstance.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/searchExistingInstance.e2e.ts new file mode 100644 index 000000000..22e7a9950 --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/searchExistingInstance.e2e.ts @@ -0,0 +1,87 @@ +/// +/// +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; + +describe('search existing instance', function () { + var jsonBuilderAndMock: JsonBuilder = new JsonBuilder(); + + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.initZones(); + cy.permissionVidMock(); + cy.login(); + }); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it('when find instance with resource group in the model then open new service planning in edit mode', function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SUBSCRIBER_NAME:string ="SILVIA ROBBINS"; + const SERVICE_TYPE: string = "VIRTUALUSP"; + const SERVICE_INSTANCE_ID: string = "3d930d51-eed8-41b8-956f-70aa0d19940b"; + const SERVICE_MODEL_VERSION_ID: string = '5aece664-e92d-4a99-8a76-c7d7b8d23d09'; + const SERVICE_MODEL_INVARIANT_ID: string = 'd089c740-53ac-41f6-8e5b-32e862302ef1'; + + var searchServiceInstancesResponse = { + "service-instances": [{ + "serviceInstanceId":SERVICE_INSTANCE_ID, + "globalCustomerId": SUBSCRIBER_ID, + "serviceType": SERVICE_TYPE, + "serviceInstanceName": "abc_mdns_2017_1011_IST_Service_CSI", + "subscriberName": SUBSCRIBER_NAME, + "aaiModelInvariantId": SERVICE_MODEL_INVARIANT_ID, + "aaiModelVersionId": SERVICE_MODEL_VERSION_ID, + "isPermitted": true + } + ] + }; + + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb", + 200, 0, + "initServiceInstanceTopology", + ) + }); + + cy.server() + .route({ + method: 'GET', + status: 200, + delay : 0, + url: Cypress.config('baseUrl') + `/search_service_instances?subscriberId=${SUBSCRIBER_ID}&serviceInstanceIdentifier=${SERVICE_INSTANCE_ID}`, + response: searchServiceInstancesResponse + }).as('search_service_instances'); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceModels/serviceForNewViewEdit.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_VERSION_ID}`, + 200, + 0, + "serviceForNewViewEdit", + (res: ServiceModel)=>{ + res.service.uuid = SERVICE_MODEL_VERSION_ID; + res.service.invariantUuid =SERVICE_MODEL_INVARIANT_ID; + return res; + } + ) + }); + + cy.visit(`/serviceModels.htm#/instances/subdetails?subscriberId=${SUBSCRIBER_ID}&serviceInstanceIdentifier=${SERVICE_INSTANCE_ID}`); + cy.getElementByDataTestsId(`view/edit-test-data-id-${SERVICE_INSTANCE_ID}`).click(); + cy.url().should('contains',`servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_VERSION_ID}&subscriberId=${SUBSCRIBER_ID}`+ + `&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + }); + +}); + diff --git a/vid-webpack-master/cypress/integration/iFrames/service.popup.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/service.popup.e2e.ts index 9d1fbfdf0..8b9239c52 100644 --- a/vid-webpack-master/cypress/integration/iFrames/service.popup.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/service.popup.e2e.ts @@ -13,40 +13,71 @@ describe('Service popup', function () { }) }); + afterEach(() => { + cy.screenshot(); + }); + + it('a-la-carte service instantiation popup has all required fields ', function () { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res1) => { + res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.instantiationType = 'A-LA-Carte'; + cy.setReduxState(res1); + cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true'); + cy.isElementContainsAttr('form-set', 'disabled'); + cy.get('label').contains('Instance name:').should('not.have.class', 'required') + .get('label').contains('Subscriber name:').should('have.class', 'required') + .get('label').contains('Service type:').should('have.class', 'required') + .get('label').contains('Owning entity:').should('have.class', 'required') + .get('label').contains('Project').should('not.have.class', 'required') + .get('label').contains('Rollback on failure').should('have.class', 'required'); + }); + }); + + it('a-la-carte service instantiation popup has Instance name as required', function () { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res1) => { + res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.instantiationType = 'A-LA-Carte'; + let isEcompNaming = false; + res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.serviceEcompNaming = isEcompNaming.toString(); + cy.setReduxState(res1); + cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true'); + cy.isElementContainsAttr('form-set', 'disabled'); + cy.get('label').contains('Instance name:').should('have.class', 'required'); + }); + }); + it('should contains basic selects with required astrix', function () { cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true'); - cy.isElementContainsAttr('service-form-set', 'disabled'); + cy.isElementContainsAttr('form-set', 'disabled'); cy.get('label').contains('Subscriber name:').should('have.class', 'required') .get('label').contains('Service type:').should('have.class', 'required') .get('label').contains('LCP region:').should('have.class', 'required') .get('label').contains('Tenant:').should('have.class', 'required') .get('label').contains('Owning entity:').should('have.class', 'required') .get('label').contains('Product family:').should('have.class', 'required') - .get('label').contains('AIC Zone:').should('not.have.class', 'required') + .get('label').contains('AIC zone:').should('not.have.class', 'required') .get('label').contains('Project').should('not.have.class', 'required') - .get('label').contains('Rollback On Failure').should('have.class', 'required'); + .get('label').contains('Rollback on failure').should('have.class', 'required'); }); it('should be able fill all selects', function () { cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true'); - cy.selectDropdownOptionByText('subscriberName', 'USP VOICE'); - cy.selectDropdownOptionByText('serviceType', 'VIRTUAL USP'); - cy.selectDropdownOptionByText('productFamily', 'VIRTUAL USP'); - cy.selectDropdownOptionByText('lcpRegion', 'mtn6'); - cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testgamma'); + cy.selectDropdownOptionByText('subscriberName', 'SILVIA ROBBINS'); + cy.selectDropdownOptionByText('serviceType', 'TYLER SILVIA'); + cy.selectDropdownOptionByText('productFamily', 'TYLER SILVIA'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria'); cy.selectDropdownOptionByText('aic_zone', 'NFTJSSSS-NFT1'); - cy.selectDropdownOptionByText('project', 'DFW'); + cy.selectDropdownOptionByText('project', 'WATKINS'); cy.selectDropdownOptionByText('owningEntity', 'aaa1'); cy.selectDropdownOptionByText('rollback', 'Rollback'); }); it('should display error when api return empty data', function () { - cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/categoryParametres.json').then((res)=>{ - res.categoryParameters.owningEntity = []; - cy.initCategoryParameter(res); - + cy.initCategoryParameter({}); + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res1) => { + res1.service.categoryParameters.owningEntityList = []; + cy.setReduxState(res1); cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true'); cy.get('.message').contains('No results for this request. Please change criteria.'); @@ -55,3 +86,4 @@ describe('Service popup', function () { }); }); }); + diff --git a/vid-webpack-master/cypress/integration/iFrames/serviceWithNetwork.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/serviceWithNetwork.e2e.ts new file mode 100644 index 000000000..678609c5c --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/serviceWithNetwork.e2e.ts @@ -0,0 +1,105 @@ +/// / +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {PnfModel} from '../../support/jsonBuilders/models/pnf.model'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import {AaiServiceInstancesModel} from '../../support/jsonBuilders/models/serviceInstances.model'; +import {AAISubDetailsModel} from '../../support/jsonBuilders/models/aaiSubDetails.model'; +import {AAISubViewEditModel} from '../../support/jsonBuilders/models/aaiSubViewEdit.model'; + +describe('View Edit Page', function () { + describe('test view service with network', () => { + var jsonBuilderAAIService : JsonBuilder = new JsonBuilder(); + const presetsPrefix : string = '/cypress/support/jsonBuilders/mocks/jsons/'; + + var jsonBuilderAAISubViewEditModel: JsonBuilder = new JsonBuilder(); + var jsonBuilderAAISubDetailsModel: JsonBuilder = new JsonBuilder(); + var jsonBuilderPNF: JsonBuilder = new JsonBuilder(); + var jsonBuilderAaiServiceInstances: JsonBuilder = new JsonBuilder(); + var jsonBuilderEmpty: JsonBuilder = new JsonBuilder(); + beforeEach(() => { + cy.readFile(presetsPrefix + 'serviceWithNetwork/serviceWithNetwork.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/5a3ad576-c01d-4bed-8194-0e72b4a3d020", + 200, 0, + "service-complexService") + }); + cy.readFile(presetsPrefix + 'serviceWithNetwork/aaiSubViewEditForServiceWithNetwork.json').then((res) => { + jsonBuilderAAISubViewEditModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_viewedit/**", + 200, + 0, + "aai-sub-view-edit") + }); + cy.readFile(presetsPrefix + 'serviceWithNetwork/aaiSubDetailsForServiceWithNetwork.json').then((res) => { + jsonBuilderAAISubDetailsModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_details/**", + 200, + 0, + "aai-sub-details") + }); + cy.readFile(presetsPrefix + 'aaiServiceInstancePnfs.json').then((res) => { + jsonBuilderPNF.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_service_instance_pnfs/**", + 200, + 0, + "aai-get-service-instance-pnfs") + }); + cy.readFile(presetsPrefix + 'serviceWithNetwork/aaiServiceInstances.json').then((res) => { + jsonBuilderAaiServiceInstances.basicJson( + res, + Cypress.config('baseUrl') + "/search_service_instances**", + 200, + 0, + "aai-get-service-instances") + }); + cy.readFile(presetsPrefix + 'emptyObjectResponse.json').then((res) => { + jsonBuilderEmpty.basicJson( + res, + Cypress.config('baseUrl') + "/aai_getPortMirroringConfigsData**", + 200, + 0, + "aai_getPortMirroringConfigsDate - empty response") + }); + cy.readFile(presetsPrefix + 'emptyObjectResponse.json').then((res) => { + jsonBuilderEmpty.basicJson( + res, + Cypress.config('baseUrl') + "/aai_getPortMirroringSourcePorts**", + 200, + 0, + "aai_getPortMirroringSourcePorts - empty response") + }); + cy.readFile('../vid-automation/src/test/resources/serviceWithNetwork/aaiGetNetworksToVlansByServiceInstance.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + '/aai/standardQuery/vlansByNetworks?' + + 'globalCustomerId=a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb' + + '&serviceType=vMOG' + + '&serviceInstanceId=9cdd1b2a-43a7-47bc-a88e-759ba2399f0b' + + '&sdcModelUuid=5a3ad576-c01d-4bed-8194-0e72b4a3d020', + 200, + 0, + "aai-aaiGetNetworksToVlans-By-Service-Instance") + }); + + cy.initVidMock(); // just for subsequent "initFlags()" + cy.login(); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it(`should allow delete network on view edit`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&subscriberName=Mobility&serviceType=vMOG&serviceInstanceId=9cdd1b2a-43a7-47bc-a88e-759ba2399f0b&aaiModelVersionId=5a3ad576-c01d-4bed-8194-0e72b4a3d020&isPermitted=true'); + cy.wait('@aai_getPortMirroringSourcePorts - empty response'); + cy.getElementByDataTestsId("deleteNetworkButton").should('not.have.attr', 'disabled'); + cy.get(".vlansTreeNode").should('have.length', 2); + }); + }); + +}); + diff --git a/vid-webpack-master/cypress/integration/iFrames/serviceWithVnfNetwork.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/serviceWithVnfNetwork.e2e.ts new file mode 100644 index 000000000..f6984a2e9 --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/serviceWithVnfNetwork.e2e.ts @@ -0,0 +1,94 @@ +/// / +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {PnfModel} from '../../support/jsonBuilders/models/pnf.model'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import {AaiServiceInstancesModel} from '../../support/jsonBuilders/models/serviceInstances.model'; +import {AAISubDetailsModel} from '../../support/jsonBuilders/models/aaiSubDetails.model'; +import {AAISubViewEditModel} from '../../support/jsonBuilders/models/aaiSubViewEdit.model'; + +describe('Service With VNF network', function () { + describe('basic UI tests', () => { + var jsonBuilderAAIService: JsonBuilder = new JsonBuilder(); + + + var jsonBuilderAAISubViewEditModel: JsonBuilder = new JsonBuilder(); + var jsonBuilderAAISubDetailsModel: JsonBuilder = new JsonBuilder(); + var jsonBuilderPNF: JsonBuilder = new JsonBuilder(); + var jsonBuilderAaiServiceInstances: JsonBuilder = new JsonBuilder(); + var jsonBuilderEmpty: JsonBuilder = new JsonBuilder(); + beforeEach(() => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicService.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d674c44", + 200, 0, + "service-complexService", + changeServiceModel) + }); + + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json').then((res) => { + jsonBuilderAAISubViewEditModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/3f93c7cb-2fd0-4557-9514-e189b7b04f9d", + 200, + 0, + "aai-sub-view-edit") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json').then((res) => { + jsonBuilderAAISubDetailsModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_details/**", + 200, + 0, + "aai-sub-details") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json').then((res) => { + jsonBuilderAaiServiceInstances.basicJson( + res, + Cypress.config('baseUrl') + "/search_service_instances**", + 200, + 0, + "aai-get-service-instances") + }); + + cy.readFile('../vid-automation/src/test/resources/serviceWithNetwork/aaiGetNetworksWithVlansToVnfByServiceInstance.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + '/aai/standardQuery/vlansByNetworks?' + + 'globalCustomerId=e433710f-9217-458d-a79d-1c7aff376d89' + + '&serviceType=TYLER SILVIA' + + '&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d' + + '&sdcModelUuid=6e59c5de-f052-46fa-aa7e-2fca9d674c44', + 200, + 0, + "aai-aaiGetNetworksToVlans-By-Service-Instance") + }); + + cy.initVidMock(); // just for subsequent "initFlags()" + + cy.login(); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it(`Display VNF's network and its vlans hierarchically`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + cy.get('div').contains('VNF: fsd') + .get('div').contains('NETWORK: AAAAABBBBCCCC') + .get('div').contains('NETWORK: DDDEEEE') + .get('.vlansTreeNode').should('have.length', 4); + }); + }); + + function changeServiceModel(serviceModel: ServiceModel) { + serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44"; + return serviceModel; + } +}); + diff --git a/vid-webpack-master/cypress/integration/iFrames/softDeleteAndResume.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/softDeleteAndResume.e2e.ts new file mode 100644 index 000000000..53e5e13be --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/softDeleteAndResume.e2e.ts @@ -0,0 +1,241 @@ +/// +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {PnfModel} from '../../support/jsonBuilders/models/pnf.model'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import {AaiServiceInstancesModel} from '../../support/jsonBuilders/models/serviceInstances.model'; +import {AAISubDetailsModel} from '../../support/jsonBuilders/models/aaiSubDetails.model'; +import {AAISubViewEditModel} from '../../support/jsonBuilders/models/aaiSubViewEdit.model'; + +describe('Soft delete tests', function () { + describe('basic UI tests', () => { + + var jsonBuilderAAIService: JsonBuilder = new JsonBuilder(); + var jsonBuilderAAISubViewEditModel: JsonBuilder = new JsonBuilder(); + var jsonBuilderAAISubDetailsModel: JsonBuilder = new JsonBuilder(); + var jsonBuilderAaiServiceInstances: JsonBuilder = new JsonBuilder(); + beforeEach(() => { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicService.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d674c44", + 200, 0, + "service-complexService", + changeServiceModel) + }); + + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForServiceWithSomeVFModule.json').then((res) => { + jsonBuilderAAISubViewEditModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/3f93c7cb-2fd0-4557-9514-e189b7b04f9d", + 200, + 0, + "aai-sub-view-edit") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json').then((res) => { + jsonBuilderAAISubDetailsModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_details/**", + 200, + 0, + "aai-sub-details") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json').then((res) => { + jsonBuilderAaiServiceInstances.basicJson( + res, + Cypress.config('baseUrl') + "/search_service_instances**", + 200, + 0, + "aai-get-service-instances") + }); + + cy.initVidMock(); + + cy.initTenants(); + + cy.login(); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it(`Soft delete button will be display also if base module is true`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + checkSoftDeleteAndDeletePopup('aa', 'vfModuleTreeNode-pendingactivation', true, true); + }); + + it(`Soft delete button not display in assigned orch status`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + checkSoftDeleteAndDeletePopup('gg', 'vfModuleTreeNode-assigned', false, true); + }); + + it(`Resume button display in orch status - pendingactivation, assigned - feature FLAG_VF_MODULE_RESUME_STATUS_CREATE - is OFF`, function () { + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/flags.json').then((res) => { + cy.server() + .route({ + method: 'GET', + delay : 0, + status : 200, + url : Cypress.config('baseUrl') + "/flags**", + response : { + "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true, + "FLAG_VF_MODULE_RESUME_STATUS_CREATE": false + } + }).as('initFlags'); + }); + + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + + checkResumeAndPopup('aa', 'vfModuleTreeNode-pendingactivation'); + checkResumeAndPopup('gg', 'vfModuleTreeNode-assigned'); + + cy.get('.vfModuleTreeNode-created') + .getElementByDataTestsId('resumeVFModuleButton-ABC').should('not.be.visible'); + cy.get('.vfModuleTreeNode-pending-delete') + .getElementByDataTestsId('resumeVFModuleButton-my_vfModule').should('not.be.visible'); + + }); + + it(`Resume button display in orch status - pendingactivation, assigned, created - feature FLAG_VF_MODULE_RESUME_STATUS_CREATE - is ON`, function () { + + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + + checkResumeAndPopup('aa', 'vfModuleTreeNode-pendingactivation'); + checkResumeAndPopup('gg', 'vfModuleTreeNode-assigned'); + checkResumeAndPopup('ABC', 'vfModuleTreeNode-created'); + + cy.get('.vfModuleTreeNode-pending-delete') + .getElementByDataTestsId('resumeVFModuleButton-my_vfModule').should('not.be.visible'); + + }); + + it(`Delete popup with not homing data from AAI`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + checkSoftDeleteAndDeletePopup('gg', 'vfModuleTreeNode-assigned', false, true); + cy.selectDropdownOptionByText('lcpRegion', 'JANET25'); + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('have.attr', 'disabled'); + cy.typeToInput("lcpRegionText", "just another region"); + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('have.attr', 'disabled'); + cy.selectDropdownOptionByText('tenant', 'USP-SIP-IC-24335-T-01'); + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('not.have.attr', 'disabled'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('have.attr', 'disabled'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria'); + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('not.have.attr', 'disabled'); + cy.getElementByDataTestsId('cancel').click({force: true}) + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('not.be.visible'); + }); + + it(`Soft delete button display with partial homing data from AAI`, function () { + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiGetHomingData.json').then((res) => { + jsonBuilderAaiServiceInstances.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_homing_by_vfmodule/c015cc0f-0f37-4488-aabf-53795fd93cd3/a231a99c-7e75-4d6d-a0fb-5c7d26f30f77", + 200, + 0, + "aai-get-homing-data") + }); + + + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + checkSoftDeleteAndDeletePopup('my_vfModule', 'vfModuleTreeNode-pending-delete', true, true); + cy.getElementByDataTestsId('lcpRegionText').should('be.visible'); + cy.getElementByDataTestsId('lcpRegion').contains('JANET25'); + cy.getElementByDataTestsId('tenant').contains('USP-SIP-IC-24335-T-01'); + }); + + it(`Soft delete button display with with homing data from AAI`, function () { + + cy.readFile('../vid-automation/src/test/resources/viewEdit/aaiHomingDataResponse.json').then((res) => { + jsonBuilderAaiServiceInstances.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_homing_by_vfmodule/0846287b-65bf-45a6-88f6-6a1af4149fac/a9b70ac0-5917-4203-a308-0e6920e6d09b", + 200, + 0, + "aai-get-homing-data") + }); + + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + checkSoftDeleteAndDeletePopup('vf_module2', 'vfModuleTreeNode-pendingcreate', true, false); + }); + + it(`Soft delete and Delete - Mega region is JANET25 - not 'olson3', 'olson5a'`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); + cy.wait('@service-complexService'); + //Delete + checkSoftDeleteAndDeletePopup('gg', 'vfModuleTreeNode-assigned', false, true); + checkLegacyRegion(); + cy.getElementByDataTestsId('cancel').click(); + //Soft delete + checkSoftDeleteAndDeletePopup('aa', 'vfModuleTreeNode-pendingactivation', true, true); + checkLegacyRegion(); + cy.getElementByDataTestsId('cancel').click(); + //Resume + cy.get('div').find('.vfModuleTreeNode-pendingactivation') + .getElementByDataTestsId('resumeVFModuleButton-aa').click().then(()=> { + checkLegacyRegion(); + }); + }); + + function checkLegacyRegion() { + checkIsLegacyRegionTextIsDisplay('JANET25', true); + checkIsLegacyRegionTextIsDisplay('olson3', false); + checkIsLegacyRegionTextIsDisplay('olson5a', false); + checkIsLegacyRegionTextIsDisplay('hvf6', false); + } + + function checkIsLegacyRegionTextIsDisplay(lcpRegionName: string, isVisible: boolean) { + const isVisibleText = isVisible ? 'be.visible' : 'not.be.visible'; + cy.selectDropdownOptionByText('lcpRegion', lcpRegionName); + cy.getElementByDataTestsId('lcpRegionText').should(isVisibleText); + + } + + function checkResumeAndPopup(vfModuleName:string, vfModuleClassName:string) { + cy.get('div').find('.' + vfModuleClassName) + .getElementByDataTestsId('resumeVFModuleButton-' + vfModuleName).click().then(()=> { + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('be.visible') + .getElementByDataTestsId('softDeleteButton').should('not.be.visible') + .getElementByDataTestsId('lcpRegion').should('be.visible') + .getElementByDataTestsId('tenant').should('be.visible') + .getElementByDataTestsId('modalTitle').contains('Instantiate') + .getElementByDataTestsId('confirmResumeDeleteButton').contains('Instantiate') + .getElementByDataTestsId('cancel').click(); + }); + } + + function checkSoftDeleteAndDeletePopup(vfModuleName:string, vfModuleClassName:string, softDeleteEnable:boolean, isNoHomingData:boolean) { + const visibleString = 'be.visible'; + const NOT = 'not.'; + const softDeleteVisibleString = (softDeleteEnable) ? visibleString : NOT + visibleString; + const isNoHomingDataVisibleString = (isNoHomingData) ? visibleString : NOT + visibleString; + cy.get('div').find('.' + vfModuleClassName) + .getElementByDataTestsId('deleteVFModuleButton-' + vfModuleName).click({force: true}).then(()=> { + cy.getElementByDataTestsId('confirmResumeDeleteButton').should('be.visible') + .getElementByDataTestsId('softDeleteButton').should(softDeleteVisibleString) + .getElementByDataTestsId('lcpRegion').should(isNoHomingDataVisibleString) + .getElementByDataTestsId('tenant').should(isNoHomingDataVisibleString); + }); + } + }); + + + + function changeServiceModel(serviceModel: ServiceModel) { + serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44"; + return serviceModel; + } +}); + diff --git a/vid-webpack-master/cypress/integration/iFrames/tenantIsolation.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/tenantIsolation.e2e.ts index 7b848ba5b..62fd86bc2 100644 --- a/vid-webpack-master/cypress/integration/iFrames/tenantIsolation.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/tenantIsolation.e2e.ts @@ -7,6 +7,10 @@ describe('Tenant isolation - Test Environments Page', function () { cy.login(); }); + afterEach(() => { + cy.screenshot(); + }); + it(`verifying proper text for the "Tenant Context" label; instead of "Select VSP"`, function () { cy.visit('/app/vid/scripts/modals/new-test-environment/new-test-environment.html'); diff --git a/vid-webpack-master/cypress/integration/iFrames/viewEdit.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/viewEdit.e2e.ts index e589b1e73..813934e30 100644 --- a/vid-webpack-master/cypress/integration/iFrames/viewEdit.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/viewEdit.e2e.ts @@ -1,10 +1,10 @@ /// / -import { JsonBuilder } from '../../support/jsonBuilders/jsonBuilder'; -import { PnfModel } from '../../support/jsonBuilders/models/pnf.model'; -import { ServiceModel } from '../../support/jsonBuilders/models/service.model'; -import { AaiServiceInstancesModel } from '../../support/jsonBuilders/models/serviceInstances.model'; -import { AAISubDetailsModel } from '../../support/jsonBuilders/models/aaiSubDetails.model'; -import { AAISubViewEditModel } from '../../support/jsonBuilders/models/aaiSubViewEdit.model'; +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {PnfModel} from '../../support/jsonBuilders/models/pnf.model'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import {AaiServiceInstancesModel} from '../../support/jsonBuilders/models/serviceInstances.model'; +import {AAISubDetailsModel} from '../../support/jsonBuilders/models/aaiSubDetails.model'; +import {AAISubViewEditModel} from '../../support/jsonBuilders/models/aaiSubViewEdit.model'; describe('View Edit Page', function () { describe('basic UI tests', () => { @@ -25,10 +25,79 @@ describe('View Edit Page', function () { "service-complexService", changeServiceModel) }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671234", + 200, 0, + "service-FabricConfig", changeFabric) + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d675678", + 200, 0, + "service-FabricConfig", changeFabric) + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d679000", + 200, 0, + "service-FabricConfig", changeFabric) + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json').then((res) => { + jsonBuilderAAIService.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671000", + 200, 0, + "service-FabricConfig", changeFabric) + }); + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json').then((res) => { jsonBuilderAAISubViewEditModel.basicJson( res, - Cypress.config('baseUrl') + "/aai_sub_viewedit/**", + Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/3f93c7cb-2fd0-4557-9514-e189b7b04f9d", + 200, + 0, + "aai-sub-view-edit") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json').then((res) => { + jsonBuilderAAISubViewEditModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61234", + 200, + 0, + "aai-sub-view-edit") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json').then((res) => { + jsonBuilderAAISubViewEditModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f65678", + 200, + 0, + "aai-sub-view-edit") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json').then((res) => { + jsonBuilderAAISubViewEditModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f69000", + 200, + 0, + "aai-sub-view-edit") + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json').then((res) => { + jsonBuilderAAISubViewEditModel.basicJson( + res, + Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61000", 200, 0, "aai-sub-view-edit") @@ -82,11 +151,16 @@ describe('View Edit Page', function () { cy.login(); }); + afterEach(() => { + cy.screenshot(); + }); it(`should display service model name and version on each info form`, function () { let typesToIncludeModel:Array = ['service', 'vnf', 'vfmodule', 'volume-group', 'network']; cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true'); cy.wait('@service-complexService'); + cy.wait('@aai_getPortMirroringConfigsDate - empty response'); + cy.get('div').contains('VOLUME GROUP: f'); // waits for the view/edit to be ready after ports' redraw typesToIncludeModel.forEach((type) => { cy.get('.' + type + '-info').click({force: true}); cy.getElementByDataTestsId("Model Version").contains('1.0'); @@ -94,8 +168,45 @@ describe('View Edit Page', function () { cy.getElementByDataTestsId("detailsCloseBtn").click(); }); }); + + it(`Check fabric configuration service with some configuration with diff orchStatus`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61234&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true'); + cy.wait('@service-FabricConfig'); + cy.get('.error-msg').should("be.visible").should('contain','Activate fabric configuration button is not available as some of the configuration objects are not in Assigned status. Check MSO logs for the reasons for this abnormal case.'); + cy.getElementByDataTestsId("activateFabricConfigurationButton").should('have.attr', 'disabled'); + cy.getElementByDataTestsId("activateButton").should("not.be.visible"); + }); + + it(`Check fabric configuration service with active status`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f65678&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true'); + cy.wait('@service-FabricConfig'); + cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible'); + cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled'); + cy.getElementByDataTestsId("deactivateButton").should("be.visible"); + }); + + it(`Check fabric configuration service with created status`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f69000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d679000&isPermitted=true'); + cy.wait('@service-FabricConfig'); + cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible'); + cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled'); + cy.getElementByDataTestsId("deactivateButton").should("be.visible"); + }); + + it(`Check fabric configuration service with pendingdeLete status`, function () { + cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671000&isPermitted=true'); + cy.wait('@service-FabricConfig'); + cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible'); + cy.getElementByDataTestsId("activateButton").should('not.have.attr', 'disabled'); + cy.getElementByDataTestsId("deactivateButton").should('have.attr', 'disabled'); + }); }); + function changeFabric(serviceModel: ServiceModel) { + serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d671234"; + return serviceModel; + } + function changeServiceModel(serviceModel: ServiceModel) { serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44"; serviceModel.vnfs = { @@ -109,7 +220,7 @@ describe('View Edit Page', function () { "inputs": {}, "commands": {}, "properties": { - "gpb2_Internal2_mac": "00:80:37:0E:02:22", + "gpb2_Internal2_mac": "00:11:22:EF:AC:DF", "sctp-b-ipv6-egress_src_start_port": "0", "sctp-a-ipv6-egress_rule_application": "any", "Internal2_allow_transit": "true", @@ -117,9 +228,9 @@ describe('View Edit Page', function () { "sctp-a-egress_rule_application": "any", "sctp-b-ingress_action": "pass", "sctp-b-ingress_rule_protocol": "icmp", - "ncb2_Internal1_mac": "00:80:37:0E:0F:12", + "ncb2_Internal1_mac": "00:11:22:EF:AC:DF", "sctp-b-ipv6-ingress-src_start_port": "0.0", - "ncb1_Internal2_mac": "00:80:37:0E:09:12", + "ncb1_Internal2_mac": "00:11:22:EF:AC:DF", "fsb_volume_size_0": "320.0", "sctp-b-egress_src_addresses": "local", "sctp-a-ipv6-ingress_ethertype": "IPv4", @@ -138,12 +249,12 @@ describe('View Edit Page', function () { "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0", "sctp-b-egress-dst_start_port": "0.0", "ncb_flavor_name": "nv.c20r64d1", - "gpb1_Internal1_mac": "00:80:37:0E:01:22", + "gpb1_Internal1_mac": "00:11:22:EF:AC:DF", "sctp-b-egress_dst_subnet_prefix_len": "0.0", - "Internal2_net_cidr": "169.255.0.0", + "Internal2_net_cidr": "10.0.0.10", "sctp-a-ingress-dst_start_port": "0.0", "sctp-a-egress-dst_start_port": "0.0", - "fsb1_Internal2_mac": "00:80:37:0E:0B:12", + "fsb1_Internal2_mac": "00:11:22:EF:AC:DF", "sctp-a-egress_ethertype": "IPv4", "vlc_st_service_mode": "in-network-nat", "sctp-a-ipv6-egress_ethertype": "IPv4", @@ -153,10 +264,10 @@ describe('View Edit Page', function () { "sctp-a-ingress-src_subnet_prefix_len": "0.0", "sctp-b-ipv6-ingress-src_end_port": "65535.0", "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group", - "fsb2_Internal1_mac": "00:80:37:0E:0D:12", + "fsb2_Internal1_mac": "00:11:22:EF:AC:DF", "sctp-a-ipv6-ingress-src_start_port": "0.0", "sctp-b-ipv6-egress_ethertype": "IPv4", - "Internal1_net_cidr": "169.253.0.0", + "Internal1_net_cidr": "10.0.0.10", "sctp-a-egress_dst_subnet_prefix": "0.0.0.0", "fsb_flavor_name": "nv.c20r64d1", "sctp_rule_protocol": "132", @@ -164,7 +275,7 @@ describe('View Edit Page', function () { "sctp-a-ipv6-ingress_rule_application": "any", "ecomp_generated_naming": "true", "sctp-a-IPv6_ethertype": "IPv6", - "vlc2_Internal1_mac": "00:80:37:0E:02:12", + "vlc2_Internal1_mac": "00:11:22:EF:AC:DF", "vlc_st_virtualization_type": "virtual-machine", "sctp-b-ingress-dst_start_port": "0.0", "sctp-b-ingress-dst_end_port": "65535.0", @@ -182,7 +293,7 @@ describe('View Edit Page', function () { "Internal2_shared": "false", "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0", "Internal2_rpf": "disable", - "vlc1_Internal1_mac": "00:80:37:0E:01:12", + "vlc1_Internal1_mac": "00:11:22:EF:AC:DF", "sctp-b-ipv6-egress_src_end_port": "65535", "sctp-a-ipv6-egress_src_addresses": "local", "sctp-a-ingress-dst_end_port": "65535.0", @@ -192,41 +303,41 @@ describe('View Edit Page', function () { "sctp-a-dst_subnet_prefix_v6": "::", "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2", "vlc_st_interface_type_gtp": "other0", - "ncb1_Internal1_mac": "00:80:37:0E:09:12", + "ncb1_Internal1_mac": "00:11:22:EF:AC:DF", "sctp-b-src_subnet_prefix_v6": "::", "sctp-a-egress_dst_subnet_prefix_len": "0.0", "int1_sec_group_name": "int1-sec-group", "Internal1_dhcp": "false", "sctp-a-ipv6-egress_dst_end_port": "65535", "Internal2_forwarding_mode": "l2", - "fsb2_Internal2_mac": "00:80:37:0E:0D:12", + "fsb2_Internal2_mac": "00:11:22:EF:AC:DF", "sctp-b-egress_dst_subnet_prefix": "0.0.0.0", "Internal1_net_cidr_len": "17", - "gpb2_Internal1_mac": "00:80:37:0E:02:22", + "gpb2_Internal1_mac": "00:11:22:EF:AC:DF", "sctp-b-ingress-src_subnet_prefix_len": "0.0", "sctp-a-ingress_dst_addresses": "local", "sctp-a-egress_action": "pass", "fsb_volume_type_0": "SF-Default-SSD", - "ncb2_Internal2_mac": "00:80:37:0E:0F:12", + "ncb2_Internal2_mac": "00:11:22:EF:AC:DF", "vlc_st_interface_type_sctp_a": "left", "vlc_st_interface_type_sctp_b": "right", "sctp-a-src_subnet_prefix_v6": "::", "vlc_st_version": "2", "sctp-b-egress_ethertype": "IPv4", "sctp-a-ingress_rule_application": "any", - "gpb1_Internal2_mac": "00:80:37:0E:01:22", + "gpb1_Internal2_mac": "00:11:22:EF:AC:DF", "instance_ip_family_v6": "v6", "sctp-a-ipv6-egress_src_start_port": "0", "sctp-b-ingress-src_start_port": "0.0", "sctp-b-ingress_dst_addresses": "local", - "fsb1_Internal1_mac": "00:80:37:0E:0B:12", + "fsb1_Internal1_mac": "00:11:22:EF:AC:DF", "vlc_st_interface_type_oam": "management", "multi_stage_design": "false", "oam_sec_group_name": "oam-sec-group", - "Internal2_net_gateway": "169.255.0.3", + "Internal2_net_gateway": "10.0.0.10", "sctp-a-ipv6-ingress-dst_end_port": "65535", "sctp-b-ipv6-egress-dst_start_port": "0", - "Internal1_net_gateway": "169.253.0.3", + "Internal1_net_gateway": "10.0.0.10", "sctp-b-ipv6-egress_rule_protocol": "any", "gtp_sec_group_name": "gtp-sec-group", "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0", @@ -248,7 +359,7 @@ describe('View Edit Page', function () { "vlc_st_service_type": "firewall", "sctp-b-ipv6-egress_dst_end_port": "65535", "sctp-b-ipv6-ingress-dst_start_port": "0", - "vlc2_Internal2_mac": "00:80:37:0E:02:12", + "vlc2_Internal2_mac": "00:11:22:EF:AC:DF", "vlc_st_availability_zone": "true", "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2", "sctp-b-ingress-src_subnet_prefix": "0.0.0.0", @@ -260,7 +371,7 @@ describe('View Edit Page', function () { "sctp-b-ipv6-ingress_dst_addresses": "local", "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0", "sctp-b-ipv6-ingress_ethertype": "IPv4", - "vlc1_Internal2_mac": "00:80:37:0E:01:12", + "vlc1_Internal2_mac": "00:11:22:EF:AC:DF", "sctp-a-ingress-src_subnet_prefix": "0.0.0.0", "sctp-a-ipv6-ingress_action": "pass", "Internal1_rpf": "disable", diff --git a/vid-webpack-master/cypress/integration/iFrames/viewOnlyDrawingBoard.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/viewOnlyDrawingBoard.e2e.ts new file mode 100644 index 000000000..d15809df5 --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/viewOnlyDrawingBoard.e2e.ts @@ -0,0 +1,315 @@ +/// +/// +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import {AsyncInstantiationModel} from "../../support/jsonBuilders/models/asyncInstantiation.model"; + +describe('View only drawing board', function () { + var jsonBuilderAndMock: JsonBuilder = new JsonBuilder(); + + var jsonBuilderInstantiationBuilder: JsonBuilder = new JsonBuilder(); + + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.initZones(); + cy.permissionVidMock(); + cy.login(); + }); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it('error should display on api error', function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json').then((res) => { + jsonBuilderInstantiationBuilder.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450", + 500, + 0, + "error 500 getServiceInstanceTopology" + ); + + cy.openIframe(`app/ui/#/servicePlanning/VIEW?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + + cy.get('div.title') + .contains('Server not available'); + + }); + }); + + it(`when open service planning in view mode service instance is shown as expected`, function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450'; + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450", + 200, + 0, + "ecompNamingFalseModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb", + 200, 0, + "initServiceInstanceTopology", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/VIEW?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + //cy.visit("welcome.htm"); //relaod page to not break the following tests + + //testing left side + cy.getElementByDataTestsId('node-2017-388_ADIOD-vPE 1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF'); + cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0').click({force: true}); + cy.getElementByDataTestsId('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M'); + + //testing right side + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF'); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').click({force: true}); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').eq(0).find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M'); + + //check vnf node tree sub header + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find("[data-tests-id='status-property-orchStatus']").should('have.text', 'Created'); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find("[data-tests-id='status-property-provStatus']").should('have.text', ''); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find("[data-tests-id='status-property-inMaint']").should('not.exist'); + + //check vf Module node tree sub header + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').find("[data-tests-id='status-property-provStatus']").eq(0).should('have.text', 'Prov Status'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').find("[data-tests-id='status-property-orchStatus']").eq(0).should('have.text', 'Active'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').find("[data-tests-id='status-property-inMaint']").eq(0).should('have.text', ''); + + cy.getElementByDataTestsId("serviceInstance").should('have.text', 'Service instance:'); + cy.getElementByDataTestsId("serviceName").should('have.text', 'mCaNkinstancename'); + cy.getElementByDataTestsId("orchStatusLabel").should('have.text', 'Orch Status:'); + cy.getElementByDataTestsId("orchStatusValue").should('have.text', 'Active'); + cy.getElementByDataTestsId("quantityLabel").should('be.visible'); + cy.getElementByDataTestsId("servicesQuantity").should('have.text', ' 1 '); + + + }); + + it(`when open service planning in view mode service instance is shown as expected - e2e with API's ServiceTreeWithMultipleChildren`, function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '6e59c5de-f052-46fa-aa7e-2fca9d674c44'; + + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceModel.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d674c44", + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb", + 200, 0, + "ServiceTreeWithMultipleChildren_serviceInstance", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/VIEW?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + + /* + 0. title area -> generic stuff + instance name + orch status + service name + */ + cy.getElementByDataTestsId("serviceInstance").should('have.text', 'Service instance:'); + cy.getElementByDataTestsId("orchStatusLabel").should('have.text', 'Orch Status:'); + cy.getElementByDataTestsId("quantityLabel").should('be.visible'); + cy.getElementByDataTestsId("servicesQuantity").should('have.text', ' 1 '); + + // specific + cy.getElementByDataTestsId("serviceName").should('have.text', 'SERVICE_INSTANCE_NAME'); + cy.getElementByDataTestsId("orchStatusValue").should('have.text', 'GARBAGE DATA'); + cy.get('span#service-model-name').should('have.text', 'ComplexService'); + + // test component info of service-level + let labelsAndValues = [ + ['Model Version', '1.0'], + ['Instance ID', 'service-instance-id'], + ['Service Type', 'service-instance-type'], + ]; + cy.assertComponentInfoTitleLabelsAndValues('Service Instance INFO', labelsAndValues); + + + // expand all + cy.get('available-models-tree').find('.toggle-children').click({ multiple: true }); + + /* + 1. Left tree -> VNF with 3 vf modules + Network + Configuration + */ + const leftShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = { + 'node-VF_vMee 0': { + 'node-type-indicator': 'VNF', + 'node-name': 'VF_vMee 0', + 'numberButton': '1', + }, + 'node-vf_vmee0..VfVmee..base_vmme..module-0': { + 'node-type-indicator': 'M', + 'node-name': 'vf_vmee0..VfVmee..base_vmme..module-0', + 'numberButton': '', + }, + 'node-vf_vmee0..VfVmee..vmme_vlc..module-1': { + 'node-type-indicator': 'M', + 'node-name': 'vf_vmee0..VfVmee..vmme_vlc..module-1', + 'numberButton': '1', + }, + 'node-vf_vmee0..VfVmee..vmme_gpb..module-2': { + 'node-type-indicator': 'M', + 'node-name': 'vf_vmee0..VfVmee..vmme_gpb..module-2', + 'numberButton': '', + }, + 'node-ExtVL 0': { + 'node-type-indicator': 'N', + 'node-name': 'ExtVL 0', + 'numberButton': '2', + }, + 'node-Port Mirroring Configuration By Policy 0': { + 'node-type-indicator': 'C', + 'node-name': 'Port Mirroring Configuration By Policy 0', + 'numberButton': '', + }, + }; + + for (let node in leftShouldHaves) { + for (let span in leftShouldHaves[node]) { + const expected = leftShouldHaves[node][span]; + cy.getElementByDataTestsId(node).find(`[data-tests-id='${span}']`).should(expected ? 'have.text' : 'not.exist', expected); + } + } + + /* + 2. Right tree -> VNF with 2 vf modules + 2 networks + IGNORE, don't check: first node, which have no Service connection + */ + const rightShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = { + 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0:0': { + 'node-type-indicator': 'VNF', + 'node-name': 'VNF2_INSTANCE_NAME', + 'status-property-orchStatus': '', + 'status-property-provStatus': '', + 'status-property-inMaint': '', + }, + 'node-undefined-dc229cd8-c132-4455-8517-5c1787c18b14:0': { + 'node-type-indicator': 'M', + 'node-name': 'ss820f_0918_base', + 'status-property-orchStatus': 'Assigned', + 'status-property-provStatus': '', + }, + 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1:0': { + 'node-type-indicator': 'M', + 'node-name': 'ss820f_0918_db', + 'status-property-orchStatus': 'deleted', + 'status-property-provStatus': '', + 'status-property-inMaint': '', + }, + 'node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0:0': { + 'node-type-indicator': 'N', + 'node-name': 'NETWORK3_INSTANCE_NAME', + 'status-property-orchStatus': 'Assigned', + 'status-property-provStatus': 'nvtprov', + }, + 'node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0:1': { + 'node-type-indicator': 'N', + 'node-name': 'NETWORK4_INSTANCE_NAME', + 'status-property-orchStatus': 'Created', + 'status-property-provStatus': 'preprov', + }, + }; + + for (let node in rightShouldHaves) { + var [nodeName, nodeEq] = node.split(":"); + for (let span in rightShouldHaves[node]) { + cy.getElementByDataTestsId(nodeName).eq(+nodeEq).find(`[data-tests-id='${span}']`).should('have.text', rightShouldHaves[node][span]); + } + } + + /* + 3. Left to right connections -> + vnf: # of instances = 1, click -> vnf selected + vf module1: # of instances = 1, click -> 1 vfmodule "ss820f_0918_db" selected + vf module2: # of instances = 0, click -> nothing + vf module3: # of instances = 0, click -> nothing + network: # of instances = 2, click -> 2 networks selected + configuration: # of instances = 0, click -> nothing + */ + const leftShouldHighlight: { [text: string]: string[] } = { + 'VF_vMee 0': ['VNF2_INSTANCE_NAME'], + 'vf_vmee0..VfVmee..base_vmme..module-0': [], + 'vf_vmee0..VfVmee..vmme_vlc..module-1': ['ss820f_0918_db'], + 'vf_vmee0..VfVmee..vmme_gpb..module-2': [], + 'ExtVL 0': ['NETWORK3_INSTANCE_NAME', 'NETWORK4_INSTANCE_NAME'], + 'Port Mirroring Configuration By Policy 0': [], + }; + + for (let text in leftShouldHighlight) { + cy.get('available-models-tree').contains(text).click(); + + cy.get('.node-content-wrapper-active').find(`[data-tests-id='node-name']`).should('have.text', text + leftShouldHighlight[text].join('')); + } + + /* + 4. Right to left connections -> + vnf: click -> vnf selected + vf module1: click -> nothing + vf module2: click -> vemme0 selected + network1: click -> network selected + network2: click -> network selected + */ + const rightShouldHighlight: { [text: string]: string[] } = { + 'VNF2_INSTANCE_NAME': ['VF_vMee 0'], + 'ss820f_0918_base': [], + 'ss820f_0918_db': ['vf_vmee0..VfVmee..vmme_vlc..module-1'], + 'NETWORK3_INSTANCE_NAME': ['ExtVL 0'], + 'NETWORK4_INSTANCE_NAME': ['ExtVL 0'], + }; + + for (let node in rightShouldHighlight) { + cy.get('drawing-board-tree').contains(node).click(); + cy.get('.node-content-wrapper-active').find(`[data-tests-id='node-name']`).should('have.text', rightShouldHighlight[node].join('') + node); + } + cy.getElementByDataTestsId('isViewOnly-status-test').contains('VIEW ONLY'); + + + /* + 5. Click outside should remove highlight from all trees. + */ + + cy.clickOutside('search-left-tree-input', ()=>{ + cy.get('.node-content-wrapper-active.node-content-wrapper-focused').should('have.length', 2) + }, ()=>{ + cy.get('.node-content-wrapper-active.node-content-wrapper-focused').should('have.length', 0); + }); + + + }); +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/vnf.popup.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/vnf.popup.e2e.ts new file mode 100644 index 000000000..98a118eea --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/vnf.popup.e2e.ts @@ -0,0 +1,1856 @@ +/// + +describe('Vnf popup', function () { + describe('basic UI tests', () => { + + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.setReduxState(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.login(); + }) + }); + + afterEach(() => { + cy.screenshot(); + }); + + it('volume group should change on instance name blur if the value is null or empty', function () { + let redux = getReduxWithVNFS(); + redux.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].properties['ecomp_generated_naming'] = 'false'; + redux.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vfModules['vf_vmee0..VfVmee..vmme_vlc..module-1']['volumeGroupAllowed'] = true; + + cy.setReduxState(redux); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44'); + + cy.getElementByDataTestsId('node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1-menu-btn').click({force: true}) + .getElementByDataTestsId('context-menu-edit').click({force: true}) + .getElementByDataTestsId('form-set').should('not.have.attr', 'disabled') + .getElementByDataTestsId("instanceName").clear() + .getElementByDataTestsId('form-set').should('have.attr', 'disabled') + .typeToInput('instanceName', 'someInput1'); + cy.getElementByDataTestsId('instanceName').blur(); + cy.getElementByDataTestsId("volumeGroupName").should('have.value', 'someInput1_vol'); + cy.getElementByDataTestsId('form-set').should('not.have.attr', 'disabled'); + cy.typeToInput('volumeGroupName', 'textAfter'); + cy.getElementByDataTestsId('form-set').click() + .get('#drawing-board-tree .toggle-children').click() + .getElementByDataTestsId('node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1-menu-btn').click({force: true}) + .getElementByDataTestsId('context-menu-edit').click({force: true}) + .getElementByDataTestsId("volumeGroupName").should('have.value', 'someInput1_voltextAfter'); + + }); + + it('should display min/max', function () { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.min_instances = 100; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.max_instances = 200; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force : true}); + cy.getElementByDataTestsId('model-item-label-vnf-min').contains('Minimum to instantiate'); + cy.getElementByDataTestsId('model-item-value-vnf-min').contains('100'); + cy.getElementByDataTestsId('model-item-label-vnf-max').contains('Maximum to instantiate'); + cy.getElementByDataTestsId('model-item-value-vnf-max').contains('200'); + }) + }); + + it('should display default values for undefined min/max', function () { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.min_instances = null; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.max_instances = null; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force : true}); + cy.getElementByDataTestsId('model-item-label-vnf-min').contains('Minimum to instantiate'); + cy.getElementByDataTestsId('model-item-value-vnf-min').contains('0'); + cy.getElementByDataTestsId('model-item-label-vnf-max').contains('Maximum to instantiate'); + cy.getElementByDataTestsId('model-item-value-vnf-max').contains('1'); + }) + }); + + it('fill all fields of vnf popup', function () { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => { + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].min = null; + res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].max = null; + cy.setReduxState(res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force : true}); + cy.selectDropdownOptionByText('productFamily', 'Emanuel'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-STTest2'); + cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1'); + cy.selectDropdownOptionByText('platform', 'xxx1'); + + }) + }); + + function getReduxWithVNFS(){ + return { + "global": { + "name": null, + "flags": { + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SHOW_VERIFY_SERVICE": false, + "FLAG_COLLECTION_RESOURCE_SUPPORT": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "CREATE_INSTANCE_TEST": false, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false, + "FLAG_ASYNC_INSTANTIATION": true, + "FLAG_ASYNC_JOBS": true, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_ADD_MSO_TESTAPI_FIELD": true + }, + "type": "[FLAGS] Update" + }, + "service": { + "serviceHierarchy": { + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "service": { + "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "ComplexService", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "ComplexService", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "VF_vMee 0": { + "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60", + "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e", + "description": "VSP_vMee", + "name": "VF_vMee", + "version": "2.0", + "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9", + "inputs": {}, + "commands": {}, + "properties": { + "max_instances" : 10, + "min_instances" : 1, + "gpb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_start_port": "0", + "sctp-a-ipv6-egress_rule_application": "any", + "Internal2_allow_transit": "true", + "sctp-b-IPv6_ethertype": "IPv6", + "sctp-a-egress_rule_application": "any", + "sctp-b-ingress_action": "pass", + "sctp-b-ingress_rule_protocol": "icmp", + "ncb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-ingress-src_start_port": "0.0", + "ncb1_Internal2_mac": "00:11:22:EF:AC:DF", + "fsb_volume_size_0": "320.0", + "sctp-b-egress_src_addresses": "local", + "sctp-a-ipv6-ingress_ethertype": "IPv4", + "sctp-a-ipv6-ingress-dst_start_port": "0", + "sctp-b-ipv6-ingress_rule_application": "any", + "domain_name": "default-domain", + "sctp-a-ingress_rule_protocol": "icmp", + "sctp-b-egress-src_start_port": "0.0", + "sctp-a-egress_src_addresses": "local", + "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group", + "sctp-a-egress-src_start_port": "0.0", + "sctp-a-ingress_ethertype": "IPv4", + "sctp-b-ipv6-ingress-dst_end_port": "65535", + "sctp-b-dst_subnet_prefix_v6": "::", + "nf_naming": "{ecomp_generated_naming=true}", + "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-b-egress-dst_start_port": "0.0", + "ncb_flavor_name": "nv.c20r64d1", + "gpb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix_len": "0.0", + "Internal2_net_cidr": "10.0.0.10", + "sctp-a-ingress-dst_start_port": "0.0", + "sctp-a-egress-dst_start_port": "0.0", + "fsb1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-egress_ethertype": "IPv4", + "vlc_st_service_mode": "in-network-nat", + "sctp-a-ipv6-egress_ethertype": "IPv4", + "sctp-a-egress-src_end_port": "65535.0", + "sctp-b-ipv6-egress_rule_application": "any", + "sctp-b-egress_action": "pass", + "sctp-a-ingress-src_subnet_prefix_len": "0.0", + "sctp-b-ipv6-ingress-src_end_port": "65535.0", + "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group", + "fsb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-a-ipv6-ingress-src_start_port": "0.0", + "sctp-b-ipv6-egress_ethertype": "IPv4", + "Internal1_net_cidr": "10.0.0.10", + "sctp-a-egress_dst_subnet_prefix": "0.0.0.0", + "fsb_flavor_name": "nv.c20r64d1", + "sctp_rule_protocol": "132", + "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_rule_application": "any", + "ecomp_generated_naming": "true", + "sctp-a-IPv6_ethertype": "IPv6", + "vlc2_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_virtualization_type": "virtual-machine", + "sctp-b-ingress-dst_start_port": "0.0", + "sctp-b-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-ingress-src_end_port": "65535.0", + "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-b-ingress_rule_application": "any", + "int2_sec_group_name": "int2-sec-group", + "vlc_flavor_name": "nd.c16r64d1", + "sctp-b-ipv6-egress_src_addresses": "local", + "vlc_st_interface_type_int1": "other1", + "sctp-b-egress-src_end_port": "65535.0", + "sctp-a-ipv6-egress-dst_start_port": "0", + "vlc_st_interface_type_int2": "other2", + "sctp-a-ipv6-egress_rule_protocol": "any", + "Internal2_shared": "false", + "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0", + "Internal2_rpf": "disable", + "vlc1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ipv6-egress_src_end_port": "65535", + "sctp-a-ipv6-egress_src_addresses": "local", + "sctp-a-ingress-dst_end_port": "65535.0", + "sctp-a-ipv6-egress_src_end_port": "65535", + "Internal1_forwarding_mode": "l2", + "Internal2_dhcp": "false", + "sctp-a-dst_subnet_prefix_v6": "::", + "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2", + "vlc_st_interface_type_gtp": "other0", + "ncb1_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-src_subnet_prefix_v6": "::", + "sctp-a-egress_dst_subnet_prefix_len": "0.0", + "int1_sec_group_name": "int1-sec-group", + "Internal1_dhcp": "false", + "sctp-a-ipv6-egress_dst_end_port": "65535", + "Internal2_forwarding_mode": "l2", + "fsb2_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-b-egress_dst_subnet_prefix": "0.0.0.0", + "Internal1_net_cidr_len": "17", + "gpb2_Internal1_mac": "00:11:22:EF:AC:DF", + "sctp-b-ingress-src_subnet_prefix_len": "0.0", + "sctp-a-ingress_dst_addresses": "local", + "sctp-a-egress_action": "pass", + "fsb_volume_type_0": "SF-Default-SSD", + "ncb2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_sctp_a": "left", + "vlc_st_interface_type_sctp_b": "right", + "sctp-a-src_subnet_prefix_v6": "::", + "vlc_st_version": "2", + "sctp-b-egress_ethertype": "IPv4", + "sctp-a-ingress_rule_application": "any", + "gpb1_Internal2_mac": "00:11:22:EF:AC:DF", + "instance_ip_family_v6": "v6", + "sctp-a-ipv6-egress_src_start_port": "0", + "sctp-b-ingress-src_start_port": "0.0", + "sctp-b-ingress_dst_addresses": "local", + "fsb1_Internal1_mac": "00:11:22:EF:AC:DF", + "vlc_st_interface_type_oam": "management", + "multi_stage_design": "false", + "oam_sec_group_name": "oam-sec-group", + "Internal2_net_gateway": "10.0.0.10", + "sctp-a-ipv6-ingress-dst_end_port": "65535", + "sctp-b-ipv6-egress-dst_start_port": "0", + "Internal1_net_gateway": "10.0.0.10", + "sctp-b-ipv6-egress_rule_protocol": "any", + "gtp_sec_group_name": "gtp-sec-group", + "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0", + "sctp-a-ipv6-ingress_dst_addresses": "local", + "sctp-a-egress_rule_protocol": "icmp", + "sctp-b-ipv6-egress_action": "pass", + "sctp-a-ipv6-egress_action": "pass", + "Internal1_shared": "false", + "sctp-b-ipv6-ingress_rule_protocol": "any", + "Internal2_net_cidr_len": "17", + "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group", + "sctp-a-ingress-src_end_port": "65535.0", + "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0", + "sctp-a-egress-dst_end_port": "65535.0", + "sctp-a-ingress_action": "pass", + "sctp-b-egress_rule_protocol": "icmp", + "sctp-b-ipv6-ingress_action": "pass", + "vlc_st_service_type": "firewall", + "sctp-b-ipv6-egress_dst_end_port": "65535", + "sctp-b-ipv6-ingress-dst_start_port": "0", + "vlc2_Internal2_mac": "00:11:22:EF:AC:DF", + "vlc_st_availability_zone": "true", + "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2", + "sctp-b-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0", + "Internal1_allow_transit": "true", + "gpb_flavor_name": "nv.c20r64d1", + "availability_zone_max_count": "1", + "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2", + "sctp-b-ipv6-ingress_dst_addresses": "local", + "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0", + "sctp-b-ipv6-ingress_ethertype": "IPv4", + "vlc1_Internal2_mac": "00:11:22:EF:AC:DF", + "sctp-a-ingress-src_subnet_prefix": "0.0.0.0", + "sctp-a-ipv6-ingress_action": "pass", + "Internal1_rpf": "disable", + "sctp-b-ingress_ethertype": "IPv4", + "sctp-b-egress_rule_application": "any", + "sctp-b-ingress-src_end_port": "65535.0", + "sctp-a-ipv6-ingress_rule_protocol": "any", + "sctp-a-ingress-src_start_port": "0.0", + "sctp-b-egress-dst_end_port": "65535.0" + }, + "type": "VF", + "modelCustomizationName": "VF_vMee 0", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": { + "Port Mirroring Configuration By Policy 0": { + "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50", + "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "27.0", + "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 0", + "sourceNodes": [], + "collectorNodes": null, + "configurationByPolicy": false + } + }, + "serviceProxies": {}, + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091", + "description": null, + "name": "VfVmee..vmme_vlc..module-1", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_vlc" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..vmme_gpb..module-2": { + "uuid": "41708296-e443-4c71-953f-d9a010f059e1", + "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9", + "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "description": null, + "name": "VfVmee..vmme_gpb..module-2", + "version": "2", + "modelCustomizationName": "VfVmee..vmme_gpb..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "vmme_gpb" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "vf_vmee0..VfVmee..base_vmme..module-0": { + "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d", + "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "description": null, + "name": "VfVmee..base_vmme..module-0", + "version": "2", + "modelCustomizationName": "VfVmee..base_vmme..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vmme" + }, + "inputs": {} + } + }, + "pnfs": {} + } + }, + "serviceInstance": { + "6e59c5de-f052-46fa-aa7e-2fca9d674c44": { + "vnfs": { + "VF_vMee 0": { + "originalName": "VF_vMee 0", + "rollbackOnFailure": "true", + "vfModules": { + "vf_vmee0..VfVmee..vmme_vlc..module-1": { + "vf_vmee0..VfVmee..vmme_vlc..module-1dcudx": { + "modelInfo": { + "modelInvariantId": "98a7c88b-b577-476a-90e4-e25a5871e02b", + "modelVersionId": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "modelName": "VfVmee..vmme_vlc..module-1", + "modelVersion": "2", + "modelCustomizationId": "55b1be94-671a-403e-a26c-667e9c47d091", + "modelCustomizationName": "VfVmee..vmme_vlc..module-1" + }, + "isMissingData": false, + "instanceParams": [ + {} + ] + } + } + }, + "isMissingData": false, + "modelName": "VF_vMee 0", + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "lcpCloudRegionId": "hvf6", + "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", + "lineOfBusiness": "zzz1", + "platformName": "platform", + "modelInfo": { + "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e", + "modelVersionId": "d6557200-ecf2-4641-8094-5393ae3aae60", + "modelName": "VF_vMee", + "modelVersion": "2.0", + "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9", + "modelCustomizationName": "VF_vMee 0" + } + } + }, + "instanceParams": [ + {} + ], + "validationCounter": 0, + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "hvf6", + "tenantId": "1178612d2b394be4834ad77f567c0af2", + "aicZoneId": "YYY1", + "projectName": "yyy1", + "owningEntityId": "aaa1", + "rollbackOnFailure": "true", + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + "modelName": "ComplexService", + "modelVersion": "1.0" + }, + "existingVNFCounterMap": { + "91415b44-753d-494c-926a-456a9172bbb9": 1 + }, + "existingNames": {}, + "existingNetworksCounterMap" : {}, + "tenantName": "AIN Web Tool-15-D-SSPtestcustome", + "aicZoneName": "UUUAIAAI-YYY1" + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "JANET25", + "name": "JANET25 (AIC)", + "cloudOwner" : "irma-aic", + "isPermitted": true + }, + { + "id": "hvf6", + "name": "hvf6 (AIC)", + "cloudOwner" : "irma-aic", + "isPermitted": true + } + ], + "lcpRegionsTenantsMap": { + "JANET25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true + } + ] + } + }, + "subscribers": [ + { + "id": "CAR_2020_ER", + "name": "CAR_2020_ER", + "isPermitted": true + }, + { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-2", + "name": "DALE BRIDGES", + "isPermitted": false + }, + { + "id": "DHV1707-TestSubscriber-1", + "name": "LLOYD BRIDGES", + "isPermitted": false + }, + { + "id": "jimmy-example", + "name": "JimmyExampleCust-20161102", + "isPermitted": false + }, + { + "id": "jimmy-example2", + "name": "JimmyExampleCust-20161103", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-102", + "name": "ERICA5779-TestSub-PWT-102", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-101", + "name": "ERICA5779-TestSub-PWT-101", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-4", + "name": "ERICA5779-Subscriber-5", + "isPermitted": false + }, + { + "id": "ERICA5779-TestSub-PWT-103", + "name": "ERICA5779-TestSub-PWT-103", + "isPermitted": false + }, + { + "id": "ERICA5779-Subscriber-2", + "name": "ERICA5779-Subscriber-2", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + }, + { + "id": "ERICA5779-Subscriber-3", + "name": "ERICA5779-Subscriber-3", + "isPermitted": false + }, + { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "SCOTTIE", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "Cisneros", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "Josefina", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vSCP", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vMMSC", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "BAN1", + "name": "VSDKYUTP-BAN1" + }, + { + "id": "DKJ1", + "name": "DKJSJDKA-DKJ1" + }, + { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, + { + "id": "UIO1", + "name": "uioclli1-UIO1" + }, + { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, + { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, + { + "id": "SDE1", + "name": "ZXCVBNMA-SDE1" + }, + { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, + { + "id": "ORL1", + "name": "ORLDFLMA-ORL1" + }, + { + "id": "JAD1", + "name": "JADECLLI-JAD1" + }, + { + "id": "ZXL1", + "name": "LWLWCANN-ZXL1" + }, + { + "id": "CKL1", + "name": "CLKSKCKK-CKL1" + }, + { + "id": "SDF1", + "name": "sdfclli1-SDF1" + }, + { + "id": "RAD1", + "name": "RADICAL1-RAD1" + }, + { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, + { + "id": "REL1", + "name": "INGERFGT-REL1" + }, + { + "id": "JNL1", + "name": "CJALSDAC-JNL1" + }, + { + "id": "OLK1", + "name": "OLKOLKLS-OLK1" + }, + { + "id": "CHI1", + "name": "CHILLIWE-CHI1" + }, + { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, + { + "id": "TUF1", + "name": "TUFCLLI1-TUF1" + }, + { + "id": "KJN1", + "name": "CKALDKSA-KJN1" + }, + { + "id": "SAM1", + "name": "SNDGCA64-SAN1" + }, + { + "id": "SCK1", + "name": "SCKSCKSK-SCK1" + }, + { + "id": "HJH1", + "name": "AOEEQQQD-HJH1" + }, + { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, + { + "id": "KOR1", + "name": "HYFLNBVT-KOR1" + }, + { + "id": "ATL43", + "name": "AICLOCID-ATL43" + }, + { + "id": "ATL54", + "name": "AICFTAAI-ATL54" + }, + { + "id": "ATL66", + "name": "CLLIAAII-ATL66" + }, + { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, + { + "id": "ICC1", + "name": "SANJITAT-ICC1" + }, + { + "id": "MNT11", + "name": "WSXEFBTH-MNT11" + }, + { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, + { + "id": "MAD11", + "name": "SDFQWGKL-MAD11" + }, + { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, + { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, + { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, + { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, + { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, + { + "id": "DHA12", + "name": "WSXEDECF-DHA12" + }, + { + "id": "HJE1", + "name": "AOEEWWWD-HJE1" + }, + { + "id": "NCA1", + "name": "NCANCANN-NCA1" + }, + { + "id": "IOP1", + "name": "iopclli1-IOP1" + }, + { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, + { + "id": "KAP1", + "name": "HIOUYTRQ-KAP1" + }, + { + "id": "ZEN1", + "name": "ZENCLLI1-ZEN1" + }, + { + "id": "HKA1", + "name": "JAKHLASS-HKA1" + }, + { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, + { + "id": "SAI1", + "name": "UBEKQLPD-SAI1" + }, + { + "id": "ERT1", + "name": "ertclli1-ERT1" + }, + { + "id": "IBB1", + "name": "PLMKOIJU-IBB1" + }, + { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, + { + "id": "HSD1", + "name": "CHASKCDS-HSD1" + }, + { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, + { + "id": "SEE78", + "name": "SDCTEEE4-SEE78" + }, + { + "id": "SAN13", + "name": "TOKYJPFA-SAN13" + }, + { + "id": "SAA78", + "name": "SDCTAAA1-SAA78" + }, + { + "id": "LUC1", + "name": "ATLDFGYC-LUC1" + }, + { + "id": "AMD13", + "name": "MEMATLAN-AMD13" + }, + { + "id": "TOR1", + "name": "TOROONXN-TOR1" + }, + { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, + { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, + { + "id": "CAL33", + "name": "CALIFORN-CAL33" + }, + { + "id": "SHH78", + "name": "SDIT1HHH-SHH78" + }, + { + "id": "DSA1", + "name": "LKJHGFDS-DSA1" + }, + { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, + { + "id": "BNA1", + "name": "BNARAGBK-BNA1" + }, + { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, + { + "id": "APP1", + "name": "WBHGTYUI-APP1" + }, + { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, + { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, + { + "id": "mac10", + "name": "PKGTESTF-mac10" + }, + { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, + { + "id": "SAX78", + "name": "SDCTAXG1-SAX78" + }, + { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, + { + "id": "TOK1", + "name": "TOKYJPFA-TOK1" + }, + { + "id": "KGM2", + "name": "KGMTNC20-KGM2" + }, + { + "id": "DCC1b", + "name": "POIUYTGH-DCC1b" + }, + { + "id": "SKK78", + "name": "SDCTKKK1-SKK78" + }, + { + "id": "SGG78", + "name": "SDCTGGG1-SGG78" + }, + { + "id": "SJJ78", + "name": "SDCTJJJ1-SJJ78" + }, + { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, + { + "id": "LAG1", + "name": "LARGIZON-LAG1" + }, + { + "id": "IAA1", + "name": "QAZXSWED-IAA1" + }, + { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, + { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, + { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, + { + "id": "LAG45", + "name": "LARGIZON-LAG1a" + }, + { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, + { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, + { + "id": "DCC1a", + "name": "POIUYTGH-DCC1a" + }, + { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, + { + "id": "LON1", + "name": "LONEENCO-LON1" + }, + { + "id": "SJU78", + "name": "SDIT1JUB-SJU78" + }, + { + "id": "STN27", + "name": "HSTNTX01-STN27" + }, + { + "id": "SSW56", + "name": "ss8126GT-SSW56" + }, + { + "id": "SBB78", + "name": "SDIT1BBB-SBB78" + }, + { + "id": "DCC3", + "name": "POIUYTGH-DCC3" + }, + { + "id": "GNV1", + "name": "GNVLSCTL-GNV1" + }, + { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, + { + "id": "TOY1", + "name": "TORYONNZ-TOY1" + }, + { + "id": "STT1", + "name": "STTLWA02-STT1" + }, + { + "id": "STG1", + "name": "STTGGE62-STG1" + }, + { + "id": "SLL78", + "name": "SDCTLLL1-SLL78" + }, + { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, + { + "id": "ATL2", + "name": "ATLNGANW-ATL2" + }, + { + "id": "BOT1", + "name": "BOTHWAKY-BOT1" + }, + { + "id": "SNG1", + "name": "SNGPSIAU-SNG1" + }, + { + "id": "NYC1", + "name": "NYCMNY54-NYC1" + }, + { + "id": "LAG1b", + "name": "LARGIZON-LAG1b" + }, + { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, + { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, + { + "id": "PLT1", + "name": "PLTNCA60-PLT1" + }, + { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, + { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, + { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, + { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, + { + "id": "OKC1", + "name": "OKCBOK55-OKC1" + }, + { + "id": "PAR1", + "name": "PARSFRCG-PAR1" + }, + { + "id": "TES36", + "name": "ABCEETES-TES36" + }, + { + "id": "COM1", + "name": "PLMKOPIU-COM1" + }, + { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, + { + "id": "SDG78", + "name": "SDIT1BDG-SDG78" + }, + { + "id": "mac20", + "name": "PKGTESTF-mac20" + }, + { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, + { + "id": "HST25", + "name": "HSTNTX01-HST25" + }, + { + "id": "AMD18", + "name": "AUDIMA01-AMD18" + }, + { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, + { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, + { + "id": "SDD82", + "name": "SAIT1DD9-SDD82" + }, + { + "id": "JCV1", + "name": "JCVLFLBW-JCV1" + }, + { + "id": "SUL2", + "name": "WERTYUJK-SUL2" + }, + { + "id": "PUR1", + "name": "purelyde-PUR1" + }, + { + "id": "FDE55", + "name": "FDERT555-FDE55" + }, + { + "id": "SITE", + "name": "LONEENCO-SITE" + }, + { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, + { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, + { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, + { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, + { + "id": "RAI1", + "name": "poiuytre-RAI1" + }, + { + "id": "HPO1", + "name": "ATLNGAUP-HPO1" + }, + { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, + { + "id": "SCC80", + "name": "SAIT9CC3-SCC80" + }, + { + "id": "SAA12", + "name": "SAIT9AF8-SAA12" + }, + { + "id": "SAA14", + "name": "SAIT1AA9-SAA14" + }, + { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, + { + "id": "CWY1", + "name": "CWYMOWBS-CWY1" + }, + { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, + { + "id": "DSL12", + "name": "DSLFK242-DSL12" + }, + { + "id": "ATL53", + "name": "AAIATLTE-ATL53" + }, + { + "id": "SAA11", + "name": "SAIT9AA2-SAA11" + }, + { + "id": "ATL62", + "name": "TESSASCH-ATL62" + }, + { + "id": "AUG1", + "name": "ASDFGHJK-AUG1" + }, + { + "id": "POI22", + "name": "POIUY123-POI22" + }, + { + "id": "SAA13", + "name": "SAIT1AA9-SAA13" + }, + { + "id": "BHY17", + "name": "BHYTFRF3-BHY17" + }, + { + "id": "LIS1", + "name": "HOSTPROF-LIS1" + }, + { + "id": "SIP1", + "name": "ZXCVBNMK-SIP1" + }, + { + "id": "ATL99", + "name": "TEESTAAI-ATL43" + }, + { + "id": "ATL64", + "name": "FORLOAAJ-ATL64" + }, + { + "id": "TAT33", + "name": "TESAAISA-TAT33" + }, + { + "id": "RAD10", + "name": "INDIPUNE-RAD10" + }, + { + "id": "RTW5", + "name": "BHYTFRY4-RTW5" + }, + { + "id": "JGS1", + "name": "KSJKKKKK-JGS1" + }, + { + "id": "ATL98", + "name": "TEESTAAI-ATL43" + }, + { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, + { + "id": "ATL44", + "name": "ATLSANAB-ATL44" + }, + { + "id": "RTD2", + "name": "BHYTFRk4-RTD2" + }, + { + "id": "NIR1", + "name": "ORFLMANA-NIR1" + }, + { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, + { + "id": "NUM1", + "name": "QWERTYUI-NUM1" + }, + { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, + { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, + { + "id": "ATL56", + "name": "ATLSANAC-ATL56" + }, + { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, + { + "id": "RCT1", + "name": "AMSTERNL-RCT1" + }, + { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, + { + "id": "ABC14", + "name": "TESAAISA-ABC14" + }, + { + "id": "TAT37", + "name": "TESAAISD-TAT37" + }, + { + "id": "MIC54", + "name": "MICHIGAN-MIC54" + }, + { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, + { + "id": "AMF11", + "name": "AMDOCS01-AMF11" + }, + { + "id": "ATL63", + "name": "ATLSANEW-ATL63" + }, + { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, + { + "id": "MTN20", + "name": "MDTWNJ21-MTN20" + }, + { + "id": "ABC15", + "name": "AAITESAN-ABC15" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "[PRODUCT_FAMILIES] Update" + } + } + } + + }); +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/vnfGroups.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/vnfGroups.e2e.ts new file mode 100644 index 000000000..5db0c751d --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/vnfGroups.e2e.ts @@ -0,0 +1,890 @@ +/// +import {ServiceModel} from '../../support/jsonBuilders/models/service.model'; +import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder'; + +describe('Vnf Groups', function () { + var jsonBuilderAndMock: JsonBuilder = new JsonBuilder(); + + beforeEach(() => { + cy.window().then((win) => { + win.sessionStorage.clear(); + cy.setReduxState(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.permissionVidMock(); + cy.setTestApiParamToVNF(); + cy.login(); + }); + }); + + afterEach(() => { + cy.screenshot(); + }); + + describe('Vnf Group model basic view', function () { + + it('Vnf group open new view edit', function () { + const instanceName: string = 'ABC'; + const groupName = 'groupingservicefortest..ResourceInstanceGroup..0'; + const nodeId = 'daeb6568-cef8-417f-9075-ed259ce59f48'; + const serviceId = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + "/rest/models/services/" + serviceId, + 200, + 0, + "ServiceWithVnfGroup", + ); + + cy.buildReduxStateWithServiceRespone(res, serviceId, false); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=' + serviceId); + cy.getElementByDataTestsId('node-' + groupName).find(`[data-tests-id='node-type-indicator']`).contains('G'); + cy.getElementByDataTestsId('node-' + groupName).contains('' + groupName); + cy.getElementByDataTestsId('node-' + groupName + '-add-btn').get('i').should('have.class', 'fa-plus-circle'); + cy.getElementByDataTestsId('node-' + groupName + '-add-btn').click({force: true}); + cy.getElementByDataTestsId('instanceName').clear(); + cy.typeToInput('instanceName', instanceName); + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + cy.getElementByDataTestsId('numberButton').contains('1'); + cy.getElementByDataTestsId('node-' + nodeId + '-' + groupName).contains(instanceName); + cy.getElementByDataTestsId('node-' + nodeId + '-' + groupName + '-menu-btn') + .click({force: true}); + cy.getElementByDataTestsId('context-menu-edit').click(); + cy.getElementByDataTestsId('instanceName').clear(); + cy.typeToInput('instanceName', instanceName + instanceName); + cy.getElementByDataTestsId('form-set').click({force: true}).then(() => { + cy.getElementByDataTestsId('node-' + nodeId + '-' + groupName + '-menu-btn').click({force: true}) + .getElementByDataTestsId('context-menu-remove').click(); + }); + }); + }); + }); + + it('Create new service with vnf group', () => { + + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + const GROUP_NAME_TO_DEPLOY = 'groupingservicefortest..ResourceInstanceGroup..1'; + const NODE_ID = 'c2b300e6-45de-4e5e-abda-3032bee2de56'; + let serviceModel: JSON; + let basicServiceInstance: JSON; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + serviceModel = res; + }); + + cy.readFile('./cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json').then((res) => { + basicServiceInstance = res; + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((reduxRes) => { + + reduxRes.service.serviceHierarchy[SERVICE_MODEL_ID] = serviceModel; + reduxRes.service.serviceInstance[SERVICE_MODEL_ID] = basicServiceInstance; + + cy.setReduxState(reduxRes); + + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=' + SERVICE_MODEL_ID); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY).find(`[data-tests-id='node-type-indicator']`).contains('G'); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY).contains('' + GROUP_NAME_TO_DEPLOY); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY + '-add-btn').get('i').should('have.class', 'fa-plus-circle'); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY + '-add-btn').click({force: true}); + cy.getElementByDataTestsId('node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY + '-menu-btn') + .click({force: true}); + cy.getElementByDataTestsId('context-menu-edit').click(); + cy.getElementByDataTestsId('instanceName').clear(); + cy.typeToInput('instanceName', "ABC"); + cy.getElementByDataTestsId('form-set').click({force: true}); + cy.getElementByDataTestsId('deployBtn').should('have.text', 'DEPLOY').click(); + cy.getElementByDataTestsId('isViewOnly-status-test').contains('IN DESIGN'); + cy.getReduxState().then((state) => { + const vnfGroup = state.service.serviceInstance[SERVICE_MODEL_ID].vnfGroups[GROUP_NAME_TO_DEPLOY]; + + cy.wait('@expectedPostAsyncInstantiation').then(xhr => { + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupCreateRequest.json').then((expectedResult) => { + expectedResult.vnfGroups[GROUP_NAME_TO_DEPLOY].trackById = vnfGroup.trackById; + cy.deepCompare(xhr.request.body, expectedResult); + }); + }); + }); + + }); + + }); + + it('Delete vnf group with members', () => { + cy.initSearchVNFMemebers(); + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + let serviceModel: JSON; + let basicServiceInstance: JSON; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + serviceModel = res; + }); + + cy.readFile('./cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json').then((res) => { + basicServiceInstance = res; + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((reduxRes) => { + + reduxRes.service.serviceHierarchy[SERVICE_MODEL_ID] = serviceModel; + reduxRes.service.serviceInstance[SERVICE_MODEL_ID] = basicServiceInstance; + + cy.setReduxState(reduxRes); + + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=' + SERVICE_MODEL_ID); + cy.getElementByDataTestsId('node-groupingservicefortest..ResourceInstanceGroup..0-add-btn').click({force: true}); + removeVnfGroup(); + cy.getElementByDataTestsId('node-groupingservicefortest..ResourceInstanceGroup..0-add-btn').click({force: true}); + cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn') + .click({force: true}); + cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => { + cy.get('.allCheckboxAreSelected input').click({force: true}); + cy.getElementByDataTestsId('setMembersBtn').click({force: true}) + }); + cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0').click({force: true}); + removeVnfGroup(); + cy.getElementByDataTestsId('button-remove-group').click({force: true}); + cy.get('#model-actions').should('not.exist'); + + }); + + }); + + it('Vnf group edit mode delete empty service instance', () => { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + let expectedResult: JSON; + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceWithVnfGrouping_serviceModel", + ); + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroping_serviceInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroping_serviceInstance", + ) + }); + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/ServiceWithVnfGroupsDeleteRequest.json').then((res) => { + expectedResult = res; + }); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + cy.getElementByDataTestsId('openMenuBtn').click(); + cy.getElementByDataTestsId('context-menu-header-delete-item').should('have.text', 'Delete'); + cy.getElementByDataTestsId('context-menu-header-delete-item').click(); + cy.getElementByDataTestsId('serviceName').should('have.css', 'text-decoration'); + cy.getElementByDataTestsId('openMenuBtn').click(); + cy.getElementByDataTestsId('context-menu-header-delete-item').should('have.text', 'Undo delete'); + cy.getElementByDataTestsId('deployBtn').should('have.text', 'UPDATE').click(); + + cy.wait('@expectedPostAsyncInstantiation').then(xhr => { + cy.deepCompare(xhr.request.body, expectedResult); + + }); + }); + + it('Delete service with two vnf groups', () => { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + let expectedResult: JSON; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroupsChildren_serviceInstance", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/deleteServiceWith2VnfGroupsRequest_AndThreeGroupMembers.json').then((expectedResult) => { + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + cy.getElementByDataTestsId('openMenuBtn').click(); + cy.getElementByDataTestsId('context-menu-header-delete-item').should('have.text', 'Delete').click(); + cy.getElementByDataTestsId('deployBtn').should('have.text', 'UPDATE').click(); + cy.wait('@expectedPostAsyncInstantiation').then(xhr => { + cy.deepCompare(xhr.request.body, expectedResult); + }); + }); + }); + + it(`when open service with group in EDIT mode, service instance is shown as expected - e2e with input and output API's tests"`, function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroupsChildren_serviceInstance", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`); + + /* + 0. title area -> generic stuff + instance name + orch status + service name + */ + cy.getElementByDataTestsId("serviceInstance").should('have.text', 'Service instance:'); + cy.getElementByDataTestsId("orchStatusLabel").should('have.text', 'Orch Status:'); + // ERROR! cy.getElementByDataTestsId("quantityLabel").should('not.be.visible'); + // ERROR! cy.getElementByDataTestsId("servicesQuantity").should('not.be.visible'); + + // specific + cy.getElementByDataTestsId("serviceName").should('have.text', 'SERVICE_INSTANCE_NAME'); + cy.getElementByDataTestsId("orchStatusValue").should('have.text', 'GARBAGE DATA'); + cy.get('span#service-model-name').contains('Grouping Service for Test'); + + // no need to expand anything + cy.get('available-models-tree').find('.toggle-children').should('not.exist'); + + /* + 1. Left tree + */ + const leftShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = { + 'node-groupingservicefortest..ResourceInstanceGroup..0': { + 'node-type-indicator': 'G', + 'node-name': 'groupingservicefortest..ResourceInstanceGroup..0', + 'numberButton': '2', + }, + 'node-groupingservicefortest..ResourceInstanceGroup..1': { + 'node-type-indicator': 'G', + 'node-name': 'groupingservicefortest..ResourceInstanceGroup..1', + 'numberButton': '', + }, + }; + cy.getElementByDataTestsId('search-left-tree-input').type('group'); + for (let node in leftShouldHaves) { + cy.getElementByDataTestsId(node).find(`[data-tests-id= '${'node-name'}']`).find('.highlight').eq(0).should('have.text', 'group'); + + for (let span in leftShouldHaves[node]) { + const expected = leftShouldHaves[node][span]; + cy.getElementByDataTestsId(node).find(`[data-tests-id='${span}']`).should(expected ? 'have.text' : 'not.exist', expected); + } + } + + + /* + 2. Right tree + */ + const rightShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = { + 'node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0:0': { + 'node-type-indicator': 'G', + 'node-name': 'VNF_GROUP1_INSTANCE_NAME', + 'status-property-orchStatus': '', + 'status-property-provStatus': '', + // 'status-property-inMaint': '', not exists for false in maint + }, + 'node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0:1': { + 'node-type-indicator': 'G', + 'node-name': 'VNF_GROUP2_INSTANCE_NAME', + 'status-property-orchStatus': '', + 'status-property-provStatus': '', + // 'status-property-inMaint': 'false', + }, + }; + cy.getElementByDataTestsId('search-right-tree-input').type('vnf'); + + for (let node in rightShouldHaves) { + var [nodeName, nodeEq] = node.split(":"); + for (let span in rightShouldHaves[node]) { + cy.getElementByDataTestsId(nodeName).eq(+nodeEq).find(`[data-tests-id='${span}']`).should('have.text', rightShouldHaves[node][span]); + cy.getElementByDataTestsId(nodeName).eq(+nodeEq).find(`[data-tests-id= '${'node-name'}']`).find('.highlight').eq(0).should('have.text', 'VNF'); + + } + } + + /* + 3. Left to right connections + */ + const leftShouldHighlight: { [text: string]: string[] } = { + 'groupingservicefortest..ResourceInstanceGroup..0': ['VNF_GROUP1_INSTANCE_NAME', 'VNF_GROUP2_INSTANCE_NAME'], + 'groupingservicefortest..ResourceInstanceGroup..1': [], + }; + + for (let text in leftShouldHighlight) { + cy.get('available-models-tree').contains(text).click(); + cy.get('.node-content-wrapper-active').find(`[data-tests-id='node-name']`).should('have.text', text + leftShouldHighlight[text].join('')); + } + + /* + 4. Right to left connections + */ + const rightShouldHighlight: { [text: string]: string[] } = { + 'VNF_GROUP1_INSTANCE_NAME': ['groupingservicefortest..ResourceInstanceGroup..0'], + 'VNF_GROUP2_INSTANCE_NAME': ['groupingservicefortest..ResourceInstanceGroup..0'], + }; + + for (let node in rightShouldHighlight) { + cy.get('drawing-board-tree').contains(node).click(); + cy.get('.node-content-wrapper-active').find(`[data-tests-id='node-name']`).should('have.text', rightShouldHighlight[node].join('') + node); + } + + /* + Menus + */ + // SETUP: delete one group on the right; add one group from the left + const myNode = 'node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0'; + + cy.getElementByDataTestsId(`${myNode}-menu-btn`).eq(0).click({force: true}) + .getElementByDataTestsId('context-menu-delete').click(); + + cy.getElementByDataTestsId('node-groupingservicefortest..ResourceInstanceGroup..0-add-btn').click({force: true}); + cy.getElementByDataTestsId(`${myNode}-menu-btn`).eq(2).click({force: true}) + .getElementByDataTestsId('context-menu-edit').click(); + cy.getElementByDataTestsId('instanceName').clear(); + cy.typeToInput('instanceName', 'VNF_GROUP3_INSTANCE_NAME'); + cy.getElementByDataTestsId('form-set').click({force: true}); + + // TEST: + // #2 is just added + // #1 is from AAI + // #0 is deleted + const menuShouldHave: { [text: string]: string[] } = { + [`${myNode}-menu-btn:2`]: ['remove', 'addGroupMember'], + [`${myNode}-menu-btn:1`]: ['showAuditInfo', 'addGroupMember', 'delete'], + [`${myNode}-menu-btn:0`]: ['showAuditInfo', 'undoDelete'], + }; + + for (let node in menuShouldHave) { + const [nodeName, nodeEq] = node.split(":"); + let enabledActions:string[] = menuShouldHave[node]; + cy.assertMenuItemsForNode(enabledActions, nodeName, +nodeEq); + } + + const GROUP_NAME_TO_DEPLOY: string = 'groupingservicefortest..ResourceInstanceGroup..0'; + cy.getElementByDataTestsId('deployBtn').should('have.text', 'UPDATE').click(); + + cy.getReduxState().then((state) => { + const addedVnfGroup = state.service.serviceInstance[SERVICE_MODEL_ID].vnfGroups[GROUP_NAME_TO_DEPLOY]; + + cy.wait('@expectedPostAsyncInstantiation').then(xhr => { + cy.readFile('../vid-automation/src/test/resources/VnfGroup/VnfGroupCreate1Delete1None1Request.json').then((expectedResult) => { + expectedResult.vnfGroups[GROUP_NAME_TO_DEPLOY].trackById = addedVnfGroup.trackById; + cy.deepCompare(xhr.request.body, expectedResult); + }); + }); + }); + }); + + it(`vnf group with vnf members should display correctly and should have delete option"`, function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroupsChildren_serviceInstance", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&mode=EDIT`); + cy.getElementByDataTestsId('deployBtn').should('have.attr', 'disabled'); + cy.get('#VnfGroup_VNF .icon-browse').eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-delete').click({force: true}); + cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + + cy.get('#VnfGroup_VNF .icon-browse').eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-undoDelete').click({force: true}); + cy.getElementByDataTestsId('deployBtn').should('have.attr', 'disabled'); + }); + }); + + + cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn') + .eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-delete').click({force: true}); + cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + }) + }); + + it('Delete 2 from 3 VNF members and check request body of deploy', function () { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json').then((res) => { + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroupsChildren_serviceInstance", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&mode=EDIT`); + cy.getElementByDataTestsId('deployBtn').should('have.attr', 'disabled'); + + for (let index = 0; index < 2; index++) { + cy.get('#VnfGroup_VNF .icon-browse').eq(index).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-delete').click({force: true}); + cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled'); + }); + } + + cy.getElementByDataTestsId('deployBtn').should('have.text', 'UPDATE').click(); + + cy.wait('@expectedPostAsyncInstantiation').then(xhr => { + cy.readFile('../vid-automation/src/test/resources/VnfGroup/payloadTemplate1VnfGroupWith3MembersRequest.json').then((expectedResult) => { + expectedResult.vnfGroups.VNF_GROUP1_INSTANCE_ID.action = 'None'; + expectedResult.vnfGroups.VNF_GROUP1_INSTANCE_ID.vnfs.RELATED_VNF1_INSTANCE_ID.action = 'None_Delete'; + expectedResult.vnfGroups.VNF_GROUP1_INSTANCE_ID.vnfs.RELATED_VNF2_INSTANCE_ID.action = 'None_Delete'; + cy.deepCompare(xhr.request.body, expectedResult); + }); + }); + }); + + it(`vnf group with vnf members, add group members option open modal"`, () => { + const SUBSCRIBER_ID: string = "global-customer-id"; + const SERVICE_TYPE: string = "service-instance-type"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + const SERVICE_INVARIANT_ID: string = '24632e6b-584b-4f45-80d4-fefd75fd9f14'; + const GROUP_ROLE: string = 'SERVICE-ACCESS'; + const GROUP_TYPE: string = 'LOAD-GROUP'; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json').then((res) => { + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroupsChildren_serviceInstance", + ) + }); + cy.readFile('../vid-automation/src/test/resources/VnfGroup/searchMembersResponse.json').then((res) => { + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_search_group_members/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INVARIANT_ID}/${GROUP_TYPE}/${GROUP_ROLE}`, + 200, 0, + "VnfGroup_searchMembersResponse", + ) + }); + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&mode=EDIT`); + + cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn') + .eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => { + cy.getElementByDataTestsId('sourceModelName').contains("vDBE_Svc_vPRS"); + cy.getElementByDataTestsId('sourceModelInvariant').contains("24632e6b-584b-4f45-80d4-fefd75fd9f14"); + cy.get('#vnfName').eq(0).get('#VNF1_INSTANCE_NAME').contains('VNF1_INSTANCE_NAME'); + cy.get('#vnfName').eq(0).get('#VNF1_INSTANCE_ID').contains('VNF1_INSTANCE_ID'); + cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria'); + cy.getElementByDataTestsId('total-selected').should('have.text', '0 VNF selected'); + cy.getElementByDataTestsId('setMembersBtn').should('have.attr', 'disabled'); + testCheckbox(); + testResetAddMemberModal(); + testUpdateBtn(); + + }); + }); + }); + + it(`vnf group add member get optional members return empty table"`, () => { + const SUBSCRIBER_ID: string = "global-customer-id"; + const SERVICE_TYPE: string = "service-instance-type"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + const SERVICE_INVARIANT_ID: string = '24632e6b-584b-4f45-80d4-fefd75fd9f14'; + const GROUP_ROLE: string = 'SERVICE-ACCESS'; + const GROUP_TYPE: string = 'LOAD-GROUP'; + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json').then((res) => { + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroupsChildren_serviceInstance", + ) + }); + cy.server() + .route({ + method: 'GET', + status: 200, + url: Cypress.config('baseUrl') + `/aai_search_group_members/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INVARIANT_ID}/${GROUP_TYPE}/${GROUP_ROLE}`, + response: [] + }).as('VnfGroup_searchMembersResponse'); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&mode=EDIT`); + + cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn') + .eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => { + cy.getElementByDataTestsId('total-amount').should('have.text', '0 VNFs match your criteria'); + cy.getElementByDataTestsId('total-selected').should('have.text', '0 VNF selected'); + cy.get('.no-result').should('have.text', 'No VNFs were found that can belong to this group.'); + }); + }) + }); + + it('Check scaling policy - in Create new service mode', () => { + const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89"; + const SERVICE_TYPE: string = "TYLER SILVIA"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + const SERVICE_INVARIANT_ID: string = 'c989ab9a-33c7-46ec-b521-1b2daef5f047'; + const GROUP_ROLE: string = 'SERVICE-ACCESS'; + const GROUP_TYPE: string = 'LOAD-GROUP'; + const GROUP_NAME_TO_DEPLOY = 'groupingservicefortest..ResourceInstanceGroup..1'; + const NODE_ID = 'c2b300e6-45de-4e5e-abda-3032bee2de56'; + const FULL_GROUP_NAME = 'node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY; + let serviceModel: JSON; + let basicServiceInstance: JSON; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + serviceModel = res; + }); + + cy.readFile('./cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json').then((res) => { + res.optionalGroupMembersMap = {}; + basicServiceInstance = res; + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/searchMembersResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_search_group_members/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INVARIANT_ID}/${GROUP_TYPE}/${GROUP_ROLE}`, + 200, 0, + "VnfGroup_searchMembersResponse", + ) + }); + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((reduxRes) => { + + reduxRes.service.serviceHierarchy[SERVICE_MODEL_ID] = serviceModel; + + reduxRes.service.serviceInstance[SERVICE_MODEL_ID] = basicServiceInstance; + + cy.setReduxState(reduxRes); + + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=' + SERVICE_MODEL_ID); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY).find(`[data-tests-id='node-type-indicator']`).contains('G'); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY).contains('' + GROUP_NAME_TO_DEPLOY); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY + '-add-btn').get('i').should('have.class', 'fa-plus-circle'); + + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY + '-add-btn').click({force: true}); + cy.getElementByDataTestsId('node-' + GROUP_NAME_TO_DEPLOY + '-add-btn').click({force: true}); + + cy.getElementByDataTestsId('node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY + '-menu-btn').each((row, index) => { + cy.wrap(row).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => { + cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria'); + cy.get('.allCheckboxAreSelected input').click({force: true}); + cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => { + checkIsErrorAppear(true, 'node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY, 3, index); + cy.get('.toggle-children').click({force: true}).then(() => { + let memberIndex = 3; + while (!index && memberIndex >= 0) { + clickOnVnfMemberAndAssertScaling(memberIndex--, 'context-menu-remove', false, FULL_GROUP_NAME, 3, index); + } + }); + }); + }); + }); + }); + clickOnVnfMemberAndAssertScaling(0, 'context-menu-remove', false, FULL_GROUP_NAME, 3, 1); + cy.getElementByDataTestsId('deployBtn').should('have.text', 'DEPLOY').click(); + }); + }); + + it(`Check scaling policy in Edit mode`, () => { + const SUBSCRIBER_ID: string = "global-customer-id"; + const SERVICE_TYPE: string = "service-instance-type"; + const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb"; + const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc'; + const SERVICE_INVARIANT_ID: string = '24632e6b-584b-4f45-80d4-fefd75fd9f14'; + const GROUP_ROLE: string = 'SERVICE-ACCESS'; + const GROUP_TYPE: string = 'LOAD-GROUP'; + const NODE_ID = 'daeb6568-cef8-417f-9075-ed259ce59f48'; + const GROUP_NAME_TO_DEPLOY = 'groupingservicefortest..ResourceInstanceGroup..0'; + const FULL_GROUP_NAME = 'node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY; + + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/groupingServiceRoleResponse.json').then((res) => { + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`, + 200, + 0, + "ServiceTreeWithMultipleChildren_serviceModel", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json').then((res) => { + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`, + 200, 0, + "serviceWithVnfGroupsChildren_serviceInstance", + ) + }); + + cy.readFile('../vid-automation/src/test/resources/VnfGroup/searchMembersResponse.json').then((res) => { + + jsonBuilderAndMock.basicJson( + res, + Cypress.config('baseUrl') + `/aai_search_group_members/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INVARIANT_ID}/${GROUP_TYPE}/${GROUP_ROLE}`, + 200, 0, + "VnfGroup_searchMembersResponse", + ) + }); + + cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&mode=EDIT`); + cy.getElementByDataTestsId('node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY + '-menu-btn') + .eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => { + cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria'); + cy.get('.allCheckboxAreSelected input').click({force: true}); + cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => { + checkIsErrorAppear(true, FULL_GROUP_NAME, 4, 0); + + clickOnVnfMemberAndAssertScaling(6, 'context-menu-remove', true, FULL_GROUP_NAME, 4, 0); + clickOnVnfMemberAndAssertScaling(5, 'context-menu-remove', true, FULL_GROUP_NAME, 4, 0); + clickOnVnfMemberAndAssertScaling(0, 'context-menu-delete', false, FULL_GROUP_NAME, 4, 0); + clickOnVnfMemberAndAssertScaling(0, 'context-menu-undoDelete', true, FULL_GROUP_NAME, 4, 0); + clickOnVnfMemberAndAssertScaling(4, 'context-menu-remove', false, FULL_GROUP_NAME, 4, 0); + testResetAddMemberModal(); + testUpdateBtn(); + }) + }); + }); + }); + + function removeVnfGroup() { + cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn') + .click({force: true}); + cy.getElementByDataTestsId('context-menu-remove').click({force: true}); + } + + function testUpdateBtn() { + cy.getElementByDataTestsId('deployBtn').should('have.text', 'UPDATE').click(); + cy.getReduxState().then((state) => { + cy.wait('@expectedPostAsyncInstantiation').then(xhr => { + cy.readFile('../vid-automation/src/test/resources/VnfGroup/vnfGroupWithExistingAndNewVnfMembers.json').then((expectedResult) => { + cy.deepCompare(xhr.request.body, expectedResult); + }); + }); + }); + } + + function testCheckbox() { + let totalNumber = 4; + cy.get('.allCheckboxAreSelected input').click({force: true}); + cy.getElementByDataTestsId('setMembersBtn').should('not.have.attr', 'disabled'); + cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(totalNumber); + cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber); + cy.get('.sdcCheckboxMember input').eq(0).click({force: true}); + cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber - 1); + cy.get('.sdcCheckboxMember input').eq(1).click({force: true}); + cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber - 2); + cy.get('.allCheckboxAreSelected input').click({force: true}); + cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber); + cy.get('.allCheckboxAreSelected input').click({force: true}); + cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(0); + + cy.getElementByDataTestsId("vnf-members-search").find('input').type("2.0"); + cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(1); + cy.getElementByDataTestsId("vnf-members-search").find('input').clear().type("vnf1"); + cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(1); + cy.get('.allCheckboxAreSelected input').click({force: true}); + cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(1); + cy.getElementByDataTestsId("vnf-members-search").find('input').clear(); + cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(1); + + cy.getElementByDataTestsId('setMembersBtn').click({force: true}); + //check second time behavior (selected VNFs should be filtered) + cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn') + .eq(1).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => { + cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(totalNumber - 1); + cy.getElementByDataTestsId('cancelBtn').click({force: true}); + }); + }); + + } + function testResetAddMemberModal(): void{ + cy.getElementByDataTestsId('node-groupingservicefortest..ResourceInstanceGroup..1-add-btn').click({force: true}) + .getElementByDataTestsId('node-c2b300e6-45de-4e5e-abda-3032bee2de56-groupingservicefortest..ResourceInstanceGroup..1-menu-btn').eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => { + cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(0); + cy.getElementByDataTestsId('cancelBtn').click({force: true}); + }); + cy.getElementByDataTestsId('node-c2b300e6-45de-4e5e-abda-3032bee2de56-groupingservicefortest..ResourceInstanceGroup..1-menu-btn').eq(0).click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-remove').click({force: true}); + }); + }); + } + function checkIsErrorAppear(isError: boolean, groupRowId: string, limit: number, index: number) { + const isErrorPrefix = isError ? '' : 'not.'; + cy.getElementByDataTestsId('error-msg-wrapper').should(isErrorPrefix + 'exist'); + cy.getElementByDataTestsId('deployBtn').should(isErrorPrefix + 'have.attr', 'disabled'); + cy.getElementByDataTestsId(groupRowId).eq(index).find("[data-tests-id='scaling-policy']").should(isErrorPrefix + 'have.text', 'Limit' + limit); + cy.getElementByDataTestsId('error-msg-title').should(isErrorPrefix + 'exist'); + cy.getElementByDataTestsId('error-msg-sub-title').should(isErrorPrefix + 'exist'); + cy.getElementByDataTestsId('error-msg-description').should(isErrorPrefix + 'exist'); + } + + function clickOnVnfMemberAndAssertScaling(childIndex: number, menuItemTestId: string, isError: boolean, groupRowId: string, limit: number, index: number) { + cy.get('.tree-children').find('.node-wrapper').eq(childIndex).find('.icon-browse').click({force: true}) + .getElementByDataTestsId(menuItemTestId).click({force: true}).then(() => { + checkIsErrorAppear(isError, groupRowId, limit, index); + }); + } + + + } + ); +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/welcomePage.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/welcomePage.e2e.ts new file mode 100644 index 000000000..98d39ff8e --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/welcomePage.e2e.ts @@ -0,0 +1,40 @@ +/// / + +import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder"; +import {ServiceModel} from "../../support/jsonBuilders/models/service.model"; + +describe('Welcome page', function () { + var jsonBuilderAndMock : JsonBuilder = new JsonBuilder(); + + //describe('Contact us', () => { + + beforeEach(() => { + cy.login(); + }); + + afterEach(() => { + cy.screenshot(); + }); + + it(`verifying Contact Us link"`, function () { + cy.visit('/welcome.htm'); + cy.get('A[href="mailto:portal@lists.onap.org"]').contains('Contact Us'); + }); + + it(`verifying VID version"`, function () { + + const APP_VERSION = "1902.1948"; + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/version.json').then((res) => { + jsonBuilderAndMock.basicJson(res, + Cypress.config('baseUrl') + '/version', + 200, + 0, + 'app_version'); + }); + cy.visit('/welcome.htm'); + cy.getElementByDataTestsId('app-version').should("text", APP_VERSION); + }); + // }); + }); + + diff --git a/vid-webpack-master/cypress/integration/shared/error.message.popup.e2e.ts b/vid-webpack-master/cypress/integration/shared/error.message.popup.e2e.ts index 8e78067e1..69021132c 100644 --- a/vid-webpack-master/cypress/integration/shared/error.message.popup.e2e.ts +++ b/vid-webpack-master/cypress/integration/shared/error.message.popup.e2e.ts @@ -18,7 +18,11 @@ describe('Error message popup', function () { }) }); - it('spinner should display after api call', function () { + afterEach(() => { + cy.screenshot(); + }); + + it('error should display on api error', function () { // adding call with delay of 2000 sec cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json').then((res) => { jsonBuilderInstantiationBuilder.basicJson(res, Cypress.config('baseUrl') + "/asyncInstantiation**", 500,0, "error 500 asyncInstantiation"); diff --git a/vid-webpack-master/cypress/integration/shared/spinner.e2e.ts b/vid-webpack-master/cypress/integration/shared/spinner.e2e.ts index 35f386fd5..438e7bc3a 100644 --- a/vid-webpack-master/cypress/integration/shared/spinner.e2e.ts +++ b/vid-webpack-master/cypress/integration/shared/spinner.e2e.ts @@ -17,20 +17,28 @@ describe('Spinner', function () { }) }); + afterEach(() => { + cy.screenshot(); + }); + it('spinner should display after api call', function () { - cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json').then((res) => { + const timeBomb:Date = new Date(2018,6,10,0,0,0); //month 6 is July + if (new Date(Date.now()) > timeBomb) { + + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json').then((res) => { - jsonBuilderInstantiationBuilder.basicJson(res, - Cypress.config('baseUrl') + "/asyncInstantiation**", - 200, - 2000, - "error 500 asyncInstantiation"); - cy.openIframe('app/ui/#/instantiationStatus'); + jsonBuilderInstantiationBuilder.basicJson(res, + Cypress.config('baseUrl') + "/asyncInstantiation**", + 200, + 4000, + "error 500 asyncInstantiation"); + cy.openIframe('app/ui/#/instantiationStatus'); - cy.get('.spinner') - .and('be.visible'); + cy.get('.sdc-loader') + .and('be.visible'); - }); + }); + } }); }); }); diff --git a/vid-webpack-master/cypress/support/application/application.session.actions.ts b/vid-webpack-master/cypress/support/application/application.session.actions.ts index 490016bf6..19f6881f6 100644 --- a/vid-webpack-master/cypress/support/application/application.session.actions.ts +++ b/vid-webpack-master/cypress/support/application/application.session.actions.ts @@ -1,6 +1,10 @@ declare namespace Cypress { interface Chainable { setReduxState : typeof setReduxState; + getReduxState : typeof getReduxState; + setTestApiParamToGR: typeof setTestApiParamToGR; + setTestApiParamToVNF: typeof setTestApiParamToVNF; + buildReduxStateWithServiceRespone: typeof buildReduxStateWithServiceRespone; } } @@ -14,8 +18,59 @@ function setReduxState(state?: string) : void { }); }); } +function getReduxState(): Chainable { + return cy.window().then((win) => { + let stateRaw = win.sessionStorage.getItem('reduxState'); + return JSON.parse(stateRaw ? stateRaw : '{}'); + }); +} + +function setTestApiParamToGR() : void { + cy.window().then((win) => { + win.sessionStorage.setItem('msoRequestParametersTestApiValue', 'GR_API'); + }); +} + +function setTestApiParamToVNF() : void { + cy.window().then((win) => { + win.sessionStorage.setItem('msoRequestParametersTestApiValue', 'VNF_API'); + }); +} +function updateObject(obj: any, key: string, val: any, value:any) { + return JSON.parse(JSON.stringify(obj) + .replace(new RegExp(`"${key}":"${val}"`), `"${key}":"${value}"`)) +} +function buildReduxStateWithServiceRespone(res: any, serviceId:string, isEcompGeneratedNaming:boolean) :void { + res = updateObject(res, "ecomp_generated_naming", !isEcompGeneratedNaming, isEcompGeneratedNaming); + cy.window().then((win) => { + win.sessionStorage.setItem('reduxState', JSON.stringify({ + "global": { + "name": null + }, + "service": { + "serviceHierarchy": { + [serviceId] : res + }, + "serviceInstance": { + [serviceId]: { + "existingVNFCounterMap": {}, + "existingVnfGroupCounterMap": {}, + "existingNetworksCounterMap": {}, + "vnfs": {}, + "vnfGroups": {}, + "isEcompGeneratedNaming": isEcompGeneratedNaming, + "existingNames": {} + } + } + } + })); + }); +} Cypress.Commands.add('setReduxState', setReduxState); - +Cypress.Commands.add('getReduxState', getReduxState); +Cypress.Commands.add('setTestApiParamToGR', setTestApiParamToGR); +Cypress.Commands.add('setTestApiParamToVNF',setTestApiParamToVNF); +Cypress.Commands.add('buildReduxStateWithServiceRespone', buildReduxStateWithServiceRespone); diff --git a/vid-webpack-master/cypress/support/elements/element.actions.ts b/vid-webpack-master/cypress/support/elements/element.actions.ts index 2d30aa1b1..44e85830c 100644 --- a/vid-webpack-master/cypress/support/elements/element.actions.ts +++ b/vid-webpack-master/cypress/support/elements/element.actions.ts @@ -7,6 +7,7 @@ declare namespace Cypress { isElementEnabled : typeof isElementEnabled; hasClass : typeof hasClass; getElementByDataTestsId : typeof getElementByDataTestsId; + getTagElementContainsText : typeof getTagElementContainsText; } } @@ -14,36 +15,42 @@ declare namespace Cypress { isElementContainsAttr : check if element with id contains some attribute *************************************************************************/ function isElementContainsAttr(id : string, attr: string) : void { - cy.get("[data-tests-id='" + id +"']") - .should('have.attr', attr); + cy.getElementByDataTestsId(id).should('have.attr', attr); } /********************************************************* isElementDisabled : check if element with id is disabled *********************************************************/ function isElementDisabled(id : string) : void { - cy.get( "[data-tests-id='" + id +"']").should('be:disabled'); + cy.getElementByDataTestsId(id).should('be:disabled'); } function isElementEnabled(id : string) : void { - cy.get( "button[data-tests-id='" + id +"']").should('be:enabled'); + cy.getElementByDataTestsId(id).should('be:enabled'); } /**************************************************************** hasClass : check if element with id contains some class name ****************************************************************/ function hasClass(id : string, className : string) : void { - cy.get( "[data-tests-id='" + id +"']") - .should('have.class', className); + cy.getElementByDataTestsId(id).should('have.class', className); } function getElementByDataTestsId(dataTestsId : string) : Chainable> { return cy.get( "[data-tests-id='" + dataTestsId +"']"); } +/************************************************** + getTagElementContainsText : return tag with text + **************************************************/ +function getTagElementContainsText(tag : string, text : string) : Chainable> { + return cy.contains(tag,text); +} + Cypress.Commands.add('isElementContainsAttr', isElementContainsAttr); Cypress.Commands.add('isElementDisabled', isElementDisabled); Cypress.Commands.add('isElementEnabled', isElementEnabled); Cypress.Commands.add('hasClass', hasClass); Cypress.Commands.add('getElementByDataTestsId', getElementByDataTestsId); +Cypress.Commands.add('getTagElementContainsText', getTagElementContainsText); diff --git a/vid-webpack-master/cypress/support/elements/element.input.actions.ts b/vid-webpack-master/cypress/support/elements/element.input.actions.ts index 714daf98a..4e6b5e879 100644 --- a/vid-webpack-master/cypress/support/elements/element.input.actions.ts +++ b/vid-webpack-master/cypress/support/elements/element.input.actions.ts @@ -4,6 +4,7 @@ declare namespace Cypress { blurInput : typeof blurInput; focusInput : typeof focusInput; shouldInputContainsText: typeof shouldInputContainsText; + clearInput: typeof clearInput; } } @@ -15,32 +16,38 @@ function typeToInput(id : string, text : string) : void { .type(text, {force: true}); } +/********************************** + clear input + *********************************/ +function clearInput(id : string) : void { + cy.get( "[data-tests-id='" + id +"']") + .clear(); +} + /******************** blur input with id ********************/ function blurInput(id : string) : void { - cy.get( "[data-tests-id='" + id +"']") - .blur(); + cy.getElementByDataTestsId(id).blur(); } /******************** focus input with id ********************/ function focusInput(id : string) : void { - cy.get( "[data-tests-id='" + id +"']") - .focus(); + cy.getElementByDataTestsId(id).focus(); } /***************************************** test if input with id contains some text ****************************************/ function shouldInputContainsText(id : string, text : string) : void { - cy.get( "[data-tests-id='" + id +"']") - .contains('text') + cy.getElementByDataTestsId(id).contains('text') } Cypress.Commands.add('typeToInput', typeToInput); Cypress.Commands.add('blurInput', blurInput); Cypress.Commands.add('focusInput', focusInput); Cypress.Commands.add('shouldInputContainsText', shouldInputContainsText); +Cypress.Commands.add('clearInput', clearInput); diff --git a/vid-webpack-master/cypress/support/elements/element.select.actions.ts b/vid-webpack-master/cypress/support/elements/element.select.actions.ts index 452323d3d..1f8eea024 100644 --- a/vid-webpack-master/cypress/support/elements/element.select.actions.ts +++ b/vid-webpack-master/cypress/support/elements/element.select.actions.ts @@ -1,6 +1,7 @@ declare namespace Cypress { interface Chainable { selectDropdownOptionByText : typeof selectDropdownOptionByText; + checkIsOptionSelected : typeof checkIsOptionSelected; } } @@ -12,5 +13,14 @@ function selectDropdownOptionByText(selectId : string, optionText : string) : vo .select(optionText); } +/************************************************ + check if option is selected + ************************************************/ +function checkIsOptionSelected(selectId : string, optionText : string) : void { + cy.getElementByDataTestsId(selectId) + .should('have.value', optionText) +} + Cypress.Commands.add('selectDropdownOptionByText', selectDropdownOptionByText); +Cypress.Commands.add('checkIsOptionSelected', checkIsOptionSelected); diff --git a/vid-webpack-master/cypress/support/index.js b/vid-webpack-master/cypress/support/index.js index 7b8506a1b..a757a16ed 100644 --- a/vid-webpack-master/cypress/support/index.js +++ b/vid-webpack-master/cypress/support/index.js @@ -16,6 +16,12 @@ // Import commands.js using ES2015 syntax: import './commands'; import './steps/login.step'; +import './steps/fill.service.popup.step'; +import './steps/fill.vnf.popup.step'; +import './steps/fill.network.step'; +import './steps/fill.vfModule.step'; +import './steps/menu.step'; +import './steps/openInstanceAuditInfoModal.step'; import './elements/element.actions'; import './elements/element.input.actions'; import './elements/element.select.actions'; @@ -23,8 +29,21 @@ import './application/application.session.actions'; import './elements/element.table.actions'; import './jsonBuilders/mocks/aai.mock'; import './jsonBuilders/mocks/vid.mock'; +import './jsonBuilders/mocks/permission.mock'; + + +import './steps/general/compareDeepObjects.step'; +import './steps/drawingBoard/drawingBoardModel.steps'; +import './steps/drawingBoard/drawingBoardTree.steps'; +import './steps/genericForm/genericFormAction.steps'; +import './steps/drawingBoard/general.steps'; +import './steps/general/clickOutside.step'; +import './steps/drawingBoard/drawingBoardComponentInfo.steps'; +import './steps/genericForm/checkPopover.step'; // Alternatively you can use CommonJS syntax: // require('./commands') - +Cypress.Screenshot.defaults({ + capture: 'runner' +}); diff --git a/vid-webpack-master/cypress/support/jsonBuilders/jsonBuilder.ts b/vid-webpack-master/cypress/support/jsonBuilders/jsonBuilder.ts index 0bab4e1da..2583d46a1 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/jsonBuilder.ts +++ b/vid-webpack-master/cypress/support/jsonBuilders/jsonBuilder.ts @@ -1,6 +1,9 @@ export class JsonBuilder implements IJsonBuilder{ - currentValue: T; + currentValue?: T; + constructor(currentValue ?: T){ + this.currentValue = currentValue; + } public basicJson(json: JSON, url: string, status: number, delay: number, alias: string, changeResFunc?: Function) : void { this.currentValue = JSON.parse(JSON.stringify(json)); this.currentValue = changeResFunc ? changeResFunc(this.currentValue) : this.currentValue; @@ -17,9 +20,9 @@ export class JsonBuilder implements IJsonBuilder{ response: JSON.stringify(this.currentValue) }).as(alias); } - public basicMock(jsonPath: string, url: string) { + public basicMock(jsonPath: string, url: string ,changeResFunc?: Function) { cy.readFile(jsonPath).then((res) => { - this.basicJson(res, url, 200, 0, url,); + this.basicJson(res, url, 200, 0, url, changeResFunc); }) } } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/aai.mock.ts b/vid-webpack-master/cypress/support/jsonBuilders/mocks/aai.mock.ts index a95487731..6cb8f6171 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/aai.mock.ts +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/aai.mock.ts @@ -3,6 +3,8 @@ declare namespace Cypress { initAAIMock: typeof initAAIMock; initAlaCarteService : typeof initAlaCarteService; initZones : typeof initZones; + initTenants : typeof initTenants; + initSearchVNFMemebers : typeof initSearchVNFMemebers; } } @@ -18,6 +20,18 @@ function initGetSubscribers(response? : JSON) : void { }); } +function initAaiGetFullSubscribers(response? : JSON) : void { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/subscribers.json').then((res) => { + cy.server() + .route({ + method: 'GET', + status : 200, + url : Cypress.config('baseUrl') + "/aai_get_full_subscribers**", + response : response ? response : res + }).as('initGetSubscribers') + }); +} + function initGetAAISubDetails(response? : JSON) : void { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json').then((res) => { cy.server() @@ -42,6 +56,22 @@ function initAlaCarteService(response? : JSON) : void { }); } + + + + +function initTenants(response? : JSON) : void { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/tenants.json').then((res) => { + cy.server() + .route({ + method: 'GET', + status: 200, + url: Cypress.config('baseUrl') + "/aai_get_tenants/**", + response: response ? response : res + }).as('initTenants') + }); +} + function initAAIServices(response? : JSON) : void { cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiServices.json').then((res) => { cy.server() @@ -66,15 +96,34 @@ function initZones(response? : JSON) : void { }); } +//Mock of vnf's that members for VNF Group +function initSearchVNFMemebers(response? : JSON) : void { + cy.readFile('../vid-automation/src/test/resources/VnfGroup/searchMembersResponse.json').then((res) => { + cy.server() + .route({ + method: 'GET', + status : 200, + url : Cypress.config('baseUrl') + "/aai_search_group_members/**", + response : response ? response : res + }).as(('searchVNFMembers')); + }); +} + + function initAAIMock(): void { + initAaiGetFullSubscribers(); initGetSubscribers(); initAAIServices(); + initTenants(); } Cypress.Commands.add('initAAIMock', initAAIMock); Cypress.Commands.add('initAlaCarteService', initAlaCarteService); Cypress.Commands.add('initZones', initZones); +Cypress.Commands.add('initTenants', initTenants); +Cypress.Commands.add('initAaiGetFullSubscribers', initAaiGetFullSubscribers); +Cypress.Commands.add('initSearchVNFMemebers', initSearchVNFMemebers); diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aLaCarteAuditInfoMSO.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aLaCarteAuditInfoMSO.json new file mode 100644 index 000000000..290ca6cee --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aLaCarteAuditInfoMSO.json @@ -0,0 +1,13 @@ +[ + { + "id": null, + "jobId": "20fb575c-130a-4c5e-b434-50440bf992ec", + "instanceName": "instance name 1", + "jobStatus": "COMPLETE", + "source": "MSO", + "requestId": "c0011670-0e1a-4b74-945d-8bf5aede1d9c", + "additionalInfo": "Service Instance was created successfully.", + "final": null, + "createdDate": 1526471134058 + } +] diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiGetHomingData.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiGetHomingData.json new file mode 100644 index 000000000..d8a7faab2 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiGetHomingData.json @@ -0,0 +1,7 @@ +{ + "tenantName": "USP-SIP-IC-24335-T-01", + "tenantID": "092eb9e8e4b7412e8787dd091bc58e86", + "cloudOwner": "irma-aic", + "cloudRegionID": "JANET25", + "is-permitted": true +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json index 3435ff07e..61708d887 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json @@ -7,8 +7,18 @@ "isPermitted": true, "serviceInstanceId": "3f93c7cb-2fd0-4557-9514-e189b7b04f9d", "serviceInstanceName": "vid-test-444", - "serviceType": "VIRTUAL USP", - "subscriberName": "USP VOICE" + "serviceType": "TYLER SILVIA", + "subscriberName": "SILVIA ROBBINS" + }, + { + "aaiModelInvariantId": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "aaiModelVersionId": "12344bb4-a416-4b4e-997e-0059973630b9", + "globalCustomerId": "e433710f-9217-458d-a79d-1c7aff376d89", + "isPermitted": true, + "serviceInstanceId": "c187e9fe-40c3-4862-b73e-84ff056205f61234", + "serviceInstanceName": "test_fabric_config", + "serviceType": "TYLER SILVIA", + "subscriberName": "SILVIA ROBBINS" } ] } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServices.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServices.json index 7b4440d48..1528c752a 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServices.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServices.json @@ -1,46 +1,136 @@ { - "service": { - "uuid": "4d71990b-d8ad-4510-ac61-496288d9078e", - "invariantUuid": "d27e42cf-087e-4d31-88ac-6c4b7585f800", - "name": "vidmacrofalsenaming", - "version": "1.0", - "toscaModelURL": null, - "category": "Network L1-3", - "serviceType": "", - "serviceRole": "", - "description": "vidmacrofalsenaming", - "serviceEcompNaming": "false", - "instantiationType": "A-La-Carte", - "inputs": {} - }, - "vnfs": {}, - "networks": { - "MULTI_PROVIDER_PORT_GROUP 0": { - "uuid": "e5d235de-2188-4f9f-a28c-fe38967883f2", - "invariantUuid": "b0303003-0abb-454c-9119-8cbe2e09e003", - "description": "Creates a neutron multi-provider VLAN network with dummy subnet", - "name": "MULTI_PROVIDER_PORT_GROUP", - "version": "1.0", - "customizationUuid": "0fde4286-ee4c-439d-9556-74b6be6bbc42", - "inputs": {}, - "commands": {}, - "properties": { - "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", - "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", - "network_scope": "GLOBAL", - "network_ecomp_naming": "{ecomp_generated_naming=true}", - "network_type": "MULTI_PROVIDER_PORT_GROUP", - "network_technology": "MULTI_GROUP", - "network_homing": "{ecomp_selected_instance_node_target=false}" - }, - "type": "VL", - "modelCustomizationName": "MULTI_PROVIDER_PORT_GROUP 0" + "service": [ + { + "service-id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "service-description": "SCOTTIE", + "resource-version": "1494001985150", + "is-permitted": true + }, + { + "service-id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "service-description": "IGNACIO", + "resource-version": "1494001922171", + "is-permitted": true + }, + { + "service-id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "service-description": "Christie", + "resource-version": "1494001855144", + "is-permitted": true + }, + { + "service-id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "service-description": "Enhanced Services", + "resource-version": "1494001980153", + "is-permitted": true + }, + { + "service-id": "vTerrance", + "service-description": "vTerrance", + "resource-version": "1484865266", + "is-permitted": true + }, + { + "service-id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "service-description": "vSCP", + "resource-version": "1494001903012", + "is-permitted": true + }, + { + "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "service-description": "Emanuel", + "resource-version": "1503954056794", + "is-permitted": true + }, + { + "service-id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "service-description": "BVOIP", + "resource-version": "1490910089351", + "is-permitted": true + }, + { + "service-id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "service-description": "LINDSEY", + "resource-version": "1490910095155", + "is-permitted": true + }, + { + "service-id": "LRSI-OSPF", + "service-description": "LRSI-OSPF", + "resource-version": "1494001863930", + "is-permitted": true + }, + { + "service-id": "vRosemarie", + "service-description": "HNGATEWAY", + "resource-version": "1501192849249", + "is-permitted": true + }, + { + "service-id": "vHNPaas", + "service-description": "WILKINS", + "resource-version": "1501192982895", + "is-permitted": true + }, + { + "service-id": "e433710f-9217-458d-a79d-1c7aff376d89", + "service-description": "TYLER SILVIA", + "resource-version": "1494001802638", + "is-permitted": true + }, + { + "service-id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "service-description": "VROUTER", + "resource-version": "1492533254036", + "is-permitted": true + }, + { + "service-id": "Cisneros", + "service-description": "vMuriel", + "resource-version": "1490910058887", + "is-permitted": true + }, + { + "service-id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "service-description": "CARA Griffin", + "resource-version": "1498053422512", + "is-permitted": true + }, + { + "service-id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "service-description": "DARREN MCGEE", + "resource-version": "1494001913639", + "is-permitted": true + }, + { + "service-id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "service-description": "Transport", + "resource-version": "1506361785997", + "is-permitted": true + }, + { + "service-id": "vSalvatore", + "service-description": "vSalvatore", + "resource-version": "1494001900545", + "is-permitted": true + }, + { + "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "service-description": "Josefina", + "resource-version": "1494001941772", + "is-permitted": true + }, + { + "service-id": "vHubbard", + "service-description": "vHubbard", + "resource-version": "1494001988229", + "is-permitted": true + }, + { + "service-id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "service-description": "DARREN MCGEE", + "resource-version": "1494001817126", + "is-permitted": true } - }, - "collectionResource": {}, - "configurations": {}, - "serviceProxies": {}, - "vfModules": {}, - "volumeGroups": {}, - "pnfs": {} + ] } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json index 0063a9d46..f2ce0870b 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json @@ -1,12 +1,12 @@ { "global-customer-id": "e433710f-9217-458d-a79d-1c7aff376d89", - "subscriber-name": "USP VOICE", + "subscriber-name": "SILVIA ROBBINS", "subscriber-type": "INFRA", "resource-version": "1494001938080", "service-subscriptions": { "service-subscription": [ { - "service-type": "HOSTED COMMUNICATIONS", + "service-type": "DARREN MCGEE", "resource-version": "1494001920845", "service-instances": { "service-instance": [ @@ -472,6 +472,57 @@ ] }, "is-permitted": false + }, + { + "service-type":"TYLER SILVIA", + "resource-version":"1501700976809", + "service-instances":{ + "service-instance":[ + { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f61234", + "service-instance-name": "test_fabric_config", + "model-invariant-id": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "model-version-id": "12344bb4-a416-4b4e-997e-0059973630b9", + "resource-version": "1500789244674", + "orchestration-status": "Assigned" + }, + { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f69000", + "service-instance-name": "test_fabric_config", + "model-invariant-id": "90003f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "model-version-id": "90004bb4-a416-4b4e-997e-0059973630b9", + "resource-version": "1500789244674", + "orchestration-status": "Active" + }, + { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f61000", + "service-instance-name": "test_fabric_config", + "model-invariant-id": "10003f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "model-version-id": "10004bb4-a416-4b4e-997e-0059973630b9", + "resource-version": "1500789244674", + "orchestration-status": "pendingdeLete" + }, + { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f65678", + "service-instance-name": "test_fabric_config", + "model-invariant-id": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "model-version-id": "12344bb4-a416-4b4e-997e-0059973630b9", + "resource-version": "1500789244674", + "orchestration-status": "Created" + }, + { + "service-instance-id":"3f93c7cb-2fd0-4557-9514-e189b7b04f9d", + "service-instance-name":"usp_voice_inst", + "persona-model-id":null, + "persona-model-version":null, + "resource-version":"1502391806301", + "orchestration-status":"Active", + "model-invariant-id":"64dbe153-48c6-4d6f-95e7-12ff4cce9871", + "model-version-id":"4e8b6372-dea3-4028-81d0-16eba59c94fd" + } + ] + }, + "is-permitted":true } ] } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json new file mode 100644 index 000000000..38c76060e --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json @@ -0,0 +1,52 @@ +{ + "inventory-response-item": [ + { + "model-name": "0eOHz2Yh8WJcBYzKy0791234", + "service-instance": { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f69000", + "service-instance-name": "test_fabric_config" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "1-fabric-config-LB1113", + "configuration-name": "dummy_instance_1", + "configuration-type": "fabric-configuration-type-1", + "configuration-sub-type": "fabric-configuration-sub-type-1", + "model-invariant-id": "model-invariant-id-1", + "model-version-id": "model-version-id-1", + "orchestration-status": "Assigned", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-1", + "resource-version": "1504038855716" + }, + "extra-properties": { + } + }, + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "2-fabric-config-LB1113", + "configuration-name": "dummy_instance_2", + "configuration-type": "fabric-configuration-type-2", + "configuration-sub-type": "fabric-configuration-sub-type-2", + "model-invariant-id": "model-invariant-id-2", + "model-version-id": "model-version-id-2", + "orchestration-status": "Assigned", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-2", + "resource-version": "1504038855712" + }, + "extra-properties": { + } + } + ] + } + } + ] +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json index 0706036a1..d6107b821 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json @@ -90,14 +90,14 @@ "subnet-id": "1254dd9b-e689-4075-a089-f0deeb23c00c", "subnet-name": "APP-C-DND_vEPDG-FN_hsl_fn_net_1_subnet_1", "neutron-subnet-id": "7b5ea34d-fb95-4278-a148-4f6677ebe866", - "gateway-address": "107.243.49.1", - "network-start-address": "107.243.49.0", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", "cidr-mask": "26", "ip-version": "4", "orchestration-status": "Created", "dhcp-enabled": true, - "dhcp-start": "107.243.49.3", - "dhcp-end": "107.243.49.62", + "dhcp-start": "10.0.0.10", + "dhcp-end": "10.0.0.10", "ip-assignment-direction": "false", "resource-version": "1511279493791" }, diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json new file mode 100644 index 000000000..0ad741cd7 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json @@ -0,0 +1,52 @@ +{ + "inventory-response-item": [ + { + "model-name": "0eOHz2Yh8WJcBYzKy0791234", + "service-instance": { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f69000", + "service-instance-name": "test_fabric_config" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "1-fabric-config-LB1113", + "configuration-name": "dummy_instance_1", + "configuration-type": "fabric-configuration-type-1", + "configuration-sub-type": "fabric-configuration-sub-type-1", + "model-invariant-id": "model-invariant-id-1", + "model-version-id": "model-version-id-1", + "orchestration-status": "Active", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-1", + "resource-version": "1504038855716" + }, + "extra-properties": { + } + }, + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "2-fabric-config-LB1113", + "configuration-name": "dummy_instance_2", + "configuration-type": "fabric-configuration-type-2", + "configuration-sub-type": "fabric-configuration-sub-type-2", + "model-invariant-id": "model-invariant-id-2", + "model-version-id": "model-version-id-2", + "orchestration-status": "Assigned", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-2", + "resource-version": "1504038855712" + }, + "extra-properties": { + } + } + ] + } + } + ] +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json new file mode 100644 index 000000000..b224e323f --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json @@ -0,0 +1,52 @@ +{ + "inventory-response-item": [ + { + "model-name": "0eOHz2Yh8WJcBYzKy0791234", + "service-instance": { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f61000", + "service-instance-name": "test_fabric_config" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "1-fabric-config-LB1113", + "configuration-name": "dummy_instance_1", + "configuration-type": "fabric-configuration-type-1", + "configuration-sub-type": "fabric-configuration-sub-type-1", + "model-invariant-id": "model-invariant-id-1", + "model-version-id": "model-version-id-1", + "orchestration-status": "Active", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-1", + "resource-version": "1504038855716" + }, + "extra-properties": { + } + }, + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "2-fabric-config-LB1113", + "configuration-name": "dummy_instance_2", + "configuration-type": "fabric-configuration-type-2", + "configuration-sub-type": "fabric-configuration-sub-type-2", + "model-invariant-id": "model-invariant-id-2", + "model-version-id": "model-version-id-2", + "orchestration-status": "Assigned", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-2", + "resource-version": "1504038855712" + }, + "extra-properties": { + } + } + ] + } + } + ] +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json new file mode 100644 index 000000000..ddd673b87 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json @@ -0,0 +1,52 @@ +{ + "inventory-response-item": [ + { + "model-name": "0eOHz2Yh8WJcBYzKy0791234", + "service-instance": { + "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f61234", + "service-instance-name": "test_fabric_config" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "1-fabric-config-LB1113", + "configuration-name": "dummy_instance_1", + "configuration-type": "fabric-configuration-type-1", + "configuration-sub-type": "fabric-configuration-sub-type-1", + "model-invariant-id": "model-invariant-id-1", + "model-version-id": "model-version-id-1", + "orchestration-status": "Assigned", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-1", + "resource-version": "1504038855716" + }, + "extra-properties": { + } + }, + { + "model-name": "Fabric-Configuration-Instance", + "configuration": { + "configuration-id": "2-fabric-config-LB1113", + "configuration-name": "dummy_instance_2", + "configuration-type": "fabric-configuration-type-2", + "configuration-sub-type": "fabric-configuration-sub-type-2", + "model-invariant-id": "model-invariant-id-2", + "model-version-id": "model-version-id-2", + "orchestration-status": "Active", + "operational-status": "", + "configuration-selflink": "", + "model-customization-id": "model-customization-id-2", + "resource-version": "1504038855712" + }, + "extra-properties": { + } + } + ] + } + } + ] +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForServiceWithSomeVFModule.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForServiceWithSomeVFModule.json new file mode 100644 index 000000000..0a0de81a4 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForServiceWithSomeVFModule.json @@ -0,0 +1,355 @@ +{ + "inventory-response-item": [ + { + "model-name": "1707vidnf", + "service-instance": { + "service-instance-id": "3f93c7cb-2fd0-4557-9514-e189b7b04f9d", + "service-instance-name": "vid-test-444" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "c015cc0f-0f37-4488-aabf-53795fd93cd3", + "vnf-name": "fsd", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1502299355826", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "null", + "nf-function": "null", + "nf-role": "null", + "nf-naming-code": "null" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "volume-group": { + "volume-group-id": "d9db0900-31f6-4880-8658-8c996c6123b4", + "volume-group-name": "f", + "heat-stack-id": "", + "vnf-type": "1707vidnf/null", + "orchestration-status": "Pending", + "vf-module-model-customization-id": "a06b0a2b-0cb5-401c-bf29-b64bb6a114b9", + "resource-version": "1508048984071" + }, + "extra-properties": {} + }, + { + "model-name": "VidPcrf051517..pcrf_base_template_v3_0..module-0", + "vf-module": { + "vf-module-id": "f2805715-e24f-4c8a-9eb3-6c618da7691d", + "vf-module-name": "aa", + "orchestration-status": "pendingactivation", + "is-base-vf-module": true, + "resource-version": "1504770843380", + "model-invariant-id": "df35ebf5-880b-4052-b4dc-5fbf38a423ca", + "model-version-id": "bbf63386-42ec-4cae-a6a1-a8dade4e09e1", + "model-customization-id": "56f23f2a-de4b-4f72-a51c-439970350885", + "module-index": 0 + }, + "extra-properties": {} + }, + { + "model-name": "VidPcrf051517..pcrf_nimbus_pcm..module-4", + "vf-module": { + "vf-module-id": "f91515e5-cf8d-4abf-aacc-5bc5c5a47f09", + "vf-module-name": "gg", + "orchestration-status": "assiGned", + "is-base-vf-module": false, + "resource-version": "1504694876599", + "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261", + "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06", + "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34050", + "module-index": 1 + }, + "extra-properties": {} + }, + { + "model-name": "VidPcrf051517..pcrf_nimbus_pcm..module-5", + "vf-module": { + "vf-module-id": "f91515e5-cf8d-4abf-aacc-5bc5c5a47f05", + "vf-module-name": "ABC", + "orchestration-status": "Created", + "is-base-vf-module": false, + "resource-version": "1504694876599", + "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95265", + "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b05", + "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34055", + "module-index": 1 + }, + "extra-properties": {} + }, + { + "model-name": "VidPcrf051517..pcrf_nimbus_pcm..module-4", + "vf-module": { + "vf-module-id": "a231a99c-7e75-4d6d-a0fb-5c7d26f30f77", + "vf-module-name": "my_vfModule", + "orchestration-status": "pending-delete", + "is-base-vf-module": false, + "resource-version": "1505044772033", + "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261", + "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06", + "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34050", + "module-index": 0 + }, + "extra-properties": {} + } + ] + } + }, + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "0846287b-65bf-45a6-88f6-6a1af4149fac", + "vnf-name": "kjkjk", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1504008534044", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "", + "nf-function": "", + "nf-role": "", + "nf-naming-code": "" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "volume-group": { + "volume-group-id": "973cb0a6-f0b5-4a45-b995-db265bda182c", + "volume-group-name": "fdgfg", + "heat-stack-id": "", + "vnf-type": "1707vidnf/null", + "orchestration-status": "Pending", + "vf-module-model-customization-id": "a06b0a2b-0cb5-401c-bf29-b64bb6a114b9", + "resource-version": "1508413877324" + }, + "extra-properties": {} + }, + { + "volume-group": { + "volume-group-id": "09203a8b-29e7-4e76-8dd0-565f6a081f82", + "volume-group-name": "fdgfd", + "heat-stack-id": "", + "vnf-type": "1707vidnf/null", + "orchestration-status": "Pending", + "vf-module-model-customization-id": "a06b0a2b-0cb5-401c-bf29-b64bb6a114b9", + "resource-version": "1508413828948" + }, + "extra-properties": {} + }, + { + "model-name": "VidPcrf051517..pcrf_nimbus_pcm..module-4", + "vf-module": { + "vf-module-id": "a9b70ac0-5917-4203-a308-0e6920e6d09b", + "vf-module-name": "vf_module2", + "orchestration-status": "PendingCreate", + "is-base-vf-module": false, + "resource-version": "1504694397912", + "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261", + "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06", + "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34050", + "module-index": 0 + }, + "extra-properties": {} + } + ] + } + }, + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "9908b762-136f-4b1f-8eb4-ef670ef58bb4", + "vnf-name": "uiui", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "vRosemarie", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1504516218649", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "", + "nf-function": "", + "nf-role": "", + "nf-naming-code": "" + }, + "extra-properties": {} + }, + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "543931f5-e50e-45a2-a69f-ab727e4c7f2f", + "vnf-name": "sdfsdfdsf", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "LRSI-OSPF", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1506509961062", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "", + "nf-function": "", + "nf-role": "", + "nf-naming-code": "" + }, + "extra-properties": {} + }, + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "25e84884-22d5-44c9-8212-cb459f63e0ba", + "vnf-name": "sdada", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "Cisneros", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1506509479125", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "", + "nf-function": "", + "nf-role": "", + "nf-naming-code": "" + }, + "extra-properties": {} + }, + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "013fb0ba-977b-496c-9faa-7f8e5f083eec", + "vnf-name": "gvb", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1508048678134", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "", + "nf-function": "", + "nf-role": "", + "nf-naming-code": "" + }, + "extra-properties": {} + }, + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "06914296-cb46-4b62-9453-329a706a6cbb", + "vnf-name": "lkllll", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1504507099829", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "", + "nf-function": "", + "nf-role": "", + "nf-naming-code": "" + }, + "extra-properties": {} + }, + { + "model-name": "VID-PCRF-05-15-17", + "generic-vnf": { + "vnf-id": "c55da606-cf38-42c7-bc3c-be8e23b19299", + "vnf-name": "ss", + "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0", + "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "prov-status": "PREPROV", + "orchestration-status": "Created", + "in-maint": false, + "is-closed-loop-disabled": false, + "resource-version": "1508048827342", + "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22", + "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336", + "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7", + "nf-type": "", + "nf-function": "", + "nf-role": "", + "nf-naming-code": "" + }, + "extra-properties": {} + }, + { + "l3-network": { + "network-id": "6adc05e4-85c6-4f91-aa5a-1eb9546c4369", + "network-name": "APP-C-DND_vEPDG-FN_hsl_fn_net_1", + "network-type": "CONTRAIL30_BASIC", + "network-role": "hsl", + "network-technology": "contrail", + "neutron-network-id": "41a61725-f623-4166-bc84-e76a219cca9d", + "is-bound-to-vpn": false, + "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "network-role-instance": 0, + "resource-version": "1511279493784", + "orchestration-status": "Created", + "heat-stack-id": "APP-C-DND_vEPDG-FN_hsl_fn_net_1/af134fb1-8ce3-4d41-88d9-8a83f5f79776", + "contrail-network-fqdn": "default-domain:APP-C-DND:APP-C-DND_vEPDG-FN_hsl_fn_net_1", + "physical-network-name": "leave blank", + "is-provider-network": false, + "is-shared-network": true, + "is-external-network": false + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "subnet": { + "subnet-id": "1254dd9b-e689-4075-a089-f0deeb23c00c", + "subnet-name": "APP-C-DND_vEPDG-FN_hsl_fn_net_1_subnet_1", + "neutron-subnet-id": "7b5ea34d-fb95-4278-a148-4f6677ebe866", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", + "cidr-mask": "26", + "ip-version": "4", + "orchestration-status": "Created", + "dhcp-enabled": true, + "dhcp-start": "10.0.0.10", + "dhcp-end": "10.0.0.10", + "ip-assignment-direction": "false", + "resource-version": "1511279493791" + }, + "extra-properties": {} + } + ] + } + } + ] + } + } + ] +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json new file mode 100644 index 000000000..f98a8d49a --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json @@ -0,0 +1,51 @@ +{ + "service": { + "uuid": "56784bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "56783f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "", + "serviceRole": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": { + + } + }, + "vnfs": { + + }, + "networks": { + + }, + "collectionResource": {}, + "configurations": { + + }, + "fabricConfigurations": { + "Fabric Configuration 0": { + "invariantUuid" : "1608eef4-de53-4334-a8d2-ba79cab4bddd", + "uuid": "88379cfd-fa0f-4946-8958-acc32640ceee", + "customizationUuid": "1e7f6512-c1cf-4b96-b5f5-b22a212ddad0", + "version": "3.0", + "name": "Fabric Configuration Object", + "description": "Fabric Configuration Object", + "type": "Configuration" + } + }, + "serviceProxies": { + + }, + "vfModules": { + + }, + "volumeGroups": { + + }, + "pnfs": { + + } +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json index f9d4d0661..317c046ff 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json @@ -3,6 +3,7 @@ "id": 8, "created": 1525075968000, "modified": 1525075971000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -11,32 +12,36 @@ "jobId": "5c2cd8e5-27d0-42e3-85a1-85db5eaba459", "templateId": "d42ba7c8-9e19-4e34-ae2c-d8af3f24498e", "userId": "16807000", + "aLaCarte": false, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d9c", "jobStatus": "FAILED", "statusModifiedDate": 1525075968000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "nWUfl instance name_002", "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "serviceModelName": "action-data", "serviceModelVersion": "1.0", - "createdBulkDate": 1525075968000 + "createdBulkDate": 1525075968000, + "isRetryEnabled": true }, { "id": 7, "created": 1525075968000, "modified": 1525075971000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -45,32 +50,36 @@ "jobId": "13063a83-924e-4500-a3a1-e53d1b58450b", "templateId": "d42ba7c8-9e19-4e34-ae2c-d8af3f24498e", "userId": "16807000", + "aLaCarte": false, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d9d", "jobStatus": "IN_PROGRESS", "statusModifiedDate": 1525075968000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "nWUfl instance name_001", "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "serviceModelName": "action-data", "serviceModelVersion": "1.0", - "createdBulkDate": 1525075968000 + "createdBulkDate": 1525075968000, + "isRetryEnabled": false }, { "id": 6, "created": 1525007432000, "modified": 1525007434000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -79,6 +88,8 @@ "jobId": "e1db03c3-6274-4ff7-84cf-7bd3a3946de7", "templateId": "cad41760-8653-4c5a-a5fd-8ee34780ae69", "userId": "16807000", + "aLaCarte": false, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d8e", "jobStatus": "FAILED", "statusModifiedDate": 1525007432000, "hidden": false, @@ -99,12 +110,14 @@ "serviceModelId": "300adb1e-9b0c-4d52-bfb5-fa5393c4eabb", "serviceModelName": "AIM_TRANSPORT_00004", "serviceModelVersion": "1.0", - "createdBulkDate": 1525007432000 + "createdBulkDate": 1525007432000, + "isRetryEnabled": false }, { "id": 5, "created": 1524995555000, "modified": 1524995556000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -113,32 +126,36 @@ "jobId": "9f88fdb5-bb47-4bf3-8c5f-98f1ad0ec87c", "templateId": "ce4ec177-cfc8-483e-8a2c-b7aea53fd740", "userId": "16807000", + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d91", + "requestId": null, "jobStatus": "FAILED", "statusModifiedDate": 1524995555000, "hidden": false, "pause": false, "owningEntityId": "aaa1", "owningEntityName": "aaa1", - "project": "DFW", + "project": "WATKINS", "aicZoneId": "BAN1", "aicZoneName": "VSDKYUTP-BAN1", "tenantId": "1178612d2b394be4834ad77f567c0af2", "tenantName": "AIN Web Tool-15-D-SSPtestcustome", - "regionId": "mtn6", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": null, "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "serviceModelName": "ComplexService", "serviceModelVersion": "1.0", - "createdBulkDate": 1524995555000 + "createdBulkDate": 1524995555000, + "isRetryEnabled": false }, { "id": 4, "created": 1524994349000, "modified": 1524994350000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -147,32 +164,36 @@ "jobId": "b73b1543-fa12-4ad5-8ef5-49f02eb33698", "templateId": "79af00c6-4712-432a-8989-b6419c8baa40", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d94", "jobStatus": "FAILED", "statusModifiedDate": 1524994349000, "hidden": false, "pause": false, "owningEntityId": "aaa1", "owningEntityName": "aaa1", - "project": "DFW", + "project": "WATKINS", "aicZoneId": null, "aicZoneName": null, "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", "tenantName": "AIN Web Tool-15-D-STTest2", - "regionId": "mtn6", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": null, "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "serviceModelName": "ComplexService", "serviceModelVersion": "1.0", - "createdBulkDate": 1524994349000 + "createdBulkDate": 1524994349000, + "isRetryEnabled": false }, { "id": 3, "created": 1524991828000, "modified": 1524991830000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -181,32 +202,36 @@ "jobId": "725ef127-4ee5-4665-bdf1-55ee342b362f", "templateId": "6bd53c0d-8742-43f6-9ed2-efbb87062779", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d96", "jobStatus": "FAILED", "statusModifiedDate": 1524991828000, "hidden": false, "pause": false, "owningEntityId": "aaa1", "owningEntityName": "aaa1", - "project": "DFW", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", "tenantName": "USP-SIP-IC-24335-T-01", - "regionId": "AAIAIC25", + "regionId": "JANET25", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": null, "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "serviceModelName": "ComplexService", "serviceModelVersion": "1.0", - "createdBulkDate": 1524991828000 + "createdBulkDate": 1524991828000, + "isRetryEnabled": false }, { "id": 2, "created": 1524663233000, "modified": 1524663236000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -215,32 +240,36 @@ "jobId": "b1ff271b-829a-43f9-a2e3-23987a34f261", "templateId": "262fccc5-cae9-4258-b522-540c4010e0a9", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d98", "jobStatus": "FAILED", "statusModifiedDate": 1524663233000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "sPenLiZXXpqzsVck instance name_02", "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "serviceModelName": "action-data", "serviceModelVersion": "1.0", - "createdBulkDate": 1524663233000 + "createdBulkDate": 1524663233000, + "isRetryEnabled": true }, { "id": 1, "created": 1524663233000, "modified": 1524663236000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -249,26 +278,104 @@ "jobId": "850dc7d2-5240-437f-9bcd-b1ed7dc339ca", "templateId": "262fccc5-cae9-4258-b522-540c4010e0a9", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d45", "jobStatus": "IN_PROGRESS", "statusModifiedDate": 1524663233000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "sPenLiZXXpqzsVck instance name_01", "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "serviceModelName": "action-data", "serviceModelVersion": "1.0", - "createdBulkDate": 1524663233000 - } + "createdBulkDate": 1524663233000, + "isRetryEnabled": false + }, + { + "id": 9, + "created": 1524663233000, + "modified": 1524663236000, + "action": "DELETE", + "createdId": null, + "modifiedId": null, + "rowNum": null, + "auditUserId": null, + "auditTrail": null, + "jobId": "850dc7d2-5240-437f-9bcd-b1ed7dc339c2", + "templateId": "262fccc5-cae9-4258-b522-540c4010e0a9", + "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d45", + "jobStatus": "IN_PROGRESS", + "statusModifiedDate": 1524663233000, + "hidden": false, + "pause": false, + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "owningEntityName": "WayneHolland", + "project": "WATKINS", + "aicZoneId": "NFT1", + "aicZoneName": "NFTJSSSS-NFT1", + "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", + "regionName": null, + "serviceType": "TYLER SILVIA", + "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", + "serviceInstanceId": null, + "serviceInstanceName": "sPenLiZXXpqzsVck instance name_01", + "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceModelName": "action-data", + "serviceModelVersion": "1.0", + "createdBulkDate": 1524663233000, + "isRetryEnabled": false +}, + { + "id": 10, + "created": 1524663233000, + "modified": 1524663236000, + "action": "UPDATE", + "createdId": null, + "modifiedId": null, + "rowNum": null, + "auditUserId": null, + "auditTrail": null, + "jobId": "850dc7d2-5240-437f-9bcd-b1ed7dc339c1", + "templateId": "262fccc5-cae9-4258-b522-540c4010e0a9", + "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d45", + "jobStatus": "COMPLETED", + "statusModifiedDate": 1524663233000, + "hidden": false, + "pause": false, + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "owningEntityName": "WayneHolland", + "project": "WATKINS", + "aicZoneId": "NFT1", + "aicZoneName": "NFTJSSSS-NFT1", + "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", + "regionName": null, + "serviceType": "TYLER SILVIA", + "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", + "serviceInstanceId": null, + "serviceInstanceName": "sPenLiZXXpqzsVck instance name_01", + "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceModelName": "action-data", + "serviceModelVersion": "1.0", + "createdBulkDate": 1524663233000 +} ] diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicAsyncInstantiation.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicAsyncInstantiation.json index f9d4d0661..744013a9a 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicAsyncInstantiation.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicAsyncInstantiation.json @@ -3,6 +3,7 @@ "id": 8, "created": 1525075968000, "modified": 1525075971000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -11,20 +12,22 @@ "jobId": "5c2cd8e5-27d0-42e3-85a1-85db5eaba459", "templateId": "d42ba7c8-9e19-4e34-ae2c-d8af3f24498e", "userId": "16807000", + "aLaCarte": false, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d9c", "jobStatus": "FAILED", "statusModifiedDate": 1525075968000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "nWUfl instance name_002", @@ -37,6 +40,7 @@ "id": 7, "created": 1525075968000, "modified": 1525075971000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -45,20 +49,22 @@ "jobId": "13063a83-924e-4500-a3a1-e53d1b58450b", "templateId": "d42ba7c8-9e19-4e34-ae2c-d8af3f24498e", "userId": "16807000", + "aLaCarte": false, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d9d", "jobStatus": "IN_PROGRESS", "statusModifiedDate": 1525075968000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "nWUfl instance name_001", @@ -71,6 +77,7 @@ "id": 6, "created": 1525007432000, "modified": 1525007434000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -79,6 +86,8 @@ "jobId": "e1db03c3-6274-4ff7-84cf-7bd3a3946de7", "templateId": "cad41760-8653-4c5a-a5fd-8ee34780ae69", "userId": "16807000", + "aLaCarte": false, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d8e", "jobStatus": "FAILED", "statusModifiedDate": 1525007432000, "hidden": false, @@ -105,6 +114,7 @@ "id": 5, "created": 1524995555000, "modified": 1524995556000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -113,20 +123,22 @@ "jobId": "9f88fdb5-bb47-4bf3-8c5f-98f1ad0ec87c", "templateId": "ce4ec177-cfc8-483e-8a2c-b7aea53fd740", "userId": "16807000", + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d91", + "requestId": null, "jobStatus": "FAILED", "statusModifiedDate": 1524995555000, "hidden": false, "pause": false, "owningEntityId": "aaa1", "owningEntityName": "aaa1", - "project": "DFW", + "project": "WATKINS", "aicZoneId": "BAN1", "aicZoneName": "VSDKYUTP-BAN1", "tenantId": "1178612d2b394be4834ad77f567c0af2", "tenantName": "AIN Web Tool-15-D-SSPtestcustome", - "regionId": "mtn6", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": null, @@ -139,6 +151,7 @@ "id": 4, "created": 1524994349000, "modified": 1524994350000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -147,20 +160,22 @@ "jobId": "b73b1543-fa12-4ad5-8ef5-49f02eb33698", "templateId": "79af00c6-4712-432a-8989-b6419c8baa40", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d94", "jobStatus": "FAILED", "statusModifiedDate": 1524994349000, "hidden": false, "pause": false, "owningEntityId": "aaa1", "owningEntityName": "aaa1", - "project": "DFW", + "project": "WATKINS", "aicZoneId": null, "aicZoneName": null, "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", "tenantName": "AIN Web Tool-15-D-STTest2", - "regionId": "mtn6", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": null, @@ -173,6 +188,7 @@ "id": 3, "created": 1524991828000, "modified": 1524991830000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -181,20 +197,22 @@ "jobId": "725ef127-4ee5-4665-bdf1-55ee342b362f", "templateId": "6bd53c0d-8742-43f6-9ed2-efbb87062779", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d96", "jobStatus": "FAILED", "statusModifiedDate": 1524991828000, "hidden": false, "pause": false, "owningEntityId": "aaa1", "owningEntityName": "aaa1", - "project": "DFW", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", "tenantName": "USP-SIP-IC-24335-T-01", - "regionId": "AAIAIC25", + "regionId": "JANET25", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": null, @@ -207,6 +225,7 @@ "id": 2, "created": 1524663233000, "modified": 1524663236000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -215,20 +234,22 @@ "jobId": "b1ff271b-829a-43f9-a2e3-23987a34f261", "templateId": "262fccc5-cae9-4258-b522-540c4010e0a9", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d98", "jobStatus": "FAILED", "statusModifiedDate": 1524663233000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "sPenLiZXXpqzsVck instance name_02", @@ -241,6 +262,7 @@ "id": 1, "created": 1524663233000, "modified": 1524663236000, + "action": "INSTANTIATE", "createdId": null, "modifiedId": null, "rowNum": null, @@ -249,20 +271,22 @@ "jobId": "850dc7d2-5240-437f-9bcd-b1ed7dc339ca", "templateId": "262fccc5-cae9-4258-b522-540c4010e0a9", "userId": "16807000", + "aLaCarte": true, + "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d45", "jobStatus": "IN_PROGRESS", "statusModifiedDate": 1524663233000, "hidden": false, "pause": false, "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "owningEntityName": "MetroPacketCore", - "project": "DFW", + "owningEntityName": "WayneHolland", + "project": "WATKINS", "aicZoneId": "NFT1", "aicZoneName": "NFTJSSSS-NFT1", "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", - "tenantName": "AIN Web Tool-15-D-testgamma", - "regionId": "mtn6", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "regionId": "hvf6", "regionName": null, - "serviceType": "VIRTUAL USP", + "serviceType": "TYLER SILVIA", "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89", "serviceInstanceId": null, "serviceInstanceName": "sPenLiZXXpqzsVck instance name_01", diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json new file mode 100644 index 000000000..46989e143 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json @@ -0,0 +1,51 @@ +{ + "service": { + "uuid": "12344bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "", + "serviceRole": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": { + + } + }, + "vnfs": { + + }, + "networks": { + + }, + "collectionResource": {}, + "configurations": { + + }, + "fabricConfigurations": { + "Fabric Configuration 0": { + "invariantUuid" : "1608eef4-de53-4334-a8d2-ba79cab4bddd", + "uuid": "88379cfd-fa0f-4946-8958-acc32640ceee", + "customizationUuid": "1e7f6512-c1cf-4b96-b5f5-b22a212ddad0", + "version": "3.0", + "name": "Fabric Configuration Object", + "description": "Fabric Configuration Object", + "type": "Configuration" + } + }, + "serviceProxies": { + + }, + "vfModules": { + + }, + "volumeGroups": { + + }, + "pnfs": { + + } +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkInstance.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkInstance.json new file mode 100644 index 000000000..3f85c89b5 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkInstance.json @@ -0,0 +1,73 @@ +{ + "networks": { + "ExtVL 0": { + "rollbackOnFailure": "false", + "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "lcpCloudRegionId": "hvf6", + "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", + "lineOfBusiness": "zzz1", + "platformName": "platform", + "originalName": "ExtVL 0", + "modelInfo": { + "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c", + "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "modelName": "ExtVL", + "modelVersion": "37.0", + "modelType": "network", + "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "modelCustomizationName": "ExtVL 0" + }, + "instanceName": "ExtVL 0", + "instanceId": "NETWORK_INSTANCE_ID", + "action": "None" + } + }, + "vnfs": {}, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 0, + "existingNames": { + "123": "", + "instancename": "", + "yoav": "" + }, + "existingVNFCounterMap": {}, + "existingNetworksCounterMap": {}, + "instanceName": "InstanceName", + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "JAG1", + "projectName": "WATKINS", + "rollbackOnFailure": "true", + "aicZoneName": "YUDFJULP-JAG1", + "owningEntityName": "WayneHolland", + "testApi": "GR_API", + "tenantName": "USP-SIP-IC-24335-T-01", + "bulkSize": 1, + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "modelName": "action-data", + "modelVersion": "1.0", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450" + }, + "isALaCarte": true, + "name": "action-data", + "version": "1.0", + "description": "", + "category": "", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceType": "", + "serviceRole": "", + "isMultiStepDesign": false, + "instanceId": "f8791436-8d55-4fde-b4d5-72dd2cf13cfb", + "action": "None" +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkModel.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkModel.json new file mode 100644 index 000000000..cd411fed4 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkModel.json @@ -0,0 +1,56 @@ +{ + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "A-La-Carte", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": {}, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "min_instances": 1, + "max_instances": 10, + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {} +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json index 714b3a429..858d0938e 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json @@ -46,16 +46,16 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -84,7 +84,7 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -106,7 +106,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -146,16 +146,16 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -184,7 +184,7 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -206,7 +206,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -246,16 +246,16 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -284,7 +284,7 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -306,7 +306,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -778,28 +778,28 @@ "lcpRegionsAndTenants": { "lcpRegionList": [ { - "id": "AAIAIC25", - "name": "AAIAIC25", + "id": "JANET25", + "name": "JANET25 (AIC)", "isPermitted": true }, { - "id": "mtn6", - "name": "mtn6", + "id": "hvf6", + "name": "hvf6 (AIC)", "isPermitted": true } ], "lcpRegionsTenantsMap": { - "AAIAIC25": [ + "JANET25": [ { "id": "092eb9e8e4b7412e8787dd091bc58e86", "name": "USP-SIP-IC-24335-T-01", "isPermitted": true } ], - "mtn6": [ + "hvf6": [ { "id": "bae71557c5bb4d5aac6743a4e5f1d054", - "name": "AIN Web Tool-15-D-testgamma", + "name": "AIN Web Tool-15-D-testalexandria", "isPermitted": true }, { @@ -939,7 +939,7 @@ }, { "id": "d0a3e3f2964542259d155a81c41aadc3", - "name": "test-mtn6-09", + "name": "test-hvf6-09", "isPermitted": true }, { @@ -953,34 +953,34 @@ "subscribers": [ { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", - "name": "Mobility", + "name": "Emanuel", "isPermitted": false }, { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc", - "name": "PACKET CORE", + "name": "JULIO ERICKSON", "isPermitted": false }, { "id": "e433710f-9217-458d-a79d-1c7aff376d89", - "name": "USP VOICE", + "name": "SILVIA ROBBINS", "isPermitted": true } ], "productFamilies": [ { "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", - "name": "DHV", + "name": "SCOTTIE", "isPermitted": true }, { "id": "17cc1042-527b-11e6-beb8-9e71128cae77", - "name": "FLEXREACH", + "name": "IGNACIO", "isPermitted": true }, { "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", - "name": "Netbond", + "name": "Christie", "isPermitted": true }, { @@ -989,8 +989,8 @@ "isPermitted": true }, { - "id": "vRRaaS", - "name": "vRRaaS", + "id": "vTerrance", + "name": "vTerrance", "isPermitted": true }, { @@ -1000,7 +1000,7 @@ }, { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", - "name": "Mobility", + "name": "Emanuel", "isPermitted": true }, { @@ -1010,7 +1010,7 @@ }, { "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", - "name": "FIRSTNET", + "name": "LINDSEY", "isPermitted": true }, { @@ -1019,18 +1019,18 @@ "isPermitted": true }, { - "id": "vHNGWaas", + "id": "vRosemarie", "name": "HNGATEWAY", "isPermitted": true }, { "id": "vHNPaas", - "name": "HNPORTAL", + "name": "WILKINS", "isPermitted": true }, { "id": "e433710f-9217-458d-a79d-1c7aff376d89", - "name": "VIRTUAL USP", + "name": "TYLER SILVIA", "isPermitted": true }, { @@ -1039,18 +1039,18 @@ "isPermitted": true }, { - "id": "VIPRaaS", - "name": "vIPRaaS", + "id": "Cisneros", + "name": "vMuriel", "isPermitted": true }, { "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", - "name": "WAN Bonding", + "name": "CARA Griffin", "isPermitted": true }, { "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", - "name": "HOSTED COMMUNICATIONS", + "name": "DARREN MCGEE", "isPermitted": true }, { @@ -1059,23 +1059,23 @@ "isPermitted": true }, { - "id": "vVIGaaS", - "name": "vVIGaaS", + "id": "vSalvatore", + "name": "vSalvatore", "isPermitted": true }, { "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", - "name": "uCPE-VMS", + "name": "Josefina", "isPermitted": true }, { - "id": "vPEaaS", - "name": "vPEaaS", + "id": "vHubbard", + "name": "vHubbard", "isPermitted": true }, { "id": "12a96a9d-4b4c-4349-a950-fe1159602621", - "name": "HOSTED COMMUNICATIONS", + "name": "DARREN MCGEE", "isPermitted": true } ], @@ -1083,22 +1083,22 @@ "e433710f-9217-458d-a79d-1c7aff376d89": [ { "id": "0", - "name": "vFlowLogic", + "name": "vRichardson", "isPermitted": false }, { "id": "1", - "name": "VIRTUAL USP", + "name": "TYLER SILVIA", "isPermitted": true }, { "id": "2", - "name": "Mobility", + "name": "Emanuel", "isPermitted": false }, { "id": "3", - "name": "vBNG", + "name": "vJamie", "isPermitted": false }, { @@ -1108,7 +1108,7 @@ }, { "id": "5", - "name": "Nimbus", + "name": "Kennedy", "isPermitted": false }, { @@ -1163,17 +1163,17 @@ }, { "id": "16", - "name": "FIRSTNET", + "name": "LINDSEY", "isPermitted": false }, { "id": "17", - "name": "ACTIVE_CHARGE", + "name": "JOHANNA_SANTOS", "isPermitted": false }, { "id": "18", - "name": "vHSS", + "name": "vCarroll", "isPermitted": false } ] @@ -1956,17 +1956,17 @@ }, { "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "name": "MetroPacketCore" + "name": "WayneHolland" }, { - "id": "Wireline", - "name": "Wireline" + "id": "Melissa", + "name": "Melissa" } ], "projectList": [ { - "id": "DFW", - "name": "DFW" + "id": "WATKINS", + "name": "WATKINS" }, { "id": "x1", @@ -1979,8 +1979,8 @@ ], "lineOfBusinessList": [ { - "id": "ECOMP", - "name": "ECOMP" + "id": "ONAP", + "name": "ONAP" }, { "id": "zzz1", diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json new file mode 100644 index 000000000..4a0dc2422 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json @@ -0,0 +1,192 @@ +{ + "service": { + "uuid": "74fa72dd-012b-49c3-800d-06b12bcaf1a0", + "invariantUuid": "bceeaff9-5716-42bf-8fa1-8c6f720cf61d", + "name": "Dror_service1806_Macro1", + "version": "2.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "b", + "serviceRole": "c", + "description": "test", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "092017_VSP_GINGERby11 0": { + "uuid": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d", + "invariantUuid": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92", + "description": "092017_VSP_GINGERby11", + "name": "092017_VSP_GINGERby11", + "version": "1.0", + "customizationUuid": "cc40295f-a834-4f42-b634-32fff9d6489b", + "inputs": {}, + "commands": {}, + "properties": { + "nf_naming": "{ecomp_generated_naming=true}", + "mmn_volume_name_4": "misc-mn-v-vde", + "multi_stage_design": "false", + "mmn_volume_size_1": "20.0", + "mmn_volume_name_1": "data-mn-v-vdb", + "availability_zone_max_count": "1", + "mmn_volume_name_3": "backup-mn-v-vdd", + "mmn_volume_name_2": "arch-mn-v-vdc", + "ecomp_generated_naming": "true", + "mmn_volume_size_2": "20.0", + "mmn_volume_size_3": "50.0", + "mmn_volume_size_4": "20.0" + }, + "type": "VF", + "modelCustomizationName": "092017_VSP_GINGERby11 0", + "vfModules": { + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_vmt..module-1": { + "uuid": "96af1531-35b5-44b8-b8e9-17e400cce6fd", + "invariantUuid": "be556344-d212-4c88-9fe1-c72003591e78", + "customizationUuid": "abb15cf7-174a-4815-86e8-91997b1f07b7", + "description": null, + "name": "092017VspGingerby11..pxmc_vmt..module-1", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_vmt..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "pxmc_vmt" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": { + "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6", + "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d", + "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457", + "description": null, + "name": "092017VspGingerby11..pxmc_mmn..module-2", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "pxmc_mmn" + }, + "inputs": {}, + "volumeGroupAllowed": true + }, + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_base..module-0": { + "uuid": "a3d8289d-7b29-4e0f-8b51-e825bfe54749", + "invariantUuid": "dea04dc1-f4fb-435d-80b4-f176d4c15653", + "customizationUuid": "e6e4a00e-3fde-459c-9a68-4bf2b35d5e9e", + "description": null, + "name": "092017VspGingerby11..pxmc_base..module-0", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_base..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "pxmc_base" + }, + "inputs": {}, + "volumeGroupAllowed": false + } + }, + "volumeGroups": { + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": { + "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6", + "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d", + "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457", + "description": null, + "name": "092017VspGingerby11..pxmc_mmn..module-2", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "pxmc_mmn" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": { + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_vmt..module-1": { + "uuid": "96af1531-35b5-44b8-b8e9-17e400cce6fd", + "invariantUuid": "be556344-d212-4c88-9fe1-c72003591e78", + "customizationUuid": "abb15cf7-174a-4815-86e8-91997b1f07b7", + "description": null, + "name": "092017VspGingerby11..pxmc_vmt..module-1", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_vmt..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "pxmc_vmt" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_base..module-0": { + "uuid": "a3d8289d-7b29-4e0f-8b51-e825bfe54749", + "invariantUuid": "dea04dc1-f4fb-435d-80b4-f176d4c15653", + "customizationUuid": "e6e4a00e-3fde-459c-9a68-4bf2b35d5e9e", + "description": null, + "name": "092017VspGingerby11..pxmc_base..module-0", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_base..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "pxmc_base" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": { + "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6", + "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d", + "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457", + "description": null, + "name": "092017VspGingerby11..pxmc_mmn..module-2", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "pxmc_mmn" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": { + "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6", + "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d", + "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457", + "description": null, + "name": "092017VspGingerby11..pxmc_mmn..module-2", + "version": "1", + "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "pxmc_mmn" + }, + "inputs": {} + } + }, + "pnfs": {} +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro_NW.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro_NW.json new file mode 100644 index 000000000..fe7efe36f --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro_NW.json @@ -0,0 +1,143 @@ +{ + "service": { + "uuid": "bd8ffd14-da36-4f62-813c-6716ba9f4354", + "invariantUuid": "b1f489c0-2aa0-47e1-ba6c-98658d6945bf", + "name": "Dror_service1806_Macro_NW", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "cc", + "serviceRole": "ccc", + "description": "test", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": {} + }, + "vnfs": { + "2016-233_XSP_bfsa_nin2 0": { + "uuid": "327138f7-0608-4774-bb2c-959332a18399", + "invariantUuid": "74dc0354-a178-43ee-91f2-ec1f288cd50d", + "description": "VSP for XSP after network recreated", + "name": "2016-233_XSP_bfsa_nin2", + "version": "1.0", + "customizationUuid": "643b38b5-b75b-4506-8be5-55595ca2cbef", + "inputs": {}, + "commands": {}, + "properties": { + "xsa_PF_DMZ_security_group": "default", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "false", + "availability_zone_max_count": "1", + "xsa_IF_DMZ_security_group": "default", + "xsa_image_name": "E-IPFR_XSP_R21.qcow2", + "ecomp_generated_naming": "true", + "vnf_name": "bfsa0007v", + "xsa_cinder_volume_size_0": "300", + "xsa_flavor_name": "nd.c4r8d0", + "xsa_cinder_volume_size_1": "300", + "xsa_NSDNet_net_security_group": "default" + }, + "type": "VF", + "modelCustomizationName": "2016-233_XSP_bfsa_nin2 0", + "vfModules": { + "2016233_xsp_bfsa_nin20..2016233XspBfsaNin2..base_bwks_xspa..module-0": { + "uuid": "52d5a1a1-ada5-49b6-864c-8405af43b6b4", + "invariantUuid": "dfb65a6b-d5ba-4142-bbee-b83eda3902d6", + "customizationUuid": "d9d146cc-48c1-43fb-a6ef-927c75eaa4ab", + "description": null, + "name": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "version": "1", + "modelCustomizationName": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_bwks_xspa" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2016233_xsp_bfsa_nin20..2016233XspBfsaNin2..base_bwks_xspa..module-0": { + "uuid": "52d5a1a1-ada5-49b6-864c-8405af43b6b4", + "invariantUuid": "dfb65a6b-d5ba-4142-bbee-b83eda3902d6", + "customizationUuid": "d9d146cc-48c1-43fb-a6ef-927c75eaa4ab", + "description": null, + "name": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "version": "1", + "modelCustomizationName": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_bwks_xspa" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "40083c20-b1ab-449a-8f6d-f75406c497ac", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "40.0", + "customizationUuid": "14ef5a8f-55db-411b-a64c-40c200073f1f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": { + "2016233_xsp_bfsa_nin20..2016233XspBfsaNin2..base_bwks_xspa..module-0": { + "uuid": "52d5a1a1-ada5-49b6-864c-8405af43b6b4", + "invariantUuid": "dfb65a6b-d5ba-4142-bbee-b83eda3902d6", + "customizationUuid": "d9d146cc-48c1-43fb-a6ef-927c75eaa4ab", + "description": null, + "name": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "version": "1", + "modelCustomizationName": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_bwks_xspa" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2016233_xsp_bfsa_nin20..2016233XspBfsaNin2..base_bwks_xspa..module-0": { + "uuid": "52d5a1a1-ada5-49b6-864c-8405af43b6b4", + "invariantUuid": "dfb65a6b-d5ba-4142-bbee-b83eda3902d6", + "customizationUuid": "d9d146cc-48c1-43fb-a6ef-927c75eaa4ab", + "description": null, + "name": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "version": "1", + "modelCustomizationName": "2016233XspBfsaNin2..base_bwks_xspa..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_bwks_xspa" + }, + "inputs": {} + } + }, + "pnfs": {} +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/list-services.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/list-services.json new file mode 100644 index 000000000..daa413dd9 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/list-services.json @@ -0,0 +1,47 @@ +{ + "services": [ + { + "uuid": "ee6d61be-4841-4f98-8f23-5de9da846ca7", + "invariantUUID": "b7d923c9-6175-41f1-91ba-4565c4953408", + "name": "ServiceContainerMultiplepProbes", + "version": "1.0", + "toscaModelURL": null, + "category": "service", + "lifecycleState": null, + "lastUpdaterUserId": null, + "lastUpdaterFullName": null, + "distributionStatus": "DISTRIBUTION_COMPLETE_OK", + "artifacts": null, + "resources": null + }, + { + "uuid": "bd8ffd14-da36-4f62-813c-6716ba9f4354", + "invariantUUID": "b1f489c0-2aa0-47e1-ba6c-98658d6945bf", + "name": "Dror_service1806_Macro_NW", + "version": "1.0", + "toscaModelURL": null, + "category": "service", + "lifecycleState": null, + "lastUpdaterUserId": null, + "lastUpdaterFullName": null, + "distributionStatus": "DISTRIBUTION_COMPLETE_OK", + "artifacts": null, + "resources": null + }, + { + "uuid": "74fa72dd-012b-49c3-800d-06b12bcaf1a0", + "invariantUUID": "bceeaff9-5716-42bf-8fa1-8c6f720cf61d", + "name": "Dror_service1806_Macro1", + "version": "2.0", + "toscaModelURL": null, + "category": "service", + "lifecycleState": null, + "lastUpdaterUserId": null, + "lastUpdaterFullName": null, + "distributionStatus": "DISTRIBUTION_COMPLETE_OK", + "artifacts": null, + "resources": null + } + ], + "readOnly": false +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/service-with-configuration.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/service-with-configuration.json new file mode 100644 index 000000000..12d1c273a --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/service-with-configuration.json @@ -0,0 +1,170 @@ +{ + "service": { + "uuid": "ee6d61be-4841-4f98-8f23-5de9da846ca7", + "invariantUuid": "b7d923c9-6175-41f1-91ba-4565c4953408", + "name": "ServiceContainerMultiplepProbes", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "portMirroring", + "serviceRole": "pProbe", + "description": "sdfsdfsdf", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": {} + }, + "vnfs": {}, + "networks": {}, + "collectionResource": {}, + "configurations": { + "Port Mirroring Configuration By Policy 1": { + "uuid": "f58d039d-4cfc-40ec-bd75-1f05f0458a6c", + "invariantUuid": "c30a024e-a6c6-4670-b73c-3df64eb57ff6", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "1.0", + "customizationUuid": "4b7ebace-bad6-4526-9be6-bf248e20fc5f", + "inputs": {}, + "commands": {}, + "properties": { + "collector_node": "pprobeservice_proxy 5", + "policy_name": "policy2", + "equip_vendor": "Cisco", + "equip_model": "Nexus 3048-TP" + }, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 1", + "sourceNodes": [ + "vmmeservice2_proxy 2", + "vmmeservice2_proxy 3", + "vmmeservice_proxy 1" + ], + "collectorNodes": [ + "pprobeservice_proxy 5" + ], + "configurationByPolicy": true + }, + "Port Mirroring Configuration By Policy 0": { + "uuid": "f58d039d-4cfc-40ec-bd75-1f05f0458a6c", + "invariantUuid": "c30a024e-a6c6-4670-b73c-3df64eb57ff6", + "description": "A port mirroring configuration by policy object", + "name": "Port Mirroring Configuration By Policy", + "version": "1.0", + "customizationUuid": "08a181aa-72eb-435f-9593-e88a3ad0a86b", + "inputs": {}, + "commands": {}, + "properties": { + "collector_node": "pprobeservice_proxy 4", + "policy_name": "policy1", + "equip_vendor": "Cisco", + "equip_model": "Nexus 3048-TP" + }, + "type": "Configuration", + "modelCustomizationName": "Port Mirroring Configuration By Policy 0", + "sourceNodes": [ + "vmmeservice2_proxy 2", + "vmmeservice_proxy 1", + "vmmeservice_proxy 0" + ], + "collectorNodes": [ + "pprobeservice_proxy 4" + ], + "configurationByPolicy": true + } + }, + "serviceProxies": { + "vmmeservice_proxy 0": { + "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee", + "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10", + "description": "A Proxy for Service vmmeService", + "name": "vmmeService Service Proxy", + "version": "1.0", + "customizationUuid": "d7cfe338-eeda-4217-ba13-f24b0811fb17", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "c3e6c9bd-b24d-458e-aa99-e0cadf70c5e5", + "sourceModelInvariant": "dd8a805d-3946-4f11-9831-e26cd6aec9a3", + "sourceModelName": "vmmeService" + }, + "vmmeservice_proxy 1": { + "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee", + "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10", + "description": "A Proxy for Service vmmeService", + "name": "vmmeService Service Proxy", + "version": "1.0", + "customizationUuid": "7a69f133-564c-4eb6-b93e-0a8281967efb", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "c3e6c9bd-b24d-458e-aa99-e0cadf70c5e5", + "sourceModelInvariant": "dd8a805d-3946-4f11-9831-e26cd6aec9a3", + "sourceModelName": "vmmeService" + }, + "vmmeservice2_proxy 3": { + "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee", + "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10", + "description": "A Proxy for Service vmmeService2", + "name": "vmmeService2 Service Proxy", + "version": "1.0", + "customizationUuid": "9d81c21f-e29c-44f6-b5f6-caa974ee078a", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "2a2ea15f-07c6-4b89-bfca-e8aba39a34d6", + "sourceModelInvariant": "a7eac2b3-8444-40ee-92e3-b3359b32445c", + "sourceModelName": "vmmeService2" + }, + "pprobeservice_proxy 4": { + "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee", + "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10", + "description": "A Proxy for Service pProbeService", + "name": "pProbeService Service Proxy", + "version": "1.0", + "customizationUuid": "271efa3b-276e-4536-976a-cc9c9c014f1e", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "8a84e59b-45fe-4851-8ff1-34225a0b32c3", + "sourceModelInvariant": "83b458fd-5dd3-419b-a9e3-7335814a0911", + "sourceModelName": "pProbeService" + }, + "pprobeservice_proxy 5": { + "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee", + "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10", + "description": "A Proxy for Service pProbeService", + "name": "pProbeService Service Proxy", + "version": "1.0", + "customizationUuid": "d64623ae-5935-4afd-803e-c86e94d8e740", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "8a84e59b-45fe-4851-8ff1-34225a0b32c3", + "sourceModelInvariant": "83b458fd-5dd3-419b-a9e3-7335814a0911", + "sourceModelName": "pProbeService" + }, + "vmmeservice2_proxy 2": { + "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee", + "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10", + "description": "A Proxy for Service vmmeService2", + "name": "vmmeService2 Service Proxy", + "version": "1.0", + "customizationUuid": "060be63d-5f9c-4fd0-8ef7-830d5e8eca17", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "2a2ea15f-07c6-4b89-bfca-e8aba39a34d6", + "sourceModelInvariant": "a7eac2b3-8444-40ee-92e3-b3359b32445c", + "sourceModelName": "vmmeService2" + } + }, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {} +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/list-services.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/list-services.json new file mode 100644 index 000000000..c93191db1 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/list-services.json @@ -0,0 +1,19 @@ +{ + "services": [ + { + "uuid": "09c476c7-91ae-44b8-a731-04d8d8fa3695", + "invariantUUID": "11819cb5-0ad7-4c6d-9205-2ac30d09bdc6", + "name": "Mobility Networking Svc Mode", + "version": "1.0", + "toscaModelURL": null, + "category": "service", + "lifecycleState": null, + "lastUpdaterUserId": null, + "lastUpdaterFullName": null, + "distributionStatus": "DISTRIBUTION_COMPLETE_OK", + "artifacts": null, + "resources": null + } + ], + "readOnly": false +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/serviceWithoutInstantiationType.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/serviceWithoutInstantiationType.json new file mode 100644 index 000000000..90ca6128b --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/serviceWithoutInstantiationType.json @@ -0,0 +1,25 @@ +{ + "service": { + "uuid": "09c476c7-91ae-44b8-a731-04d8d8fa3695", + "invariantUuid": "11819cb5-0ad7-4c6d-9205-2ac30d09bdc6", + "name": "Mobility Networking Svc Mode", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": null, + "serviceRole": null, + "description": "single generic service model with mobility VLs in it to create any mobility network", + "serviceEcompNaming": "false", + "instantiationType": null, + "inputs": {} + }, + "vnfs": {}, + "networks": {}, + "collectionResource": null, + "configurations": null, + "fabricConfigurations": {}, + "serviceProxies": null, + "vfModules": null, + "volumeGroups": null, + "pnfs": null +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/categoryParametres.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/categoryParametres.json index 93a8bf5d6..e95d1d43b 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/categoryParametres.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/categoryParametres.json @@ -2,8 +2,8 @@ "categoryParameters": { "lineOfBusiness": [ { - "id": "ECOMP", - "name": "ECOMP" + "id": "ONAP", + "name": "ONAP" }, { "id": "zzz1", @@ -17,17 +17,17 @@ }, { "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "name": "MetroPacketCore" + "name": "WayneHolland" }, { - "id": "Wireline", - "name": "Wireline" + "id": "Melissa", + "name": "Melissa" } ], "project": [ { - "id": "DFW", - "name": "DFW" + "id": "WATKINS", + "name": "WATKINS" }, { "id": "x1", diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json new file mode 100644 index 000000000..3e556550c --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json @@ -0,0 +1,51 @@ +{ + "service": { + "uuid": "90004bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "90003f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "", + "serviceRole": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": { + + } + }, + "vnfs": { + + }, + "networks": { + + }, + "collectionResource": {}, + "configurations": { + + }, + "fabricConfigurations": { + "Fabric Configuration 0": { + "invariantUuid" : "1608eef4-de53-4334-a8d2-ba79cab4bddd", + "uuid": "88379cfd-fa0f-4946-8958-acc32640ceee", + "customizationUuid": "1e7f6512-c1cf-4b96-b5f5-b22a212ddad0", + "version": "3.0", + "name": "Fabric Configuration Object", + "description": "Fabric Configuration Object", + "type": "Configuration" + } + }, + "serviceProxies": { + + }, + "vfModules": { + + }, + "volumeGroups": { + + }, + "pnfs": { + + } +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json new file mode 100644 index 000000000..e3aeca412 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json @@ -0,0 +1,51 @@ +{ + "service": { + "uuid": "10004bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "10003f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "", + "serviceRole": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": { + + } + }, + "vnfs": { + + }, + "networks": { + + }, + "collectionResource": {}, + "configurations": { + + }, + "fabricConfigurations": { + "Fabric Configuration 0": { + "invariantUuid" : "1608eef4-de53-4334-a8d2-ba79cab4bddd", + "uuid": "88379cfd-fa0f-4946-8958-acc32640ceee", + "customizationUuid": "1e7f6512-c1cf-4b96-b5f5-b22a212ddad0", + "version": "3.0", + "name": "Fabric Configuration Object", + "description": "Fabric Configuration Object", + "type": "Configuration" + } + }, + "serviceProxies": { + + }, + "vfModules": { + + }, + "volumeGroups": { + + }, + "pnfs": { + + } +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json index bf5420497..b1a139a80 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json @@ -40,22 +40,24 @@ "inputs": {}, "commands": {}, "properties": { + "max_instances" : 10, + "min_instances" : 1, "vmxvre_retype": "RE-VMX", "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -84,8 +86,8 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", - "ecomp_generated_naming": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", @@ -106,7 +108,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -140,22 +142,24 @@ "inputs": {}, "commands": {}, "properties": { + "max_instances" : 10, + "min_instances" : 1, "vmxvre_retype": "RE-VMX", "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -184,7 +188,7 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -206,7 +210,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -240,22 +244,24 @@ "inputs": {}, "commands": {}, "properties": { + "max_instances" : 10, + "min_instances" : 1, "vmxvre_retype": "RE-VMX", "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -284,8 +290,8 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", - "ecomp_generated_naming": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", @@ -306,7 +312,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -815,16 +821,16 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "ROUTER", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -854,7 +860,7 @@ "vf_module_id": "123", "nf_function": "ADIOD vPE", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -876,7 +882,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -1402,6 +1408,8 @@ }, "serviceInstance": { "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "existingVNFCounterMap": {}, + "existingNetworksCounterMap" : {}, "vnfs": {}, "instanceParams": [ { @@ -1410,11 +1418,11 @@ ], "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", - "subscriptionServiceType": "VIRTUAL USP", - "lcpCloudRegionId": "AAIAIC25", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "JANET25", "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", "aicZoneId": "JAG1", - "projectName": "DFW", + "projectName": "WATKINS", "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", "bulkSize": 1, "modelInfo": { @@ -1424,36 +1432,37 @@ "modelName": "action-data", "modelVersion": "1.0" }, - "isUserProvidedNaming": false, + "isEcompGeneratedNaming": true, "tenantName": "USP-SIP-IC-24335-T-01", - "aicZoneName": "YUDFJULP-JAG1" + "aicZoneName": "YUDFJULP-JAG1", + "existingNames": {} } }, "lcpRegionsAndTenants": { "lcpRegionList": [ { - "id": "AAIAIC25", - "name": "AAIAIC25", + "id": "JANET25", + "name": "JANET25", "isPermitted": true }, { - "id": "mtn6", - "name": "mtn6", + "id": "hvf6", + "name": "hvf6", "isPermitted": true } ], "lcpRegionsTenantsMap": { - "AAIAIC25": [ + "JANET25": [ { "id": "092eb9e8e4b7412e8787dd091bc58e86", "name": "USP-SIP-IC-24335-T-01", "isPermitted": true } ], - "mtn6": [ + "hvf6": [ { "id": "bae71557c5bb4d5aac6743a4e5f1d054", - "name": "AIN Web Tool-15-D-testgamma", + "name": "AIN Web Tool-15-D-testalexandria", "isPermitted": true }, { @@ -1593,7 +1602,7 @@ }, { "id": "d0a3e3f2964542259d155a81c41aadc3", - "name": "test-mtn6-09", + "name": "test-hvf6-09", "isPermitted": true }, { @@ -1607,34 +1616,34 @@ "subscribers": [ { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", - "name": "Mobility", + "name": "Emanuel", "isPermitted": false }, { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc", - "name": "PACKET CORE", + "name": "JULIO ERICKSON", "isPermitted": false }, { "id": "e433710f-9217-458d-a79d-1c7aff376d89", - "name": "USP VOICE", + "name": "SILVIA ROBBINS", "isPermitted": true } ], "productFamilies": [ { "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", - "name": "DHV", + "name": "SCOTTIE", "isPermitted": true }, { "id": "17cc1042-527b-11e6-beb8-9e71128cae77", - "name": "FLEXREACH", + "name": "IGNACIO", "isPermitted": true }, { "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", - "name": "Netbond", + "name": "Christie", "isPermitted": true }, { @@ -1643,8 +1652,8 @@ "isPermitted": true }, { - "id": "vRRaaS", - "name": "vRRaaS", + "id": "vTerrance", + "name": "vTerrance", "isPermitted": true }, { @@ -1654,7 +1663,7 @@ }, { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", - "name": "Mobility", + "name": "Emanuel", "isPermitted": true }, { @@ -1664,7 +1673,7 @@ }, { "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", - "name": "FIRSTNET", + "name": "LINDSEY", "isPermitted": true }, { @@ -1673,18 +1682,18 @@ "isPermitted": true }, { - "id": "vHNGWaas", + "id": "vRosemarie", "name": "HNGATEWAY", "isPermitted": true }, { "id": "vHNPaas", - "name": "HNPORTAL", + "name": "WILKINS", "isPermitted": true }, { "id": "e433710f-9217-458d-a79d-1c7aff376d89", - "name": "VIRTUAL USP", + "name": "TYLER SILVIA", "isPermitted": true }, { @@ -1693,18 +1702,18 @@ "isPermitted": true }, { - "id": "VIPRaaS", - "name": "vIPRaaS", + "id": "Cisneros", + "name": "vMuriel", "isPermitted": true }, { "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", - "name": "WAN Bonding", + "name": "CARA Griffin", "isPermitted": true }, { "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", - "name": "HOSTED COMMUNICATIONS", + "name": "DARREN MCGEE", "isPermitted": true }, { @@ -1713,23 +1722,23 @@ "isPermitted": true }, { - "id": "vVIGaaS", - "name": "vVIGaaS", + "id": "vSalvatore", + "name": "vSalvatore", "isPermitted": true }, { "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", - "name": "uCPE-VMS", + "name": "Josefina", "isPermitted": true }, { - "id": "vPEaaS", - "name": "vPEaaS", + "id": "vHubbard", + "name": "vHubbard", "isPermitted": true }, { "id": "12a96a9d-4b4c-4349-a950-fe1159602621", - "name": "HOSTED COMMUNICATIONS", + "name": "DARREN MCGEE", "isPermitted": true } ], @@ -1737,22 +1746,22 @@ "e433710f-9217-458d-a79d-1c7aff376d89": [ { "id": "0", - "name": "vFlowLogic", + "name": "vRichardson", "isPermitted": false }, { "id": "1", - "name": "VIRTUAL USP", + "name": "TYLER SILVIA", "isPermitted": true }, { "id": "2", - "name": "Mobility", + "name": "Emanuel", "isPermitted": false }, { "id": "3", - "name": "vBNG", + "name": "vJamie", "isPermitted": false }, { @@ -1762,7 +1771,7 @@ }, { "id": "5", - "name": "Nimbus", + "name": "Kennedy", "isPermitted": false }, { @@ -1817,17 +1826,17 @@ }, { "id": "16", - "name": "FIRSTNET", + "name": "LINDSEY", "isPermitted": false }, { "id": "17", - "name": "ACTIVE_CHARGE", + "name": "JOHANNA_SANTOS", "isPermitted": false }, { "id": "18", - "name": "vHSS", + "name": "vCarroll", "isPermitted": false } ] @@ -2610,17 +2619,17 @@ }, { "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "name": "MetroPacketCore" + "name": "WayneHolland" }, { - "id": "Wireline", - "name": "Wireline" + "id": "Melissa", + "name": "Melissa" } ], "projectList": [ { - "id": "DFW", - "name": "DFW" + "id": "WATKINS", + "name": "WATKINS" }, { "id": "x1", @@ -2633,8 +2642,8 @@ ], "lineOfBusinessList": [ { - "id": "ECOMP", - "name": "ECOMP" + "id": "ONAP", + "name": "ONAP" }, { "id": "zzz1", diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json index a2e154308..b8c3136f0 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json @@ -1,15 +1,23 @@ { - "FLAG_ADVANCED_PORTS_FILTER": true, "CREATE_INSTANCE_TEST": false, "EMPTY_DRAWING_BOARD_TEST": false, - "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": true, - "FLAG_REGION_ID_FROM_REMOTE": true, + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, "FLAG_ASYNC_INSTANTIATION": true, "FLAG_ASYNC_JOBS": true, "FLAG_ADD_MSO_TESTAPI_FIELD": true, "FLAG_UNASSIGN_SERVICE": false, "FLAG_SERVICE_MODEL_CACHE": false, "FLAG_COLLECTION_RESOURCE_SUPPORT": true, - "FLAG_SHOW_ASSIGNMENTS": true - + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_DUPLICATE_VNF":true, + "FLAG_DEFAULT_VNF" : true, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD" : true, + "FLAG_A_LA_CARTE_AUDIT_INFO": true, + "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true, + "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true, + "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true, + "FLAG_1902_NEW_VIEW_EDIT": true, + "FLAG_VF_MODULE_RESUME_STATUS_CREATE" : true, + "FLAG_1906_COMPONENT_INFO": true } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/responceForFailedInstance.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/responceForFailedInstance.json new file mode 100644 index 000000000..8e5c23689 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/responceForFailedInstance.json @@ -0,0 +1,12 @@ +{ + "id":null, + "jobId":null, + "instanceName":null, + "instanceType":null, + "jobStatus":"FAILED", + "source":null, + "requestId":null, + "additionalInfo":"Http Code:500, RAW DATA FROM MSO", + "final":false, + "createdDate":1549198388000 +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/service.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/service.json index 3da9015ad..5cb1c8655 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/service.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/service.json @@ -30,16 +30,16 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -68,7 +68,7 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -90,7 +90,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -130,16 +130,16 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -168,7 +168,7 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -190,7 +190,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -230,16 +230,16 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", @@ -268,7 +268,7 @@ "vf_module_id": "123", "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -290,7 +290,7 @@ "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json new file mode 100644 index 000000000..d34da2bea --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json @@ -0,0 +1,1065 @@ +{ + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/serviceForNewViewEdit.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/serviceForNewViewEdit.json new file mode 100644 index 000000000..a749e5787 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/serviceForNewViewEdit.json @@ -0,0 +1,130 @@ +{ + "service": { + "uuid": "a1531622-4e08-43fa-9ffd-222090cab7d2", + "invariantUuid": "c54c1178-ab4b-498c-aea0-52cc2043d44f", + "name": "mdns_2017_1011_IST_Service", + "version": "5.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "mdns_2017_1011_IST_Service -Creating Service for PID 298109a", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": {}, + "vidNotions": { + "instantiationUI": "serviceWithVnfGrouping", + "modelCategory": "other", + "viewEditUI" : "serviceWithVnfGrouping" + } + }, + "vnfs": { + "mdns_2017_1011_IST_Vf 0": { + "uuid": "e54ac8ab-746b-494d-918a-efab23a50e0d", + "invariantUuid": "b22715a2-4ec1-4e2f-bf4f-d79fa9519707", + "description": "mdns_2017_1011_IST_Vf -Creating for PID 298109a", + "name": "mdns_2017_1011_IST_Vf", + "version": "4.0", + "customizationUuid": "efa526df-e1f5-4fda-9e0d-475cb5e44e4f", + "inputs": {}, + "commands": {}, + "properties": { + "nf_naming": "{naming_policy=gw1218.Config_MS_VmVnfcNamingPolicyMobility1710.*, ecomp_generated_naming=true}", + "multi_stage_design": "false", + "availability_zone_max_count": "1", + "ecomp_generated_naming": "true", + "node_count": "4.0", + "dns_image_name": "NIMBUS_MDNS_3.0.4.qcow2", + "route_eth0": "135.144.38.211/32 via 107.239.83.1 dev eth0 155.165.201.253/32 via 107.239.83.1 dev eth0 141.204.0.0/16 via 107.239.83.1 dev eth0 ", + "dns_flavor_name": "nv.c4r4d80" + }, + "type": "VF", + "modelCustomizationName": "mdns_2017_1011_IST_Vf 0", + "vfModules": { + "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..base_dns..module-0": { + "uuid": "1259fe65-4112-44ab-a622-cc9f99296c90", + "invariantUuid": "0be2f9a6-889a-45bd-9ba5-13ef9f62474b", + "customizationUuid": "89200091-4583-4f01-bc2b-aade7a0eb6de", + "description": null, + "name": "Mdns20171011IstVf..base_dns..module-0", + "version": "1", + "modelCustomizationName": "Mdns20171011IstVf..base_dns..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_dns", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..dns_az_01..module-1": { + "uuid": "c921c0dd-4f02-4b1e-8234-063675955c45", + "invariantUuid": "3744764d-32a1-468f-801d-2fc2485dc159", + "customizationUuid": "a86c56b6-7d7d-4bc1-b60f-ea384cadd232", + "description": null, + "name": "Mdns20171011IstVf..dns_az_01..module-1", + "version": "1", + "modelCustomizationName": "Mdns20171011IstVf..dns_az_01..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "dns_az_01", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": false + } + }, + "volumeGroups": {}, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..base_dns..module-0": { + "uuid": "1259fe65-4112-44ab-a622-cc9f99296c90", + "invariantUuid": "0be2f9a6-889a-45bd-9ba5-13ef9f62474b", + "customizationUuid": "89200091-4583-4f01-bc2b-aade7a0eb6de", + "description": null, + "name": "Mdns20171011IstVf..base_dns..module-0", + "version": "1", + "modelCustomizationName": "Mdns20171011IstVf..base_dns..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_dns", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..dns_az_01..module-1": { + "uuid": "c921c0dd-4f02-4b1e-8234-063675955c45", + "invariantUuid": "3744764d-32a1-468f-801d-2fc2485dc159", + "customizationUuid": "a86c56b6-7d7d-4bc1-b60f-ea384cadd232", + "description": null, + "name": "Mdns20171011IstVf..dns_az_01..module-1", + "version": "1", + "modelCustomizationName": "Mdns20171011IstVf..dns_az_01..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "dns_az_01", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": false + } + }, + "volumeGroups": {}, + "pnfs": {} +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiServiceInstances.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiServiceInstances.json new file mode 100644 index 000000000..b195be57d --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiServiceInstances.json @@ -0,0 +1,14 @@ +{ + "service-instances": [ + { + "serviceInstanceId": "9cdd1b2a-43a7-47bc-a88e-759ba2399f0b", + "globalCustomerId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "serviceType": "vMOG", + "serviceInstanceName": "Network_repl_vMOG_rk", + "subscriberName": "Emanuel", + "aaiModelInvariantId": "92a72881-0a97-4d16-8c29-4831062e7e9b", + "aaiModelVersionId": "5a3ad576-c01d-4bed-8194-0e72b4a3d020", + "isPermitted": true + } + ] +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubDetailsForServiceWithNetwork.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubDetailsForServiceWithNetwork.json new file mode 100644 index 000000000..b447e1d58 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubDetailsForServiceWithNetwork.json @@ -0,0 +1,290 @@ +{ + "global-customer-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "subscriber-name": "Emanuel", + "subscriber-type": "INFRA", + "resource-version": "1494001894192", + "service-subscriptions": { + "service-subscription": [ + { + "service-type": "vMOG", + "resource-version": "1494001922173", + "service-instances": { + "service-instance": [ + { + "service-instance-id": "8fa0d88e-5032-44bd-9b20-aa4ae6a367e9", + "service-instance-name": "portmirror123", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1518423771488", + "orchestration-status": "Active", + "model-invariant-id": "a1ac367e-3f20-43cb-801e-5cb381aef876", + "model-version-id": "bf0b17cd-8d34-423f-898f-197e1e1f28d3" + }, + { + "service-instance-id": "b1dd14d1-4c8c-4c34-a96e-2064647ff57b", + "service-instance-name": "testing1", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1498998455761", + "orchestration-status": "Active", + "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3", + "model-version-id": "ef4b81a1-bcff-4f97-b449-6b619b673ecb" + }, + { + "service-instance-id": "5da732cc-548a-4732-ad2c-e7e7af3bcb85", + "service-instance-name": "aaa", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1499067629537", + "orchestration-status": "Active", + "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3", + "model-version-id": "ef4b81a1-bcff-4f97-b449-6b619b673ecb" + }, + { + "service-instance-id": "a16c64e3-dfa7-47c4-8c46-668e2030c304", + "service-instance-name": "shayTes2", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1500193374856", + "orchestration-status": "Active", + "model-invariant-id": "74b2fa72-e3b9-4942-8448-983a4b50891a", + "model-version-id": "0c4b6e10-9e86-4eeb-9794-7649a8283a88" + }, + { + "service-instance-id": "68ba015f-44d2-469a-bc1a-7e8883872047", + "service-instance-name": "cps_internal_ap7134_rk_01", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1516735672227", + "orchestration-status": "Active", + "model-invariant-id": "fa722b27-b7b1-4b55-8b4c-e2a128886707", + "model-version-id": "8022d5fb-14e7-4540-8936-e267cc85a65e" + }, + { + "service-instance-id": "6293cd8e-ccc8-4280-9090-0d70212e3bc7", + "service-instance-name": "test_instance_123", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1526474108399", + "orchestration-status": "Active", + "model-invariant-id": "2fa617d0-50b3-4d74-861d-4b39301acd2c", + "model-version-id": "ae5d24f4-f602-46d0-9a62-ed3f28928b50" + }, + { + "service-instance-id": "38ecafec-3866-4761-8a8c-fc494ef113ab", + "service-instance-name": "AMIR-VLAT-TEST1", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1529827612270", + "orchestration-status": "Active", + "model-invariant-id": "a8c50d3e-4432-4995-a4f8-4ea5f8f429c5", + "model-version-id": "36408993-d5b7-4fde-85ec-a90b368bf809" + }, + { + "service-instance-id": "679e4e64-9e0d-4ece-99aa-ec6e7ff76bf4", + "service-instance-name": "test_instance_1", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1526473794492", + "orchestration-status": "Active", + "model-invariant-id": "2fa617d0-50b3-4d74-861d-4b39301acd2c", + "model-version-id": "ae5d24f4-f602-46d0-9a62-ed3f28928b50" + }, + { + "service-instance-id": "07b0e569-a3d6-4896-95d7-26329b9e1770", + "service-instance-name": "Sanity_Testing_Macro_Inst_05032018_01", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1525380034682", + "orchestration-status": "Active", + "model-invariant-id": "d7b48529-6ae2-49f0-8633-b29e7cd4d4ce", + "model-version-id": "857d46ad-f4a0-4a8f-b03b-036801962288" + }, + { + "service-instance-id": "77db498d-81bd-4915-85b7-bf9162297d55", + "service-instance-name": "RG_3-13_VidnfModel", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1520963958394", + "orchestration-status": "Active", + "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3", + "model-version-id": "5229f73d-49d5-4cff-a61c-a37b8e3b529e" + }, + { + "service-instance-id": "cea96d45-d447-4167-8c61-b201b32bc86f", + "service-instance-name": "Ayub_Sanity_Feb12", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1518459729277", + "orchestration-status": "Active", + "model-invariant-id": "35340388-0b82-4d3a-823d-cbddf842be52", + "model-version-id": "4e799efd-fd78-444d-bc25-4a3cde2f8cb0" + }, + { + "service-instance-id": "a9ef8949-d734-4521-a187-776819fa06f5", + "service-instance-name": "Testing_VNF_010", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1520003561992", + "orchestration-status": "Active", + "model-invariant-id": "70ac3517-e462-4f2a-afee-85bea7a32d3b", + "model-version-id": "c2bee847-48ba-4025-9412-100a5eb9d065" + }, + { + "service-instance-id": "7f10ffe2-548f-4168-8722-b782d05675b7", + "service-instance-name": "vMOG_SVC_UPDATED_FLAV_OAM_rk_01", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1516201909882", + "orchestration-status": "Active", + "model-invariant-id": "f959945d-7861-47d4-9230-2d1630da64a7", + "model-version-id": "e3f2698a-2d6c-434f-a9e6-486ce373cb75" + }, + { + "service-instance-id": "7b9522cd-4ca7-48dc-aa6f-1b452d218558", + "service-instance-name": "Test997_1", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1530173862887", + "orchestration-status": "Active", + "model-invariant-id": "3d8a7716-4c1d-4dff-aff6-f415ed29d169", + "model-version-id": "b24e9a7e-0f2b-45dd-8ccf-e24a0483e653" + }, + { + "service-instance-id": "e4c16d2e-ad49-4606-bfe7-e94bc6d3a65c", + "service-instance-name": "SI_Test_vidnf_10", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1496862990215", + "orchestration-status": "Active", + "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3", + "model-version-id": "8379faac-f636-4792-a583-942a963f74d3" + }, + { + "service-instance-id": "e07e88c3-f200-4740-87d4-272fa230179b", + "service-instance-name": "Viv+IST+demo+practice", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1494001827395", + "orchestration-status": null, + "model-invariant-id": "8b4b5a61-a9ba-4e93-a62d-f185fc3087f1", + "model-version-id": null + }, + { + "service-instance-id": "3039ab56-5685-4766-b89c-0e46825c30a8", + "service-instance-name": "vMOG_mm779p_Service_WA_rk_01_rk_01", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1516025801425", + "orchestration-status": "Active", + "model-invariant-id": "1a27948c-7e8f-4ddc-9d39-743728ade3e1", + "model-version-id": "fa6e6dff-070e-449b-90ff-fab42ba8aee3" + }, + { + "service-instance-id": "246a275d-da23-4f27-90a9-7b92411daa7f", + "service-instance-name": "Lital-Service-VID", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1500792529406", + "orchestration-status": "Active", + "model-invariant-id": "35eeaa7e-9b0b-458b-8e73-066d43232b6a", + "model-version-id": "cb03c617-fd15-4ba3-beab-383e3eb80964" + }, + { + "service-instance-id": "816fa49b-b217-4241-ab66-a4ebc6128670", + "service-instance-name": "test-9345349", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1508770603156", + "orchestration-status": "Active", + "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3", + "model-version-id": "418f32e5-484a-4073-8fa9-fab7d497459f" + }, + { + "service-instance-id": "6521fd4c-c5a2-4014-818b-f255b4b57941", + "service-instance-name": "Sanity_Test_Feb12", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1518461825378", + "orchestration-status": "Active", + "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3", + "model-version-id": "418f32e5-484a-4073-8fa9-fab7d497459f" + }, + { + "service-instance-id": "7a0143f2-9642-4578-a067-e0a5d9c8046c", + "service-instance-name": "vMOG_Network_OAM_rk_01", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1516741188293", + "orchestration-status": "Active", + "model-invariant-id": "862cda6c-d512-4979-8411-9927d944011c", + "model-version-id": "c0693f19-4d66-45ba-b53e-594314c915a4" + }, + { + "service-instance-id": "a8ba2fc3-21d2-4853-b94e-f516bee76a66", + "service-instance-name": "test_macro_instantiation_01", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1518468689517", + "orchestration-status": "Active", + "model-invariant-id": "d27e42cf-087e-4d31-88ac-6c4b7585f800", + "model-version-id": "4d71990b-d8ad-4510-ac61-496288d9078e" + }, + { + "service-instance-id": "13695dfb-db99-4c2f-905e-fe7bf2fc7b9f", + "service-instance-name": "FIRSTNET_DEMO", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1520879927295", + "orchestration-status": "Active", + "model-invariant-id": "34615cd5-3a9c-4237-81b9-cd06ff58a9a6", + "model-version-id": "a1528afd-0ebd-485a-b626-3b43000b60d1" + }, + { + "service-instance-id": "6cf3bfc6-3737-4d81-b671-2e98302c2301", + "service-instance-name": "vMOG_mm779p_Service_WA_Inst", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1520272697916", + "orchestration-status": "Active", + "model-invariant-id": "1a27948c-7e8f-4ddc-9d39-743728ade3e1", + "model-version-id": "fa6e6dff-070e-449b-90ff-fab42ba8aee3" + }, + { + "service-instance-id": "78b5ed16-ce98-4259-bb0d-e2cf7f2b8595", + "service-instance-name": "SVCTestSS", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1494001864868", + "orchestration-status": null, + "model-invariant-id": "4111e6e7-ad99-4b07-a143-e60c47295936", + "model-version-id": null + }, + { + "service-instance-id": "9ac30ab4-f4bc-4905-9175-1abf0d853008", + "service-instance-name": "RG_3-6_VMOG_ServiceInstance", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1520370735401", + "orchestration-status": "Active", + "model-invariant-id": "1a27948c-7e8f-4ddc-9d39-743728ade3e1", + "model-version-id": "fa6e6dff-070e-449b-90ff-fab42ba8aee3" + }, + { + "service-instance-id": "9cdd1b2a-43a7-47bc-a88e-759ba2399f0b", + "service-instance-name": "Network_repl_vMOG_rk", + "persona-model-id": null, + "persona-model-version": null, + "resource-version": "1516045827731", + "orchestration-status": "Active", + "model-invariant-id": "92a72881-0a97-4d16-8c29-4831062e7e9b", + "model-version-id": "5a3ad576-c01d-4bed-8194-0e72b4a3d020" + } + ] + }, + "is-permitted": true + } + + ] + } +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubViewEditForServiceWithNetwork.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubViewEditForServiceWithNetwork.json new file mode 100644 index 000000000..53f1612f2 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubViewEditForServiceWithNetwork.json @@ -0,0 +1,258 @@ +{ + "inventory-response-item": [ + { + "model-name": "Network_repl_vMOG", + "service-instance": { + "service-instance-id": "9cdd1b2a-43a7-47bc-a88e-759ba2399f0b", + "service-instance-name": "Network_repl_vMOG_rk" + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "l3-network": { + "network-id": "7989a6d2-ba10-4a5d-8f15-4520bc833090", + "network-name": "APPC-24595-T-IST-02AShared_cor_direct_net_1", + "network-type": "CONTRAIL30_BASIC", + "network-role": "repl", + "network-technology": "contrail", + "neutron-network-id": "66ee6123-1c45-4e71-b6c0-a748ae0fee88", + "is-bound-to-vpn": true, + "service-id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "network-role-instance": 0, + "resource-version": "1516046029762", + "orchestration-status": "Created", + "heat-stack-id": "APPC-24595-T-IST-02AShared_cor_direct_net_1/e8b256aa-8ce1-4384-9d99-6606eaca9eac", + "contrail-network-fqdn": "default-domain:APPC-24595-T-IST-02C:APPC-24595-T-IST-02AShared_cor_direct_net_1", + "physical-network-name": "FALSE", + "is-provider-network": false, + "is-shared-network": true, + "is-external-network": true + }, + "extra-properties": {}, + "inventory-response-items": { + "inventory-response-item": [ + { + "subnet": { + "subnet-id": "d5623e03-3927-40aa-8de4-ef46c35fc01c", + "subnet-name": "S4_rk_cor_direct", + "neutron-subnet-id": "5e34c945-812c-4d3c-b7db-d408526d58b7", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", + "cidr-mask": "25", + "ip-version": "4", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029815" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "24921ae7-c739-4ac2-a8fe-32e8ba8a9888", + "subnet-name": "S8_rk_cor_direct", + "neutron-subnet-id": "c183255c-0a35-4420-8dbb-e96b8d989770", + "gateway-address": "2606:ae00:2e10:40::1", + "network-start-address": "2606:ae00:2e10:40::0", + "cidr-mask": "64", + "ip-version": "6", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029791" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "c8e757c5-416d-4fa4-83d1-c099be0e8cdb", + "subnet-name": "S2_rk_cor_direct", + "neutron-subnet-id": "2ad97d5c-df2f-4ea9-8310-ea8911b12422", + "gateway-address": "2606:ae00:2e10::1", + "network-start-address": "2606:ae00:2e10::0", + "cidr-mask": "64", + "ip-version": "6", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029906" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "ff098d42-deb3-432e-a6a8-04b37d4569aa", + "subnet-name": "S7_rk_cor_direct", + "neutron-subnet-id": "91450e6f-2634-4746-88ba-a234312365d1", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", + "cidr-mask": "25", + "ip-version": "4", + "orchestration-status": "Created", + "dhcp-enabled": true, + "dhcp-start": "10.0.0.10", + "dhcp-end": "10.0.0.10", + "ip-assignment-direction": "true", + "resource-version": "1516046029889" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "3069ca48-c228-485d-bee4-845ab65cd347", + "subnet-name": "S5_rk_cor_direct", + "neutron-subnet-id": "43731fee-e891-4cc8-8476-f995f890f8d0", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", + "cidr-mask": "28", + "ip-version": "4", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029774" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "ba4a94e7-14c6-45b1-adc8-ec6c4e6d73eb", + "subnet-name": "S6_rk_cor_direct", + "neutron-subnet-id": "b55ff2b2-1d2f-41af-b872-1bcca2e1061b", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", + "cidr-mask": "28", + "ip-version": "4", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029922" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "8ab38c73-de01-483e-a86c-c2e566d4cde1", + "subnet-name": "S3_rk_cor_direct", + "neutron-subnet-id": "9ec533a7-998f-4c99-a70b-d4601d2a377f", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", + "cidr-mask": "25", + "ip-version": "4", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029799" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "3659ce61-3c12-4e4c-b453-d97076e74dbb", + "subnet-name": "S12_rk_cor_direct", + "neutron-subnet-id": "1b204870-f5a4-474a-a779-5fc3c0e103db", + "gateway-address": "2606:ae00:2e10:44::1", + "network-start-address": "2606:ae00:2e10:44::0", + "cidr-mask": "64", + "ip-version": "6", + "orchestration-status": "Created", + "dhcp-enabled": true, + "dhcp-start": "2606:ae00:2e10:44::3", + "dhcp-end": "2606:ae00:2e10:44::7f", + "ip-assignment-direction": "true", + "resource-version": "1516046029873" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "0275b352-91d3-48ae-b6d4-fdb8fc00aaee", + "subnet-name": "S1_rk_cor_direct", + "neutron-subnet-id": "81d83779-14fb-4c90-8ecc-8bdcb83e3033", + "gateway-address": "10.0.0.10", + "network-start-address": "10.0.0.10", + "cidr-mask": "24", + "ip-version": "4", + "orchestration-status": "Created", + "dhcp-enabled": true, + "dhcp-start": "10.0.0.10", + "dhcp-end": "10.0.0.10", + "ip-assignment-direction": "true", + "resource-version": "1516046029856" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "2607039d-eef4-47cd-9403-a8e5dcfeae02", + "subnet-name": "S11_rk_cor_direct", + "neutron-subnet-id": "5d7f2857-1308-4eda-861c-fc86293dfe1f", + "gateway-address": "2606:ae00:2e10:43::1", + "network-start-address": "2606:ae00:2e10:43::0", + "cidr-mask": "64", + "ip-version": "6", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029839" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "18757c6a-015d-403b-990f-4d41511aec4b", + "subnet-name": "S9_rk_cor_direct", + "neutron-subnet-id": "97d83e23-db35-46cf-93f8-8bbb7ff0b279", + "gateway-address": "2606:ae00:2e10:41::1", + "network-start-address": "2606:ae00:2e10:41::0", + "cidr-mask": "64", + "ip-version": "6", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029831" + }, + "extra-properties": {} + }, + { + "subnet": { + "subnet-id": "3fc931a8-b3f8-45ce-b75e-0ce6df2bbf7d", + "subnet-name": "S10_rk_cor_direct", + "neutron-subnet-id": "aec8e0eb-eb0f-459b-be1f-2bd6d44d7c6d", + "gateway-address": "2606:ae00:2e10:42::1", + "network-start-address": "2606:ae00:2e10:42::0", + "cidr-mask": "64", + "ip-version": "6", + "orchestration-status": "Created", + "dhcp-enabled": false, + "dhcp-start": "", + "dhcp-end": "", + "ip-assignment-direction": "false", + "resource-version": "1516046029848" + }, + "extra-properties": {} + } + ] + } + } + ] + } + } + ] +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/serviceWithNetwork.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/serviceWithNetwork.json new file mode 100644 index 000000000..35539dde4 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/serviceWithNetwork.json @@ -0,0 +1,47 @@ +{ + "service": { + "uuid": "5a3ad576-c01d-4bed-8194-0e72b4a3d020", + "invariantUuid": "92a72881-0a97-4d16-8c29-4831062e7e9b", + "name": "Network_repl_vMOG", + "version": "1.0", + "toscaModelURL": null, + "category": "Emanuel", + "serviceType": "", + "serviceRole": "", + "description": "tbd", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": {} + }, + "vnfs": {}, + "networks": { + "CONTRAIL30_BASIC 0": { + "uuid": "2920cd06-f585-436b-a002-c3081f6a91b3", + "invariantUuid": "56f4e746-c58e-4b76-93d4-6717b8f59205", + "description": "Basic contrail 3.0.x L3 network for AIC 3.x sites. Keeping for existing mobility networks. ", + "name": "CONTRAIL30_BASIC", + "version": "3.0", + "customizationUuid": "8e2128bf-77e8-4a48-84d0-520c44718161", + "inputs": {}, + "commands": {}, + "properties": { + "network_role": "NetworkReplVmog.repl", + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_scope": "Service", + "network_type": "CONTRAIL30_BASIC", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "CONTRAIL30_BASIC 0" + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {} +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json index a95803f7d..c9f158027 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json @@ -4,17 +4,17 @@ }, "service": { "serviceHierarchy": { - "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "f4d84bb4-a416-4b4e-997e-0059973630b9": { "service": { - "uuid": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", - "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", - "name": "action-data", + "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9", + "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", + "name": "ADIOD vMX vPE_BV Service 488", "version": "1.0", "toscaModelURL": null, - "category": "", + "category": "Network L1-3", "serviceType": "", "serviceRole": "", - "description": "", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", "serviceEcompNaming": "true", "instantiationType": "Macro", "inputs": { @@ -30,213 +30,13 @@ } }, "vnfs": { - "2017-388_ADIOD-vPE 1": { - "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", - "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", - "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", - "name": "2017-388_ADIOD-vPE", - "version": "1.0", - "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", - "inputs": {}, - "commands": {}, - "properties": { - "vmxvre_retype": "RE-VMX", - "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", - "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", - "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", - "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", - "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", - "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", - "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", - "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", - "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", - "is_AVPN_service": "false", - "vmx_RSG_name": "vREXI-affinity", - "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", - "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", - "vmxvpfe_sriov41_0_port_vlanstrip": "false", - "vmxvpfe_sriov42_0_port_vlanfilter": "4001", - "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", - "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", - "vmxvre_instance": "0", - "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", - "vmxvre_flavor_name": "ns.c1r16d32.v5", - "vmxvpfe_volume_size_0": "40.0", - "vmxvpfe_sriov43_0_port_vlanfilter": "4001", - "nf_naming": "{ecomp_generated_naming=true}", - "nf_naming_code": "Navneet", - "vmxvre_name_0": "vREXI", - "vmxvpfe_sriov42_0_port_vlanstrip": "false", - "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", - "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", - "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", - "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", - "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", - "vmxvre_console": "vidconsole", - "vmxvpfe_sriov44_0_port_vlanfilter": "4001", - "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", - "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", - "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", - "vmxvpfe_sriov44_0_port_vlanstrip": "false", - "vf_module_id": "123", - "nf_function": "JAI", - "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", - "ecomp_generated_naming": "true", - "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", - "vnf_name": "mtnj309me6vre", - "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", - "vmxvre_volume_type_1": "HITACHI", - "vmxvpfe_sriov44_0_port_broadcastallow": "true", - "vmxvre_volume_type_0": "HITACHI", - "vmxvpfe_volume_type_0": "HITACHI", - "vmxvpfe_sriov43_0_port_broadcastallow": "true", - "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", - "vnf_id": "123", - "vmxvre_oam_prefix": "24", - "availability_zone_0": "mtpocfo-kvm-az01", - "ASN": "get_input:2017488_adiodvpe0_ASN", - "vmxvre_chassis_i2cid": "161", - "vmxvpfe_name_0": "vPFEXI", - "bandwidth": "get_input:adiodvpe0_bandwidth", - "availability_zone_max_count": "1", - "vmxvre_volume_size_0": "45.0", - "vmxvre_volume_size_1": "50.0", - "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", - "vmxvre_volume_name_1": "vREXI_FAVolume", - "vmxvre_ore_present": "0", - "vmxvre_volume_name_0": "vREXI_FBVolume", - "vmxvre_type": "0", - "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", - "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", - "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", - "vmx_int_ctl_len": "24", - "vmxvpfe_sriov43_0_port_vlanstrip": "false", - "vmxvpfe_sriov41_0_port_broadcastallow": "true", - "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", - "vmxvpfe_sriov41_0_port_vlanfilter": "4001", - "nf_role": "Testing", - "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", - "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", - "vmxvpfe_flavor_name": "ns.c20r16d25.v5" - }, - "type": "VF", - "modelCustomizationName": "2017-388_ADIOD-vPE 1", - "vfModules": {}, - "volumeGroups": {}, - "vfcInstanceGroups": {} - }, - "2017-388_ADIOD-vPE 0": { - "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", - "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", - "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", - "name": "2017-388_ADIOD-vPE", - "version": "4.0", - "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", - "inputs": {}, - "commands": {}, - "properties": { - "vmxvre_retype": "RE-VMX", - "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", - "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", - "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", - "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", - "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", - "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", - "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", - "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", - "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", - "is_AVPN_service": "false", - "vmx_RSG_name": "vREXI-affinity", - "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", - "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", - "vmxvpfe_sriov41_0_port_vlanstrip": "false", - "vmxvpfe_sriov42_0_port_vlanfilter": "4001", - "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", - "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", - "vmxvre_instance": "0", - "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", - "vmxvre_flavor_name": "ns.c1r16d32.v5", - "vmxvpfe_volume_size_0": "40.0", - "vmxvpfe_sriov43_0_port_vlanfilter": "4001", - "nf_naming": "{ecomp_generated_naming=true}", - "nf_naming_code": "Navneet", - "vmxvre_name_0": "vREXI", - "vmxvpfe_sriov42_0_port_vlanstrip": "false", - "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", - "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", - "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", - "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", - "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", - "vmxvre_console": "vidconsole", - "vmxvpfe_sriov44_0_port_vlanfilter": "4001", - "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", - "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", - "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", - "vmxvpfe_sriov44_0_port_vlanstrip": "false", - "vf_module_id": "123", - "nf_function": "JAI", - "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", - "ecomp_generated_naming": "true", - "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", - "vnf_name": "mtnj309me6vre", - "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", - "vmxvre_volume_type_1": "HITACHI", - "vmxvpfe_sriov44_0_port_broadcastallow": "true", - "vmxvre_volume_type_0": "HITACHI", - "vmxvpfe_volume_type_0": "HITACHI", - "vmxvpfe_sriov43_0_port_broadcastallow": "true", - "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", - "vnf_id": "123", - "vmxvre_oam_prefix": "24", - "availability_zone_0": "mtpocfo-kvm-az01", - "ASN": "get_input:2017488_adiodvpe0_ASN", - "vmxvre_chassis_i2cid": "161", - "vmxvpfe_name_0": "vPFEXI", - "bandwidth": "get_input:adiodvpe0_bandwidth", - "availability_zone_max_count": "1", - "vmxvre_volume_size_0": "45.0", - "vmxvre_volume_size_1": "50.0", - "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", - "vmxvre_volume_name_1": "vREXI_FAVolume", - "vmxvre_ore_present": "0", - "vmxvre_volume_name_0": "vREXI_FBVolume", - "vmxvre_type": "0", - "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", - "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", - "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", - "vmx_int_ctl_len": "24", - "vmxvpfe_sriov43_0_port_vlanstrip": "false", - "vmxvpfe_sriov41_0_port_broadcastallow": "true", - "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", - "vmxvpfe_sriov41_0_port_vlanfilter": "4001", - "nf_role": "Testing", - "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", - "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", - "vmxvpfe_flavor_name": "ns.c20r16d25.v5" - }, - "type": "VF", - "modelCustomizationName": "2017-388_ADIOD-vPE 0", - "vfModules": {}, - "volumeGroups": {}, - "vfcInstanceGroups": {} - }, "2017-488_ADIOD-vPE 0": { - "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", - "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350", + "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", "name": "2017-488_ADIOD-vPE", - "version": "5.0", - "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "version": "9.0", + "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8", "inputs": {}, "commands": {}, "properties": { @@ -246,33 +46,34 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", - "nf_type": "vPE", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "nf_type": "ROUTER", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", - "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_image_name_0": "vre172_nova_img", "vmxvre_instance": "0", "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", "vmxvre_flavor_name": "ns.c1r16d32.v5", "vmxvpfe_volume_size_0": "40.0", "vmxvpfe_sriov43_0_port_vlanfilter": "4001", "nf_naming": "{ecomp_generated_naming=true}", - "nf_naming_code": "Navneet", + "multi_stage_design": "false", + "nf_naming_code": "me6", "vmxvre_name_0": "vREXI", "vmxvpfe_sriov42_0_port_vlanstrip": "false", "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", - "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_image_name_0": "vpfe172_nova_img", "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", "vmxvre_console": "vidconsole", @@ -282,9 +83,9 @@ "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", "vmxvpfe_sriov44_0_port_vlanstrip": "false", "vf_module_id": "123", - "nf_function": "JAI", + "nf_function": "ADIOD vPE", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -294,19 +95,19 @@ "vmxvre_volume_type_0": "HITACHI", "vmxvpfe_volume_type_0": "HITACHI", "vmxvpfe_sriov43_0_port_broadcastallow": "true", - "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", "vnf_id": "123", "vmxvre_oam_prefix": "24", - "availability_zone_0": "mtpocfo-kvm-az01", + "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0", "ASN": "get_input:2017488_adiodvpe0_ASN", "vmxvre_chassis_i2cid": "161", "vmxvpfe_name_0": "vPFEXI", - "bandwidth": "get_input:adiodvpe0_bandwidth", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", "availability_zone_max_count": "1", "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -319,7 +120,7 @@ "vmxvpfe_sriov41_0_port_broadcastallow": "true", "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", "vmxvpfe_sriov41_0_port_vlanfilter": "4001", - "nf_role": "Testing", + "nf_role": "vPE", "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", "vmxvpfe_flavor_name": "ns.c20r16d25.v5" @@ -328,12 +129,12 @@ "modelCustomizationName": "2017-488_ADIOD-vPE 0", "vfModules": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -342,7 +143,20 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "adiodvpe0_bandwidth": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -393,30 +207,17 @@ "constraints": null, "required": true, "default": "ATLMY8GA" - }, - "adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" } }, "volumeGroupAllowed": true }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { - "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", - "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", "description": null, "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", - "version": "5", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", "properties": { "minCountInstances": 1, @@ -428,12 +229,12 @@ "volumeGroupAllowed": false }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -441,18 +242,32 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": {}, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, "volumeGroupAllowed": true } }, "volumeGroups": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -461,7 +276,20 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "adiodvpe0_bandwidth": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -512,29 +340,16 @@ "constraints": null, "required": true, "default": "ATLMY8GA" - }, - "adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" } } }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -542,7 +357,21 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": {} + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } } }, "vfcInstanceGroups": {} @@ -554,12 +383,12 @@ "serviceProxies": {}, "vfModules": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -568,7 +397,20 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "adiodvpe0_bandwidth": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -619,30 +461,17 @@ "constraints": null, "required": true, "default": "ATLMY8GA" - }, - "adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" } }, "volumeGroupAllowed": true }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { - "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", - "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", "description": null, "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", - "version": "5", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", "properties": { "minCountInstances": 1, @@ -654,12 +483,12 @@ "volumeGroupAllowed": false }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -667,18 +496,32 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": {}, + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + }, "volumeGroupAllowed": true } }, "volumeGroups": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -687,7 +530,20 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "adiodvpe0_bandwidth": { + "2017488_adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + }, + "2017488_adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -738,29 +594,16 @@ "constraints": null, "required": true, "default": "ATLMY8GA" - }, - "adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" } } }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "6", + "version": "8", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -768,22 +611,36 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": {} + "inputs": { + "2017488_adiodvpe0_availability_zone_0": { + "type": "string", + "description": "The Availability Zone to launch the instance.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vPFE_BV", + "paramName": "availability_zone_0" + }, + "constraints": null, + "required": true, + "default": "mtpocfo-kvm-az01" + } + } } }, "pnfs": {} }, - "f4d84bb4-a416-4b4e-997e-0059973630b9": { + "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { "service": { - "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9", - "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", - "name": "ADIOD vMX vPE_BV Service 488", + "uuid": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", "version": "1.0", "toscaModelURL": null, - "category": "Network L1-3", + "category": "", "serviceType": "", "serviceRole": "", - "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "description": "", "serviceEcompNaming": "true", "instantiationType": "Macro", "inputs": { @@ -799,13 +656,213 @@ } }, "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, "2017-488_ADIOD-vPE 0": { - "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350", - "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", "name": "2017-488_ADIOD-vPE", - "version": "9.0", - "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", "inputs": {}, "commands": {}, "properties": { @@ -815,34 +872,33 @@ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", "int_ctl_net_name": "VMX-INTXI", - "vmx_int_ctl_prefix": "128.0.0.0", + "vmx_int_ctl_prefix": "10.0.0.10", "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", - "nf_type": "ROUTER", - "vmxvpfe_int_ctl_ip_1": "128.0.0.16", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", "is_AVPN_service": "false", "vmx_RSG_name": "vREXI-affinity", "vmx_int_ctl_forwarding": "l2", - "vmxvre_oam_ip_0": "10.40.123.5", + "vmxvre_oam_ip_0": "10.0.0.10", "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", "vmxvpfe_sriov41_0_port_vlanstrip": "false", "vmxvpfe_sriov42_0_port_vlanfilter": "4001", "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", - "vmxvre_image_name_0": "vre172_nova_img", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", "vmxvre_instance": "0", "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", "vmxvre_flavor_name": "ns.c1r16d32.v5", "vmxvpfe_volume_size_0": "40.0", "vmxvpfe_sriov43_0_port_vlanfilter": "4001", "nf_naming": "{ecomp_generated_naming=true}", - "multi_stage_design": "false", - "nf_naming_code": "me6", + "nf_naming_code": "Navneet", "vmxvre_name_0": "vREXI", "vmxvpfe_sriov42_0_port_vlanstrip": "false", "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", - "vmxvpfe_image_name_0": "vpfe172_nova_img", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", "vmxvre_console": "vidconsole", @@ -852,9 +908,9 @@ "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", "vmxvpfe_sriov44_0_port_vlanstrip": "false", "vf_module_id": "123", - "nf_function": "ADIOD vPE", + "nf_function": "JAI", "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", - "vmxvre_int_ctl_ip_0": "128.0.0.1", + "vmxvre_int_ctl_ip_0": "10.0.0.10", "ecomp_generated_naming": "true", "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", "vnf_name": "mtnj309me6vre", @@ -864,19 +920,19 @@ "vmxvre_volume_type_0": "HITACHI", "vmxvpfe_volume_type_0": "HITACHI", "vmxvpfe_sriov43_0_port_broadcastallow": "true", - "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", "vnf_id": "123", "vmxvre_oam_prefix": "24", - "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0", + "availability_zone_0": "mtpocfo-kvm-az01", "ASN": "get_input:2017488_adiodvpe0_ASN", "vmxvre_chassis_i2cid": "161", "vmxvpfe_name_0": "vPFEXI", - "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "bandwidth": "get_input:adiodvpe0_bandwidth", "availability_zone_max_count": "1", "vmxvre_volume_size_0": "45.0", "vmxvre_volume_size_1": "50.0", "vmxvpfe_sriov42_0_port_broadcastallow": "true", - "vmxvre_oam_gateway": "10.40.123.1", + "vmxvre_oam_gateway": "10.0.0.10", "vmxvre_volume_name_1": "vREXI_FAVolume", "vmxvre_ore_present": "0", "vmxvre_volume_name_0": "vREXI_FBVolume", @@ -889,7 +945,7 @@ "vmxvpfe_sriov41_0_port_broadcastallow": "true", "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", "vmxvpfe_sriov41_0_port_vlanfilter": "4001", - "nf_role": "vPE", + "nf_role": "Testing", "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", "vmxvpfe_flavor_name": "ns.c20r16d25.v5" @@ -898,12 +954,12 @@ "modelCustomizationName": "2017-488_ADIOD-vPE 0", "vfModules": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -912,20 +968,7 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "2017488_adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" - }, - "2017488_adiodvpe0_bandwidth": { + "adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -976,17 +1019,30 @@ "constraints": null, "required": true, "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" } }, "volumeGroupAllowed": true }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { - "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", - "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", "description": null, "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", - "version": "6", + "version": "5", "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", "properties": { "minCountInstances": 1, @@ -998,12 +1054,12 @@ "volumeGroupAllowed": false }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -1011,32 +1067,18 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": { - "2017488_adiodvpe0_availability_zone_0": { - "type": "string", - "description": "The Availability Zone to launch the instance.", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vPFE_BV", - "paramName": "availability_zone_0" - }, - "constraints": null, - "required": true, - "default": "mtpocfo-kvm-az01" - } - }, + "inputs": {}, "volumeGroupAllowed": true } }, "volumeGroups": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -1045,20 +1087,7 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "2017488_adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" - }, - "2017488_adiodvpe0_bandwidth": { + "adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -1109,16 +1138,29 @@ "constraints": null, "required": true, "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" } } }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -1126,21 +1168,7 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": { - "2017488_adiodvpe0_availability_zone_0": { - "type": "string", - "description": "The Availability Zone to launch the instance.", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vPFE_BV", - "paramName": "availability_zone_0" - }, - "constraints": null, - "required": true, - "default": "mtpocfo-kvm-az01" - } - } + "inputs": {} } }, "vfcInstanceGroups": {} @@ -1152,12 +1180,12 @@ "serviceProxies": {}, "vfModules": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -1166,20 +1194,7 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "2017488_adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" - }, - "2017488_adiodvpe0_bandwidth": { + "adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -1230,17 +1245,30 @@ "constraints": null, "required": true, "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" } }, "volumeGroupAllowed": true }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { - "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013", + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", - "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", "description": null, "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", - "version": "6", + "version": "5", "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", "properties": { "minCountInstances": 1, @@ -1252,12 +1280,12 @@ "volumeGroupAllowed": false }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -1265,32 +1293,18 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": { - "2017488_adiodvpe0_availability_zone_0": { - "type": "string", - "description": "The Availability Zone to launch the instance.", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vPFE_BV", - "paramName": "availability_zone_0" - }, - "constraints": null, - "required": true, - "default": "mtpocfo-kvm-az01" - } - }, + "inputs": {}, "volumeGroupAllowed": true } }, "volumeGroups": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df", + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", "description": null, "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", "properties": { "minCountInstances": 0, @@ -1299,20 +1313,7 @@ "vfModuleLabel": "ADIOD_vRE_BV" }, "inputs": { - "2017488_adiodvpe0_bandwidth_units": { - "type": "string", - "description": "Units of bandwidth", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vRE_BV", - "paramName": "bandwidth_units" - }, - "constraints": null, - "required": true, - "default": "Gbps" - }, - "2017488_adiodvpe0_bandwidth": { + "adiodvpe0_bandwidth": { "type": "string", "description": "Requested VPE bandwidth", "entry_schema": null, @@ -1363,16 +1364,29 @@ "constraints": null, "required": true, "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" } } }, "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { - "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe", + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", - "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", "description": null, "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", - "version": "8", + "version": "6", "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", "properties": { "minCountInstances": 0, @@ -1380,21 +1394,7 @@ "initialCount": 0, "vfModuleLabel": "ADIOD_vPFE_BV" }, - "inputs": { - "2017488_adiodvpe0_availability_zone_0": { - "type": "string", - "description": "The Availability Zone to launch the instance.", - "entry_schema": null, - "inputProperties": { - "sourceType": "HEAT", - "vfModuleLabel": "ADIOD_vPFE_BV", - "paramName": "availability_zone_0" - }, - "constraints": null, - "required": true, - "default": "mtpocfo-kvm-az01" - } - } + "inputs": {} } }, "pnfs": {} @@ -1402,15 +1402,20 @@ }, "serviceInstance": { "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "existingVNFCounterMap": { + "280dec31-f16d-488b-9668-4aae55d6648a": 1, + "1da7b585-5e61-4993-b95e-8e6606c81e45": 1 + }, "vnfs": { "2017-388_ADIOD-vPE 1": { "rollbackOnFailure": "false", "vfModules": {}, "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", - "lcpCloudRegionId": "mtn6", + "lcpCloudRegionId": "hvf6", "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", "lineOfBusiness": "zzz1", "platformName": "platform", + "originalName": "2017-388_ADIOD-vPE 1", "modelInfo": { "modelType": "service", "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d", @@ -1419,11 +1424,11 @@ "modelVersion": "1.0", "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a", "modelCustomizationName": "2017-388_ADIOD-vPE 1" - }, - "isUserProvidedNaming": false + } }, "2017-488_ADIOD-vPE 0": { "rollbackOnFailure": "false", + "originalName": "2017-488_ADIOD-vPE 0", "vfModules": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { @@ -1448,9 +1453,9 @@ } }, "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", - "lcpCloudRegionId": "mtn6", + "lcpCloudRegionId": "hvf6", "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", - "lineOfBusiness": "ECOMP", + "lineOfBusiness": "ONAP", "platformName": "platform", "modelInfo": { "modelType": "service", @@ -1460,8 +1465,7 @@ "modelVersion": "5.0", "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", "modelCustomizationName": "2017-488_ADIOD-vPE 0" - }, - "isUserProvidedNaming": false + } } }, "instanceParams": [ @@ -1471,11 +1475,11 @@ ], "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", - "subscriptionServiceType": "VIRTUAL USP", - "lcpCloudRegionId": "AAIAIC25", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "JANET25", "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", "aicZoneId": "JAG1", - "projectName": "DFW", + "projectName": "WATKINS", "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", "bulkSize": 1, "modelInfo": { @@ -1485,7 +1489,7 @@ "modelName": "action-data", "modelVersion": "1.0" }, - "isUserProvidedNaming": false, + "isEcompGeneratedNaming": true, "tenantName": "USP-SIP-IC-24335-T-01", "aicZoneName": "YUDFJULP-JAG1" } @@ -1493,28 +1497,28 @@ "lcpRegionsAndTenants": { "lcpRegionList": [ { - "id": "AAIAIC25", - "name": "AAIAIC25", + "id": "JANET25", + "name": "JANET25", "isPermitted": true }, { - "id": "mtn6", - "name": "mtn6", + "id": "hvf6", + "name": "hvf6", "isPermitted": true } ], "lcpRegionsTenantsMap": { - "AAIAIC25": [ + "JANET25": [ { "id": "092eb9e8e4b7412e8787dd091bc58e86", "name": "USP-SIP-IC-24335-T-01", "isPermitted": true } ], - "mtn6": [ + "hvf6": [ { "id": "bae71557c5bb4d5aac6743a4e5f1d054", - "name": "AIN Web Tool-15-D-testgamma", + "name": "AIN Web Tool-15-D-testalexandria", "isPermitted": true }, { @@ -1654,7 +1658,7 @@ }, { "id": "d0a3e3f2964542259d155a81c41aadc3", - "name": "test-mtn6-09", + "name": "test-hvf6-09", "isPermitted": true }, { @@ -1668,34 +1672,34 @@ "subscribers": [ { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", - "name": "Mobility", + "name": "Emanuel", "isPermitted": false }, { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc", - "name": "PACKET CORE", + "name": "JULIO ERICKSON", "isPermitted": false }, { "id": "e433710f-9217-458d-a79d-1c7aff376d89", - "name": "USP VOICE", + "name": "SILVIA ROBBINS", "isPermitted": true } ], "productFamilies": [ { "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", - "name": "DHV", + "name": "SCOTTIE", "isPermitted": true }, { "id": "17cc1042-527b-11e6-beb8-9e71128cae77", - "name": "FLEXREACH", + "name": "IGNACIO", "isPermitted": true }, { "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", - "name": "Netbond", + "name": "Christie", "isPermitted": true }, { @@ -1704,8 +1708,8 @@ "isPermitted": true }, { - "id": "vRRaaS", - "name": "vRRaaS", + "id": "vTerrance", + "name": "vTerrance", "isPermitted": true }, { @@ -1715,7 +1719,7 @@ }, { "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", - "name": "Mobility", + "name": "Emanuel", "isPermitted": true }, { @@ -1725,7 +1729,7 @@ }, { "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", - "name": "FIRSTNET", + "name": "LINDSEY", "isPermitted": true }, { @@ -1734,18 +1738,18 @@ "isPermitted": true }, { - "id": "vHNGWaas", + "id": "vRosemarie", "name": "HNGATEWAY", "isPermitted": true }, { "id": "vHNPaas", - "name": "HNPORTAL", + "name": "WILKINS", "isPermitted": true }, { "id": "e433710f-9217-458d-a79d-1c7aff376d89", - "name": "VIRTUAL USP", + "name": "TYLER SILVIA", "isPermitted": true }, { @@ -1754,18 +1758,18 @@ "isPermitted": true }, { - "id": "VIPRaaS", - "name": "vIPRaaS", + "id": "Cisneros", + "name": "vMuriel", "isPermitted": true }, { "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", - "name": "WAN Bonding", + "name": "CARA Griffin", "isPermitted": true }, { "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", - "name": "HOSTED COMMUNICATIONS", + "name": "DARREN MCGEE", "isPermitted": true }, { @@ -1774,23 +1778,23 @@ "isPermitted": true }, { - "id": "vVIGaaS", - "name": "vVIGaaS", + "id": "vSalvatore", + "name": "vSalvatore", "isPermitted": true }, { "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", - "name": "uCPE-VMS", + "name": "Josefina", "isPermitted": true }, { - "id": "vPEaaS", - "name": "vPEaaS", + "id": "vHubbard", + "name": "vHubbard", "isPermitted": true }, { "id": "12a96a9d-4b4c-4349-a950-fe1159602621", - "name": "HOSTED COMMUNICATIONS", + "name": "DARREN MCGEE", "isPermitted": true } ], @@ -1798,22 +1802,22 @@ "e433710f-9217-458d-a79d-1c7aff376d89": [ { "id": "0", - "name": "vFlowLogic", + "name": "vRichardson", "isPermitted": false }, { "id": "1", - "name": "VIRTUAL USP", + "name": "TYLER SILVIA", "isPermitted": true }, { "id": "2", - "name": "Mobility", + "name": "Emanuel", "isPermitted": false }, { "id": "3", - "name": "vBNG", + "name": "vJamie", "isPermitted": false }, { @@ -1823,7 +1827,7 @@ }, { "id": "5", - "name": "Nimbus", + "name": "Kennedy", "isPermitted": false }, { @@ -1878,17 +1882,17 @@ }, { "id": "16", - "name": "FIRSTNET", + "name": "LINDSEY", "isPermitted": false }, { "id": "17", - "name": "ACTIVE_CHARGE", + "name": "JOHANNA_SANTOS", "isPermitted": false }, { "id": "18", - "name": "vHSS", + "name": "vCarroll", "isPermitted": false } ] @@ -2671,17 +2675,17 @@ }, { "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", - "name": "MetroPacketCore" + "name": "WayneHolland" }, { - "id": "Wireline", - "name": "Wireline" + "id": "Melissa", + "name": "Melissa" } ], "projectList": [ { - "id": "DFW", - "name": "DFW" + "id": "WATKINS", + "name": "WATKINS" }, { "id": "x1", @@ -2694,8 +2698,8 @@ ], "lineOfBusinessList": [ { - "id": "ECOMP", - "name": "ECOMP" + "id": "ONAP", + "name": "ONAP" }, { "id": "zzz1", diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/subscribers.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/subscribers.json index 088fbe7ea..2d1ee5ae7 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/subscribers.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/subscribers.json @@ -2,21 +2,21 @@ "customer": [ { "global-customer-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", - "subscriber-name": "Mobility", + "subscriber-name": "Emanuel", "subscriber-type": "INFRA", "resource-version": "1494255056308", "is-permitted": false }, { "global-customer-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc", - "subscriber-name": "PACKET CORE", + "subscriber-name": "JULIO ERICKSON", "subscriber-type": "INFRA", "resource-version": "1506548476111", "is-permitted": false }, { "global-customer-id": "e433710f-9217-458d-a79d-1c7aff376d89", - "subscriber-name": "USP VOICE", + "subscriber-name": "SILVIA ROBBINS", "subscriber-type": "INFRA", "is-permitted": true } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/tenants.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/tenants.json new file mode 100644 index 000000000..30d53b4ff --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/tenants.json @@ -0,0 +1,233 @@ +[ + { + "cloudOwner": "irma-aic", + "tenantName": "USP-SIP-IC-24335-T-01", + "tenantID": "092eb9e8e4b7412e8787dd091bc58e86", + "cloudRegionID": "JANET25", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN Web Tool-15-D-testalexandria", + "tenantID": "bae71557c5bb4d5aac6743a4e5f1d054", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN Web Tool-15-D-STTest2", + "tenantID": "229bcdc6eaeb4ca59d55221141d01f8e", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN Web Tool-15-D-SSPtestcustome", + "tenantID": "1178612d2b394be4834ad77f567c0af2", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN Web Tool-15-D-UncheckedEcopm", + "tenantID": "19c5ade915eb461e8af52fb2fd8cd1f2", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN Web Tool-15-D-dfsdf", + "tenantID": "de007636e25249238447264a988a927b", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN/SMS-16-D-Multiservices1", + "tenantID": "62f29b3613634ca6a3065cbe0e020c44", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN Web Tool-15-D-SSPST66", + "tenantID": "649289e30d3244e0b48098114d63c2aa", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AIN Web Tool-15-D-ASSPST47", + "tenantID": "3f21eeea6c2c486bba31dab816c05a32", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "CESAR-100-D-sspjg67246", + "tenantID": "f60ce21d3ee6427586cff0d22b03b773", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "CESAR-100-D-sspjg68359", + "tenantID": "8774659e425f479895ae091bb5d46560", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-D-iftach", + "tenantID": "624eb554b0d147c19ff8885341760481", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "CESAR-100-D-sspjg612401", + "tenantID": "214f55f5fc414c678059c383b03e4962", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "CESAR-100-D-sspjg621340", + "tenantID": "c90666c291664841bb98e4d981ff1db5", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "sspjg621351cloned", + "tenantID": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-D-eteancomp", + "tenantID": "b386b768a3f24c8e953abbe0b3488c02", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-T-SPFET", + "tenantID": "dc6c4dbfd225474e9deaadd34968646c", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-X-eeweww", + "tenantID": "02cb5030e9914aa4be120bd9ed1e19eb", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "CESAR-100-D-spjg61909", + "tenantID": "f2f3830e4c984d45bcd00e1a04158a79", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "CESAR-100-D-sspjg621512cloned", + "tenantID": "05b91bd5137f4929878edd965755c06d", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-X-vdr", + "tenantID": "7002fbe8482d4a989ddf445b1ce336e0", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-D-ssasa", + "tenantID": "4008522be43741dcb1f5422022a2aa0b", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-D-PFNPT", + "tenantID": "f44e2e96a1b6476abfda2fa407b00169", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-X-vdre", + "tenantID": "b69a52bec8a84669a37a1e8b72708be7", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "AINWebTool-15-X-NONPODECOMP", + "tenantID": "fac7d9fd56154caeb9332202dcf2969f", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "DN5242-Nov16-T5", + "tenantID": "2d34d8396e194eb49969fd61ffbff961", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "ro-T11", + "tenantID": "cb42a77ff45b48a8b8deb83bb64acc74", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "ro-T112", + "tenantID": "fa45ca53c80b492fa8be5477cd84fc2b", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "DN5242-Nov21-T1", + "tenantID": "4914ab0ab3a743e58f0eefdacc1dde77", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "test-hvf6-09", + "tenantID": "d0a3e3f2964542259d155a81c41aadc3", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "DN5242-Nov16-T3", + "tenantID": "cbb99fe4ada84631b7baf046b6fd2044", + "cloudRegionID": "hvf6", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "DN5242-Nov16-T3XXX", + "tenantID": "cbb99fe4ada84631b7baf046b6fd2XXX", + "cloudRegionID": "olson3", + "is-permitted": true + }, + { + "cloudOwner": "irma-aic", + "tenantName": "DN5242-Nov16-T3YYY", + "tenantID": "cbb99fe4ada84631b7baf046b6fd2YYY", + "cloudRegionID": "olson5a", + "is-permitted": true + } +] diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/topMenuInfo.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/topMenuInfo.json index 92627f42b..4aefadd6e 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/topMenuInfo.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/topMenuInfo.json @@ -1,8 +1,8 @@ { - "contactUsLink": "https://wiki.web.att.com/display/EcompPortal/ECOMP+Portal+Home", + "contactUsLink": "https://www.openecomp.org/EcompPortal/ECOMP+Portal+Home", "firstName": "uspVoiceVirtualUsp", - "portalUrl": "https://www.e-access.att.com/ecomp_portal_dev_n1/ecompui/process_csp", - "getAccessUrl": "https://www.e-access.att.com/ecomp_portal_dev_n1/ecompui/get_access", + "portalUrl": "http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/process_csp", + "getAccessUrl": "http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/get_access", "userName": "uspVoiceVirtualUsp null", "userid": "uspVoiceVirtualUsp" } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/version.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/version.json new file mode 100644 index 000000000..1559ef288 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/version.json @@ -0,0 +1,5 @@ +{ + "features": "1810.features.properties", + "build": "1.0.1481", + "displayVersion": "1902.1948" +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json new file mode 100644 index 000000000..bba5ec19f --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json @@ -0,0 +1,32 @@ +{ + "existingVNFCounterMap":{}, + "existingVnfGroupCounterMap":{}, + "existingNetworksCounterMap":{}, + "optionalGroupMembersMap":{}, + "vnfs":{}, + "vnfGroups":{}, + "instanceParams":[ + { + "2017488_adiodvpe0_ASN":"AV_vPE" + }], + "globalSubscriberId":"e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType":"TYLER SILVIA", + "projectName":"WATKINS", + "owningEntityId":"d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "bulkSize":1, + "modelInfo":{ + "modelType":"service", + "modelInvariantId":"7ee41ce4-4827-44b0-a48e-2707a59905d2", + "modelVersionId":"4117a0b6-e234-467d-b5b9-fe2f68c8b0fc", + "modelName":"Grouping Service for Test", + "modelVersion":"1.0" + }, + "existingNames":{}, + "instanceName": "Grouping_Service_Instance", + "subscriberName":"SILVIA ROBBINS", + "owningEntityName":"WayneHolland", + "rollbackOnFailure":"true", + "testApi": "VNF_API", + "isALaCarte":true, + "action": "Create" +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupsBasicModel.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupsBasicModel.json new file mode 100644 index 000000000..73e63663d --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupsBasicModel.json @@ -0,0 +1,1430 @@ +{ + "service": { + "serviceHierarchy": { + "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "service": { + "uuid": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "true", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfGroups": { + "ResourceGroup0": { + "type": "VnfGroup", + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "version": "1", + "name": "ResourceGroup0", + "modelCustomizationName": "ResourceGroup0", + "properties": { + "contained_resource_type": "VF", + "role": "SERVICE-ACCESS", + "function": "DATA", + "description": "DDD0", + "type": "LOAD-GROUP" + }, + "members": { + "vdbe_svc_vprs_proxy 0": { + "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c", + "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc", + "description": "A Proxy for Service vDBE_Svc_vPRS", + "name": "vDBE_Svc_vPRS Service Proxy", + "version": "1.0", + "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274", + "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14", + "sourceModelName": "vDBE_Svc_vPRS" + }, + "vdbe_svc_vprs_proxy 1": { + "uuid": "111dfa8-a0d9-443f-95ad-836cd044e26c", + "invariantUuid": "111ae0c-b3a5-4ca1-a777-afbffe7010bc", + "description": "A Proxy for Service vDBE_Svc_vPRS", + "name": "111_Svc_vPRS Service Proxy", + "version": "1.0", + "customizationUuid": "1113d23-e132-4ce7-af2c-a493b4cafac9", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "11127a2-366d-4be6-8c68-a69153c61274", + "sourceModelInvariant": "1112e6b-584b-4f45-80d4-fefd75fd9f14", + "sourceModelName": "111_Svc_vPRS" + } + } + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {} + } + }, + "serviceInstance": { + "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "existingVNFCounterMap": {}, + "existingVnfGroupCounterMap": {}, + "existingNetworksCounterMap": {}, + "vnfs": {}, + "vnfGroups": {}, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "subscriptionServiceType": "TYLER SILVIA", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "JAG1", + "projectName": "WATKINS", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "bulkSize": 1, + "modelInfo": { + "modelType": "service", + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "modelName": "action-data", + "modelVersion": "1.0" + }, + "isEcompGeneratedNaming": true, + "tenantName": "USP-SIP-IC-24335-T-01", + "aicZoneName": "YUDFJULP-JAG1", + "existingNames": {} + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "JANET25", + "name": "JANET25 (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "hvf6", + "name": "hvf6 (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "lcpRegionsTenantsMap": { + "JANET25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ] + } + }, + "subscribers": [ + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "SCOTTIE", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vSCP", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "Cisneros", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "Josefina", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vMME", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vSCP", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vMMSC", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "BAN1", + "name": "VSDKYUTP-BAN1" + }, + { + "id": "DKJ1", + "name": "DKJSJDKA-DKJ1" + }, + { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, + { + "id": "UIO1", + "name": "uioclli1-UIO1" + }, + { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, + { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, + { + "id": "SDE1", + "name": "ZXCVBNMA-SDE1" + }, + { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, + { + "id": "ORL1", + "name": "ORLDFLMA-ORL1" + }, + { + "id": "JAD1", + "name": "JADECLLI-JAD1" + }, + { + "id": "ZXL1", + "name": "LWLWCANN-ZXL1" + }, + { + "id": "CKL1", + "name": "CLKSKCKK-CKL1" + }, + { + "id": "SDF1", + "name": "sdfclli1-SDF1" + }, + { + "id": "RAD1", + "name": "RADICAL1-RAD1" + }, + { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, + { + "id": "REL1", + "name": "INGERFGT-REL1" + }, + { + "id": "JNL1", + "name": "CJALSDAC-JNL1" + }, + { + "id": "OLK1", + "name": "OLKOLKLS-OLK1" + }, + { + "id": "CHI1", + "name": "CHILLIWE-CHI1" + }, + { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, + { + "id": "TUF1", + "name": "TUFCLLI1-TUF1" + }, + { + "id": "KJN1", + "name": "CKALDKSA-KJN1" + }, + { + "id": "SAM1", + "name": "SNDGCA64-SAN1" + }, + { + "id": "SCK1", + "name": "SCKSCKSK-SCK1" + }, + { + "id": "HJH1", + "name": "AOEEQQQD-HJH1" + }, + { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, + { + "id": "KOR1", + "name": "HYFLNBVT-KOR1" + }, + { + "id": "ATL43", + "name": "AICLOCID-ATL43" + }, + { + "id": "ATL54", + "name": "AICFTAAI-ATL54" + }, + { + "id": "ATL66", + "name": "CLLIAAII-ATL66" + }, + { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, + { + "id": "ICC1", + "name": "SANJITAT-ICC1" + }, + { + "id": "MNT11", + "name": "WSXEFBTH-MNT11" + }, + { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, + { + "id": "MAD11", + "name": "SDFQWGKL-MAD11" + }, + { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, + { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, + { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, + { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, + { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, + { + "id": "DHA12", + "name": "WSXEDECF-DHA12" + }, + { + "id": "HJE1", + "name": "AOEEWWWD-HJE1" + }, + { + "id": "NCA1", + "name": "NCANCANN-NCA1" + }, + { + "id": "IOP1", + "name": "iopclli1-IOP1" + }, + { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, + { + "id": "KAP1", + "name": "HIOUYTRQ-KAP1" + }, + { + "id": "ZEN1", + "name": "ZENCLLI1-ZEN1" + }, + { + "id": "HKA1", + "name": "JAKHLASS-HKA1" + }, + { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, + { + "id": "SAI1", + "name": "UBEKQLPD-SAI1" + }, + { + "id": "ERT1", + "name": "ertclli1-ERT1" + }, + { + "id": "IBB1", + "name": "PLMKOIJU-IBB1" + }, + { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, + { + "id": "HSD1", + "name": "CHASKCDS-HSD1" + }, + { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, + { + "id": "SEE78", + "name": "SDCTEEE4-SEE78" + }, + { + "id": "SAN13", + "name": "TOKYJPFA-SAN13" + }, + { + "id": "SAA78", + "name": "SDCTAAA1-SAA78" + }, + { + "id": "LUC1", + "name": "ATLDFGYC-LUC1" + }, + { + "id": "AMD13", + "name": "MEMATLAN-AMD13" + }, + { + "id": "TOR1", + "name": "TOROONXN-TOR1" + }, + { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, + { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, + { + "id": "CAL33", + "name": "CALIFORN-CAL33" + }, + { + "id": "SHH78", + "name": "SDIT1HHH-SHH78" + }, + { + "id": "DSA1", + "name": "LKJHGFDS-DSA1" + }, + { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, + { + "id": "BNA1", + "name": "BNARAGBK-BNA1" + }, + { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, + { + "id": "APP1", + "name": "WBHGTYUI-APP1" + }, + { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, + { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, + { + "id": "mac10", + "name": "PKGTESTF-mac10" + }, + { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, + { + "id": "SAX78", + "name": "SDCTAXG1-SAX78" + }, + { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, + { + "id": "TOK1", + "name": "TOKYJPFA-TOK1" + }, + { + "id": "KGM2", + "name": "KGMTNC20-KGM2" + }, + { + "id": "DCC1b", + "name": "POIUYTGH-DCC1b" + }, + { + "id": "SKK78", + "name": "SDCTKKK1-SKK78" + }, + { + "id": "SGG78", + "name": "SDCTGGG1-SGG78" + }, + { + "id": "SJJ78", + "name": "SDCTJJJ1-SJJ78" + }, + { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, + { + "id": "LAG1", + "name": "LARGIZON-LAG1" + }, + { + "id": "IAA1", + "name": "QAZXSWED-IAA1" + }, + { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, + { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, + { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, + { + "id": "LAG45", + "name": "LARGIZON-LAG1a" + }, + { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, + { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, + { + "id": "DCC1a", + "name": "POIUYTGH-DCC1a" + }, + { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, + { + "id": "LON1", + "name": "LONEENCO-LON1" + }, + { + "id": "SJU78", + "name": "SDIT1JUB-SJU78" + }, + { + "id": "STN27", + "name": "HSTNTX01-STN27" + }, + { + "id": "SSW56", + "name": "ss8126GT-SSW56" + }, + { + "id": "SBB78", + "name": "SDIT1BBB-SBB78" + }, + { + "id": "DCC3", + "name": "POIUYTGH-DCC3" + }, + { + "id": "GNV1", + "name": "GNVLSCTL-GNV1" + }, + { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, + { + "id": "TOY1", + "name": "TORYONNZ-TOY1" + }, + { + "id": "STT1", + "name": "STTLWA02-STT1" + }, + { + "id": "STG1", + "name": "STTGGE62-STG1" + }, + { + "id": "SLL78", + "name": "SDCTLLL1-SLL78" + }, + { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, + { + "id": "ATL2", + "name": "ATLNGANW-ATL2" + }, + { + "id": "BOT1", + "name": "BOTHWAKY-BOT1" + }, + { + "id": "SNG1", + "name": "SNGPSIAU-SNG1" + }, + { + "id": "NYC1", + "name": "NYCMNY54-NYC1" + }, + { + "id": "LAG1b", + "name": "LARGIZON-LAG1b" + }, + { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, + { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, + { + "id": "PLT1", + "name": "PLTNCA60-PLT1" + }, + { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, + { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, + { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, + { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, + { + "id": "OKC1", + "name": "OKCBOK55-OKC1" + }, + { + "id": "PAR1", + "name": "PARSFRCG-PAR1" + }, + { + "id": "TES36", + "name": "ABCEETES-TES36" + }, + { + "id": "COM1", + "name": "PLMKOPIU-COM1" + }, + { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, + { + "id": "SDG78", + "name": "SDIT1BDG-SDG78" + }, + { + "id": "mac20", + "name": "PKGTESTF-mac20" + }, + { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, + { + "id": "HST25", + "name": "HSTNTX01-HST25" + }, + { + "id": "AMD18", + "name": "AUDIMA01-AMD18" + }, + { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, + { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, + { + "id": "SDD82", + "name": "SAIT1DD9-SDD82" + }, + { + "id": "JCV1", + "name": "JCVLFLBW-JCV1" + }, + { + "id": "SUL2", + "name": "WERTYUJK-SUL2" + }, + { + "id": "PUR1", + "name": "purelyde-PUR1" + }, + { + "id": "FDE55", + "name": "FDERT555-FDE55" + }, + { + "id": "SITE", + "name": "LONEENCO-SITE" + }, + { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, + { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, + { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, + { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, + { + "id": "RAI1", + "name": "poiuytre-RAI1" + }, + { + "id": "HPO1", + "name": "ATLNGAUP-HPO1" + }, + { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, + { + "id": "SCC80", + "name": "SAIT9CC3-SCC80" + }, + { + "id": "SAA12", + "name": "SAIT9AF8-SAA12" + }, + { + "id": "SAA14", + "name": "SAIT1AA9-SAA14" + }, + { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, + { + "id": "CWY1", + "name": "CWYMOWBS-CWY1" + }, + { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, + { + "id": "DSL12", + "name": "DSLFK242-DSL12" + }, + { + "id": "ATL53", + "name": "AAIATLTE-ATL53" + }, + { + "id": "SAA11", + "name": "SAIT9AA2-SAA11" + }, + { + "id": "ATL62", + "name": "TESSASCH-ATL62" + }, + { + "id": "AUG1", + "name": "ASDFGHJK-AUG1" + }, + { + "id": "POI22", + "name": "POIUY123-POI22" + }, + { + "id": "SAA13", + "name": "SAIT1AA9-SAA13" + }, + { + "id": "BHY17", + "name": "BHYTFRF3-BHY17" + }, + { + "id": "LIS1", + "name": "HOSTPROF-LIS1" + }, + { + "id": "SIP1", + "name": "ZXCVBNMK-SIP1" + }, + { + "id": "ATL99", + "name": "TEESTAAI-ATL43" + }, + { + "id": "ATL64", + "name": "FORLOAAJ-ATL64" + }, + { + "id": "TAT33", + "name": "TESAAISA-TAT33" + }, + { + "id": "RAD10", + "name": "INDIPUNE-RAD10" + }, + { + "id": "RTW5", + "name": "BHYTFRY4-RTW5" + }, + { + "id": "JGS1", + "name": "KSJKKKKK-JGS1" + }, + { + "id": "ATL98", + "name": "TEESTAAI-ATL43" + }, + { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, + { + "id": "ATL44", + "name": "ATLSANAB-ATL44" + }, + { + "id": "RTD2", + "name": "BHYTFRk4-RTD2" + }, + { + "id": "NIR1", + "name": "ORFLMANA-NIR1" + }, + { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, + { + "id": "NUM1", + "name": "QWERTYUI-NUM1" + }, + { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, + { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, + { + "id": "ATL56", + "name": "ATLSANAC-ATL56" + }, + { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, + { + "id": "RCT1", + "name": "AMSTERNL-RCT1" + }, + { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, + { + "id": "ABC14", + "name": "TESAAISA-ABC14" + }, + { + "id": "TAT37", + "name": "TESAAISD-TAT37" + }, + { + "id": "MIC54", + "name": "MICHIGAN-MIC54" + }, + { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, + { + "id": "AMF11", + "name": "AMDOCS01-AMF11" + }, + { + "id": "ATL63", + "name": "ATLSANEW-ATL63" + }, + { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, + { + "id": "MTN20", + "name": "MDTWNJ21-MTN20" + }, + { + "id": "ABC15", + "name": "AAITESAN-ABC15" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "ad5a17e0-4ee1-4287-bdb7-25848042d265", + "name": "046e7910-c114-4198-adb4-3bcd41f78a63" + }, + { + "id": "482de866-5306-4917-a54d-044d3a5cbeae", + "name": "14553d7c-a9ce-427d-b043-2761b2e0b468" + }, + { + "id": "509a94a3-c6b3-4164-aa06-27abed58574e", + "name": "2753cf38-e4c7-4e47-adf8-3d0a5d897352" + }, + { + "id": "dd7cb3b5-ed8f-4261-9f2e-5e88e5a0b54e", + "name": "2e544d86-b1f9-4d44-8a78-16ea16ca9bf4" + }, + { + "id": "fefb7398-36d2-4860-887b-4d8745ec7e88", + "name": "7f49941a-4f6b-4184-8139-1f46464361f8" + }, + { + "id": "5a8de060-efdc-4793-a506-115fed2ac9ef", + "name": "88f08647-8abc-4d86-894d-ccdd8cabd8cf" + }, + { + "id": "f2c501d8-4e22-43cf-be58-83a925c2fc70", + "name": "a6f81e25-8b4c-4f82-9d1d-bf09ef8ca2ea" + }, + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "1d67282c-e51f-4bfe-afa0-ae0d9081d1fc", + "name": "af2c6ca4-665e-4263-b78d-86ede27d452c" + }, + { + "id": "840a8a2a-9bf2-40c5-af8f-015d62cf5250", + "name": "c214ad5a-34e7-49ed-b7a9-aa9f9546a2d3" + }, + { + "id": "d093cd6f-73b8-4750-968a-c93e7567af66", + "name": "caa6e570-b1ee-4620-bdfd-dc7bb5aedcb1" + }, + { + "id": "f85da3ed-669f-424d-8e05-b71149519643", + "name": "f05eaa46-7ce5-4610-93b4-928199b97b5b" + }, + { + "id": "970ef4d5-d5f4-4992-b7a1-98dfc4de73fb", + "name": "fd160c26-c5d3-4623-8f6a-2028509029cc" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "UPDATE_LCP_REGIONS_AND_TENANTS" + }, + "global": { + "name": null + } +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/permission.mock.ts b/vid-webpack-master/cypress/support/jsonBuilders/mocks/permission.mock.ts new file mode 100644 index 000000000..a69d72566 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/permission.mock.ts @@ -0,0 +1,29 @@ +declare namespace Cypress { + interface Chainable { + permissionVidMock: typeof permissionVidMock; + initDrawingBoardUserPermission : typeof initDrawingBoardUserPermission; + } +} + + + +function initDrawingBoardUserPermission( response?: any , delay?: number, status?: number) : void { + cy.server() + .route({ + method: 'GET', + delay : delay ? delay : 0, + status : status ? status : 200, + url : Cypress.config('baseUrl') + "/roles/service_permissions?**", + response : response ? response : { + isEditPermitted : true + } + }).as('isEditPermitted'); +} + +function permissionVidMock(): void { + initDrawingBoardUserPermission(); +} + + +Cypress.Commands.add('permissionVidMock', permissionVidMock); +Cypress.Commands.add('initDrawingBoardUserPermission', initDrawingBoardUserPermission); diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts b/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts index 5bc02d1c2..8b25488b6 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/vid.mock.ts @@ -3,6 +3,9 @@ declare namespace Cypress { initVidMock: typeof initVidMock; preventErrorsOnLoading : typeof preventErrorsOnLoading; initCategoryParameter : typeof initCategoryParameter; + initAuditInfoMSO: typeof initAuditInfoMSO; + initAuditInfoMSOALaCarte: typeof initAuditInfoMSOALaCarte; + initAsyncInstantiation : typeof initAsyncInstantiation; } } @@ -34,7 +37,7 @@ function initCategoryParameter(response? : JSON) : void { status : 200, url : Cypress.config('baseUrl') + "/category_parameter**", response : response ? response : res - }); + }).as('initCategoryParameters'); }) } @@ -77,6 +80,34 @@ function initAuditInfoMSO(response? : JSON, delay?: number, status?: number) : v }) } +function initAuditInfoMSOALaCarte(response? : JSON, delay?: number, status?: number) : void { + cy.readFile('../vid-automation/src/test/resources/a-la-carte/auditInfoMSOALaCarte.json').then((res) => { + cy.server() + .route({ + method: 'GET', + delay : delay ? delay : 0, + status : status ? status : 200, + url : Cypress.config('baseUrl') + "/asyncInstantiation/auditStatus/**/mso**", + response : response ? response : res + }).as('initAuditInfoMSOAlaCarte'); + }) +} + +function initAsyncInstantiation(response? : JSON, delay?: number, status?: number) : void { + cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicAsyncInstantiation.json').then((res) => { + cy.server() + .route({ + method: 'GET', + delay : delay ? delay : 0, + status : status ? status : 200, + url : Cypress.config('baseUrl') + "/asyncInstantiation", + response : response ? response : res + }).as('initAsyncInstantiation'); + }) +} + + + function initVidMock(): void { initGetToMenuInfo(); initCategoryParameter(); @@ -89,3 +120,6 @@ function initVidMock(): void { Cypress.Commands.add('initVidMock', initVidMock); Cypress.Commands.add('preventErrorsOnLoading', preventErrorsOnLoading); Cypress.Commands.add('initCategoryParameter', initCategoryParameter); +Cypress.Commands.add('initAuditInfoMSO', initAuditInfoMSO); +Cypress.Commands.add('initAuditInfoMSOALaCarte', initAuditInfoMSOALaCarte); +Cypress.Commands.add('initAsyncInstantiation', initAsyncInstantiation); diff --git a/vid-webpack-master/cypress/support/jsonBuilders/models/asyncInstantiation.model.ts b/vid-webpack-master/cypress/support/jsonBuilders/models/asyncInstantiation.model.ts index fa394360c..796a914a1 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/models/asyncInstantiation.model.ts +++ b/vid-webpack-master/cypress/support/jsonBuilders/models/asyncInstantiation.model.ts @@ -33,4 +33,41 @@ export class AsyncInstantiationModel{ serviceModelName: string; serviceModelVersion: string; createdBulkDate: number; + action: string; + + constructor(){ + this.id = 0; + this.created = 0; + this.modified= 0; + this.createdId = ''; + this.modifiedId = ''; + this.rowNum = ''; + this.auditUserId = ''; + this.auditTrail = ''; + this.jobId = ''; + this.templateId = ''; + this.userId = ''; + this.jobStatus = ''; + this.statusModifiedDate= 0 ; + this.hidden = false; + this.pause= false; + this.owningEntityId= ''; + this.owningEntityName= ''; + this.project= ''; + this.aicZoneId= ''; + this.aicZoneName= ''; + this.tenantId= ''; + this.tenantName= ''; + this.regionId= ''; + this.regionName= ''; + this.serviceType= ''; + this.subscriberName= ''; + this.serviceInstanceId = 0; + this.serviceInstanceName= ''; + this.serviceModelId= ''; + this.serviceModelName= ''; + this.serviceModelVersion= ''; + this.createdBulkDate= 0; + this.action = ''; + } } diff --git a/vid-webpack-master/cypress/support/jsonBuilders/models/service.model.ts b/vid-webpack-master/cypress/support/jsonBuilders/models/service.model.ts index af12dfbeb..3c67112cb 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/models/service.model.ts +++ b/vid-webpack-master/cypress/support/jsonBuilders/models/service.model.ts @@ -23,5 +23,19 @@ export class ServiceModel{ vfModules: Object; volumeGroups: Object; pnfs:Object; + vnfGroups: Object; + + constructor(){ + this.service = {}; + this.vnfs = {}; + this.networks= {}; + this.collectionResource = {}; + this.configurations = {}; + this.serviceProxies = {}; + this.vfModules = {}; + this.volumeGroups = {}; + this.pnfs = {}; + this.vnfGroups = {}; + } } diff --git a/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardComponentInfo.steps.ts b/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardComponentInfo.steps.ts new file mode 100644 index 000000000..2033f060c --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardComponentInfo.steps.ts @@ -0,0 +1,22 @@ +declare namespace Cypress { + interface Chainable { + assertComponentInfoTitleLabelsAndValues: typeof assertComponentInfoTitleLabelsAndValues + } +} + + + +function assertComponentInfoTitleLabelsAndValues(expectedTitle: string, labelsAndValues: string[][]) : void{ + cy.getElementByDataTestsId('component-info-section-title').should('have.text', expectedTitle); + labelsAndValues.forEach((tuple: string[], index: number, array: string[][]) => { + let label = tuple[0]; + let value = tuple[1]; + cy.getElementByDataTestsId('model-item-label-' + label).should('have.text', label); + cy.getElementByDataTestsId('model-item-value-' + label).should('have.text', value); + }); +} + + + + +Cypress.Commands.add('assertComponentInfoTitleLabelsAndValues', assertComponentInfoTitleLabelsAndValues); diff --git a/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardModel.steps.ts b/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardModel.steps.ts new file mode 100644 index 000000000..b2b48b268 --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardModel.steps.ts @@ -0,0 +1,17 @@ +declare namespace Cypress { + interface Chainable { + drawingBoardPressAddButtonByElementName: typeof drawingBoardPressAddButtonByElementName, + drawingBoardNumberOfExistingElementsShouldContains: typeof drawingBoardNumberOfExistingElementsShouldContains + } +} + +function drawingBoardPressAddButtonByElementName(elementName : string) : Chainable { + return cy.getElementByDataTestsId(elementName + '-add-btn'); +} + +function drawingBoardNumberOfExistingElementsShouldContains(expectedElements : number) : void { + cy.getElementByDataTestsId('numberButton').contains(expectedElements); +} + +Cypress.Commands.add('drawingBoardPressAddButtonByElementName', drawingBoardPressAddButtonByElementName); +Cypress.Commands.add('drawingBoardNumberOfExistingElementsShouldContains', drawingBoardNumberOfExistingElementsShouldContains); diff --git a/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardTree.steps.ts b/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardTree.steps.ts new file mode 100644 index 000000000..0150b44aa --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardTree.steps.ts @@ -0,0 +1,27 @@ +declare namespace Cypress { + interface Chainable { + drawingBoardTreeOpenContextMenuByElementDataTestId: typeof drawingBoardTreeOpenContextMenuByElementDataTestId, + drawingBoardTreeClickOnContextMenuOptionByName: typeof drawingBoardTreeClickOnContextMenuOptionByName + } +} + +function drawingBoardTreeOpenContextMenuByElementDataTestId(dataTestId : string, index ?: number) : Chainable { + return cy.getElementByDataTestsId(dataTestId + "-menu-btn").eq(index != null ? index : 0).click({force: true}); +} + +function drawingBoardTreeClickOnContextMenuOptionByName(optionName : string) : Chainable { + switch (optionName) { + case 'Duplicate': + return cy.getElementByDataTestsId('context-menu-duplicate').click({force : true}); + case 'Remove': + return cy.getElementByDataTestsId('context-menu-remove').click({force : true}); + case 'Edit': + return cy.getElementByDataTestsId('context-menu-edit').click({force : true}); + default: + return cy.getElementByDataTestsId('context-menu-duplicate').click({force : true}); + } +} + + +Cypress.Commands.add('drawingBoardTreeOpenContextMenuByElementDataTestId', drawingBoardTreeOpenContextMenuByElementDataTestId); +Cypress.Commands.add('drawingBoardTreeClickOnContextMenuOptionByName', drawingBoardTreeClickOnContextMenuOptionByName); diff --git a/vid-webpack-master/cypress/support/steps/drawingBoard/general.steps.ts b/vid-webpack-master/cypress/support/steps/drawingBoard/general.steps.ts new file mode 100644 index 000000000..5444971b7 --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/drawingBoard/general.steps.ts @@ -0,0 +1,33 @@ +declare namespace Cypress { + interface Chainable { + updateServiceShouldNotOverrideChild: typeof updateServiceShouldNotOverrideChild + openServiceContextMenu: typeof openServiceContextMenu + } +} + +function updateServiceShouldNotOverrideChild() : void { + cy.getElementByDataTestsId('drawing-board-tree').find('.node-content-wrapper').then((elements)=>{ + let numberOfExistingElements = elements.length; + cy.openServiceContextMenu().then(() =>{ + cy.getElementByDataTestsId('context-menu-header-edit-item').click({force : true}).then(()=>{ + cy.genericFormSubmitForm().then(()=>{ + cy.getElementByDataTestsId('drawing-board-tree').find('.node-content-wrapper').then((afterUpdateServiceElements)=>{ + chai.expect(numberOfExistingElements).equal(afterUpdateServiceElements.length); + }); + }); + }); + }); + }); + +} + + +function openServiceContextMenu() : Chainable { + return cy.getElementByDataTestsId('openMenuBtn').click({force: true}); +} + + + + +Cypress.Commands.add('updateServiceShouldNotOverrideChild', updateServiceShouldNotOverrideChild); +Cypress.Commands.add('openServiceContextMenu', openServiceContextMenu); diff --git a/vid-webpack-master/cypress/support/steps/fill.network.step.ts b/vid-webpack-master/cypress/support/steps/fill.network.step.ts new file mode 100644 index 000000000..c981ac4b2 --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/fill.network.step.ts @@ -0,0 +1,19 @@ +// add new command to the existing Cypress interface +declare namespace Cypress { + interface Chainable { + fillNetworkPopup: typeof fillNetworkPopup, + } +} + +function fillNetworkPopup(): Chainable { + cy.selectDropdownOptionByText('productFamily', 'Emanuel'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-STTest2'); + cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1'); + cy.selectDropdownOptionByText('platform', 'xxx1'); + return cy.getElementByDataTestsId('form-set').click({force : true}).then((done)=>{ + return done; + }); +} + +Cypress.Commands.add('fillNetworkPopup', fillNetworkPopup); diff --git a/vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts b/vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts new file mode 100644 index 000000000..4595d89fc --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts @@ -0,0 +1,25 @@ + +declare namespace Cypress { + interface Chainable { + fillServicePopup: typeof FillServicePopup + } +} + +function FillServicePopup(): Chainable { + cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true'); + cy.selectDropdownOptionByText('subscriberName', 'SILVIA ROBBINS'); + cy.selectDropdownOptionByText('serviceType', 'TYLER SILVIA'); + cy.selectDropdownOptionByText('productFamily', 'TYLER SILVIA'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria'); + cy.selectDropdownOptionByText('aic_zone', 'NFTJSSSS-NFT1'); + cy.selectDropdownOptionByText('project', 'WATKINS'); + cy.selectDropdownOptionByText('owningEntity', 'aaa1'); + cy.selectDropdownOptionByText('rollback', 'Rollback'); + return cy.getElementByDataTestsId('form-set').click({force : true}).then((done)=>{ + return done; + }); + +} + +Cypress.Commands.add('fillServicePopup', FillServicePopup); diff --git a/vid-webpack-master/cypress/support/steps/fill.vfModule.step.ts b/vid-webpack-master/cypress/support/steps/fill.vfModule.step.ts new file mode 100644 index 000000000..d2977832d --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/fill.vfModule.step.ts @@ -0,0 +1,24 @@ +declare namespace Cypress { + interface Chainable { + fillVFModulePopup: typeof FillVFModulePopup + } +} + +function FillVFModulePopup(vnfName: string, vfModuleName: string, instanceName: string, lcpRegion: string, tenant: string, rollback: boolean, sdncPreLoad: boolean): Chainable { + cy.getElementByDataTestsId('node-' + vnfName).click({force: true}); + cy.getElementByDataTestsId('node-' + vfModuleName + '-add-btn').click({force: true}); + cy.getElementByDataTestsId('instanceName').last().type(instanceName, {force: true}); + cy.getElementByDataTestsId('lcpRegion').last().select(lcpRegion); + cy.getElementByDataTestsId('tenant').last().select(tenant); + cy.getElementByDataTestsId('lcpRegion').last().select(lcpRegion); + cy.getElementByDataTestsId('rollback').last().select(String(rollback)); + if (sdncPreLoad) { + cy.getElementByDataTestsId('sdncPreLoad').last().check(); + } + return cy.getElementByDataTestsId('form-set').last().click({force: true}).then((done) => { + return done; + }); + +} + +Cypress.Commands.add('fillVFModulePopup', FillVFModulePopup); diff --git a/vid-webpack-master/cypress/support/steps/fill.vnf.popup.step.ts b/vid-webpack-master/cypress/support/steps/fill.vnf.popup.step.ts new file mode 100644 index 000000000..a5319b80f --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/fill.vnf.popup.step.ts @@ -0,0 +1,30 @@ +// add new command to the existing Cypress interface + + +declare namespace Cypress { + interface Chainable { + fillVnfPopup: typeof FillVnfPopup, + duplicateVnf: typeof DuplicateVnf, + } +} +function FillVnfPopup(): Chainable { + cy.selectDropdownOptionByText('productFamily', 'Emanuel'); + cy.selectDropdownOptionByText('lcpRegion', 'hvf6'); + cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-STTest2'); + cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1'); + cy.selectDropdownOptionByText('platform', 'xxx1'); + return cy.getElementByDataTestsId('form-set').click({force : true}).then((done)=>{ + return done; + }); +} +function DuplicateVnf( vnfNode: string, amountBefore: number): Chainable { + return cy.getElementByDataTestsId(vnfNode).should('have.length', amountBefore) + .getElementByDataTestsId(vnfNode+"-menu-btn").click({force:true}) + .getElementByDataTestsId('context-menu-duplicate').click({force : true}) + .getTagElementContainsText('button','Duplicate').click({force:true}) + .getElementByDataTestsId(vnfNode).should('have.length', amountBefore+1).then((done)=>{ + return done; + }); +} +Cypress.Commands.add('fillVnfPopup', FillVnfPopup); +Cypress.Commands.add('duplicateVnf', DuplicateVnf); diff --git a/vid-webpack-master/cypress/support/steps/general/clickOutside.step.ts b/vid-webpack-master/cypress/support/steps/general/clickOutside.step.ts new file mode 100644 index 000000000..e3323a125 --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/general/clickOutside.step.ts @@ -0,0 +1,14 @@ +declare namespace Cypress { + interface Chainable { + clickOutside: typeof clickOutside, + } +} + +function clickOutside(testByIdClickElement : string, testBeforeClickOutside : Function, testAfterClickOutside : Function) { + testBeforeClickOutside(); + cy.getElementByDataTestsId(testByIdClickElement).click({force: true}).then(()=>{ + testAfterClickOutside(); + }); +} + +Cypress.Commands.add('clickOutside', clickOutside); diff --git a/vid-webpack-master/cypress/support/steps/general/compareDeepObjects.step.ts b/vid-webpack-master/cypress/support/steps/general/compareDeepObjects.step.ts new file mode 100644 index 000000000..ee5e95a3a --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/general/compareDeepObjects.step.ts @@ -0,0 +1,32 @@ +const { _ } = Cypress; + +declare namespace Cypress { + interface Chainable { + deepCompare: typeof deepCompare, + } +} + +function deepCompare(actual : any, expected : any) { + if(actual !== null && expected !== null){ + let diff : any[] = []; + Cypress._.mergeWith(actual, expected, function (objectValue, sourceValue, key, object, source) { + if ( !(_.isEqual(objectValue, sourceValue)) && (Object(objectValue) !== objectValue)) { + diff.push("key: " +key + ", expected: " + sourceValue + ", actual: " + objectValue); + } + }); + + Cypress._.mergeWith(expected, actual, function (objectValue, sourceValue, key, object, source) { + if ( !(_.isEqual(objectValue, sourceValue)) && (Object(objectValue) !== objectValue)) { + diff.push("key: " +key + ", expected: " + sourceValue + ", actual: " + objectValue); + } + }); + + if(diff.length > 0){ + console.error("diff", diff); + cy.log("The object are not equals", diff); + expect(actual).equals(expected); + } + } +} + +Cypress.Commands.add('deepCompare', deepCompare); diff --git a/vid-webpack-master/cypress/support/steps/genericForm/checkPopover.step.ts b/vid-webpack-master/cypress/support/steps/genericForm/checkPopover.step.ts new file mode 100644 index 000000000..085410ece --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/genericForm/checkPopover.step.ts @@ -0,0 +1,14 @@ +declare namespace Cypress { + interface Chainable { + checkPopoverContentOnMouseEvent: typeof checkPopoverContentOnMouseEvent + } +} + +function checkPopoverContentOnMouseEvent(dataTestId: string, klass: string, mouseEvent: string, index: number) : Chainable { + index = index || 0; + let element = cy.getElementByDataTestsId(dataTestId).eq(index); + element.trigger(mouseEvent).click().get(klass); + return element; +} + +Cypress.Commands.add('checkPopoverContentOnMouseEvent', checkPopoverContentOnMouseEvent); diff --git a/vid-webpack-master/cypress/support/steps/genericForm/genericFormAction.steps.ts b/vid-webpack-master/cypress/support/steps/genericForm/genericFormAction.steps.ts new file mode 100644 index 000000000..9786369cf --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/genericForm/genericFormAction.steps.ts @@ -0,0 +1,12 @@ +declare namespace Cypress { + interface Chainable { + genericFormSubmitForm: typeof genericFormSubmitForm + } +} + +function genericFormSubmitForm() : Chainable { + return cy.getElementByDataTestsId('form-set').click({force: true}); +} + + +Cypress.Commands.add('genericFormSubmitForm', genericFormSubmitForm); diff --git a/vid-webpack-master/cypress/support/steps/login.step.ts b/vid-webpack-master/cypress/support/steps/login.step.ts index f35e6e6b8..a7ed0752e 100644 --- a/vid-webpack-master/cypress/support/steps/login.step.ts +++ b/vid-webpack-master/cypress/support/steps/login.step.ts @@ -32,7 +32,6 @@ function login(): void { currentLoginCookies = res; }); } - } function openIframe(iframeUrl : string): void { diff --git a/vid-webpack-master/cypress/support/steps/menu.step.ts b/vid-webpack-master/cypress/support/steps/menu.step.ts new file mode 100644 index 000000000..a0bfdb6b3 --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/menu.step.ts @@ -0,0 +1,19 @@ +declare namespace Cypress { + interface Chainable { + assertMenuItemsForNode: typeof assertMenuItemsForNode + } +} + function assertMenuItemsForNode(enabledActions: string[], nodeName: string, index: number = 0) : Chainable { + let node = cy.getElementByDataTestsId(nodeName).eq(+index); + node.trigger('mouseover').click().then(()=> { + + //waiting to the menu to appear to catch options that shall not exist but actually exist + cy.get('.ngx-contextmenu').should('exist').then(()=> { + for (let option of ['duplicate', 'showAuditInfo', 'addGroupMember', 'delete', 'undoDelete', 'remove', ...enabledActions]) { + cy.getElementByDataTestsId(`context-menu-${option}`).should(enabledActions.some(s => s === option) ? 'exist' : 'not.exist'); + }}); + }); + return node; +} + +Cypress.Commands.add('assertMenuItemsForNode', assertMenuItemsForNode); diff --git a/vid-webpack-master/cypress/support/steps/openInstanceAuditInfoModal.step.ts b/vid-webpack-master/cypress/support/steps/openInstanceAuditInfoModal.step.ts new file mode 100644 index 000000000..7fc50c111 --- /dev/null +++ b/vid-webpack-master/cypress/support/steps/openInstanceAuditInfoModal.step.ts @@ -0,0 +1,18 @@ +declare namespace Cypress { + interface Chainable { + openInstanceAuditInfoModal: typeof openInstanceAuditInfoModal, + } +} + +function openInstanceAuditInfoModal(iconTextId: string): void { + cy.getElementByDataTestsId(iconTextId).click({force: true}) + .getElementByDataTestsId('context-menu-showAuditInfo').click({force : true}) + .getElementByDataTestsId('audit-info-title').contains('Instantiation Information'); + cy.get('.table-title').contains('MSO status'); + cy.get('#cancelButton').click({force: true}) + +} + + +Cypress.Commands.add('openInstanceAuditInfoModal', openInstanceAuditInfoModal); + diff --git a/vid-webpack-master/karma.conf.js b/vid-webpack-master/karma.conf.js deleted file mode 100644 index 6c0576008..000000000 --- a/vid-webpack-master/karma.conf.js +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular/cli'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('karma-junit-reporter'), - require('karma-phantomjs-launcher'), - require('@angular/cli/plugins/karma') - ], - client:{ - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageIstanbulReporter: { - reports: [ 'html','json', 'lcovonly' ], - fixWebpackSourcePaths: true - }, - angularCli: { - environment: 'dev' - }, - reporters: ['progress', 'junit'], - port: 9876, - colors: true, - logLevel: config.LOG_ERROR, - autoWatch: false, - browsers: ['PhantomJS'], - junitReporter: { - outputFile: '../test-resultskarma.xml', - outputDir : 'coverage', - suite : '' - }, - singleRun: true - }); -} diff --git a/vid-webpack-master/package-lock.json b/vid-webpack-master/package-lock.json index 2e2adc051..21ec61c54 100644 --- a/vid-webpack-master/package-lock.json +++ b/vid-webpack-master/package-lock.json @@ -4,3635 +4,16885 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@angular-devkit/build-optimizer": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.3.2.tgz", - "integrity": "sha512-U0BCZtThq5rUfY08shHXpxe8ZhSsiYB/cJjUvAWRTs/ORrs8pbngS6xwseQws8d/vHoVrtqGD9GU9h8AmFRERQ==", + "@angular-builders/jest": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-7.1.2.tgz", + "integrity": "sha512-xscNy9w86kw/NJADAiRcEIASxb7Pxp6GYbEh3nlN6wVUKPSn9k9H08Z3UCoCM6h/UvJIg1JN1eXfyV6OeppF8Q==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.7", - "typescript": "2.6.2", - "webpack-sources": "1.1.0" + "jest-preset-angular": "^6.0.0", + "lodash": "^4.17.10" }, "dependencies": { - "typescript": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", - "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true } } }, - "@angular-devkit/core": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.3.2.tgz", - "integrity": "sha512-zABk/iP7YX5SVbmK4e+IX7j2d0D37MQJQiKgWdV3JzfvVJhNJzddiirtT980pIafoq+KyvTgVwXtc+vnux0oeQ==", + "@angular-devkit/architect": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.11.4.tgz", + "integrity": "sha512-2zi6S9tPlk52vyqN67IvFoeNgd0uxtrPlwl3TdvJ3wrH7sYGJnkQ+EzAE7cKUGWAV989BbNtx2YxhRDHnN21Fg==", "dev": true, "requires": { - "ajv": "5.5.2", - "chokidar": "1.7.0", - "rxjs": "5.5.6", - "source-map": "0.5.7" + "@angular-devkit/core": "7.1.4", + "rxjs": "6.3.3" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "tslib": "^1.9.0" } } } }, - "@angular-devkit/schematics": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.3.2.tgz", - "integrity": "sha512-B6zZoqvHaTJy+vVdA6EtlxnCdGMa5elCa4j9lQLC3JI8DLvMXUWkCIPVbPzJ/GSRR9nsKWpvYMYaJyfBDUqfhw==", - "dev": true, - "requires": { - "@ngtools/json-schema": "1.2.0", - "rxjs": "5.5.6" - } - }, - "@angular-redux/store": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@angular-redux/store/-/store-7.1.1.tgz", - "integrity": "sha512-Uhj+wzByvQ04j6hh75xYdUMfi/sA71OLcxMl0U8uhfEGsM13GaLmf1cheDfaAMNv04KKNqj72Gdb1j+Ov2S2Nw==" - }, - "@angular/animations": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.0.tgz", - "integrity": "sha512-JLR42YHiJppO4ruAkFxgbzghUDtHkXHkKPM8udd2qyt16T7e1OX7EEOrrmldUu59CC56tZnJ/32p4SrYmxyBSA==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/cdk": { - "version": "2.0.0-beta.12", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-2.0.0-beta.12.tgz", - "integrity": "sha1-OiQ8tiuT9OA5EgunD5ANyeI1Yi4=", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/cli": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.7.2.tgz", - "integrity": "sha512-U0RXiG6rNe5GqZazn+FLy3p4rOhBwpf5NWAec/JKe+u/cekIsyeDXLfqGJwzLhMEV4Iv2k4i3o5imejkEc4A9g==", - "dev": true, - "requires": { - "@angular-devkit/build-optimizer": "0.3.2", - "@angular-devkit/core": "0.3.2", - "@angular-devkit/schematics": "0.3.2", - "@ngtools/json-schema": "1.2.0", - "@ngtools/webpack": "1.10.1", - "@schematics/angular": "0.3.2", - "@schematics/package-update": "0.3.2", - "ajv": "6.3.0", - "autoprefixer": "7.2.6", - "cache-loader": "1.2.2", - "chalk": "2.2.2", - "circular-dependency-plugin": "4.4.0", - "clean-css": "4.1.11", - "common-tags": "1.7.2", - "copy-webpack-plugin": "4.4.3", - "core-object": "3.1.5", - "denodeify": "1.2.1", - "ember-cli-string-utils": "1.1.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "fs-extra": "4.0.3", - "glob": "7.1.2", - "html-webpack-plugin": "2.30.1", - "istanbul-instrumenter-loader": "3.0.0", - "karma-source-map-support": "1.2.0", - "less": "2.7.3", + "@angular-devkit/build-angular": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.11.4.tgz", + "integrity": "sha512-5WQAQB4heDqAotqjU3Tl8Ons0S/e16dKwVkQFdqfKPyBgmu4CyUH35eTV+i6i7un1Elg65U5GnA4MiUtApqVyw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.11.4", + "@angular-devkit/build-optimizer": "0.11.4", + "@angular-devkit/build-webpack": "0.11.4", + "@angular-devkit/core": "7.1.4", + "@ngtools/webpack": "7.1.4", + "ajv": "6.5.3", + "autoprefixer": "9.3.1", + "circular-dependency-plugin": "5.0.2", + "clean-css": "4.2.1", + "copy-webpack-plugin": "4.5.4", + "file-loader": "2.0.0", + "glob": "7.1.3", + "istanbul": "0.4.5", + "istanbul-instrumenter-loader": "3.0.1", + "karma-source-map-support": "1.3.0", + "less": "3.8.1", "less-loader": "4.1.0", - "license-webpack-plugin": "1.3.0", + "license-webpack-plugin": "2.0.2", "loader-utils": "1.1.0", - "lodash": "4.17.5", - "memory-fs": "0.4.1", + "mini-css-extract-plugin": "0.4.4", "minimatch": "3.0.4", - "node-modules-path": "1.0.1", - "node-sass": "4.7.2", - "nopt": "4.0.1", - "opn": "5.1.0", - "portfinder": "1.0.13", - "postcss": "6.0.20", - "postcss-import": "11.1.0", - "postcss-loader": "2.1.2", - "postcss-url": "7.3.1", + "node-sass": "4.10.0", + "opn": "5.3.0", + "parse5": "4.0.0", + "portfinder": "1.0.17", + "postcss": "7.0.5", + "postcss-import": "12.0.0", + "postcss-loader": "3.0.0", "raw-loader": "0.5.1", - "resolve": "1.5.0", - "rxjs": "5.5.6", - "sass-loader": "6.0.7", - "semver": "5.5.0", - "silent-error": "1.1.0", - "source-map-support": "0.4.18", - "style-loader": "0.19.1", + "rxjs": "6.3.3", + "sass-loader": "7.1.0", + "semver": "5.5.1", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.9", + "speed-measure-webpack-plugin": "1.2.3", + "stats-webpack-plugin": "0.7.0", + "style-loader": "0.23.1", "stylus": "0.54.5", "stylus-loader": "3.0.2", - "uglifyjs-webpack-plugin": "1.2.4", - "url-loader": "0.6.2", - "webpack": "3.11.0", - "webpack-dev-middleware": "1.12.2", - "webpack-dev-server": "2.11.2", - "webpack-merge": "4.1.2", - "webpack-sources": "1.1.0", - "webpack-subresource-integrity": "1.0.4" - } - }, - "@angular/common": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.0.tgz", - "integrity": "sha512-yMFn2isC7/XOs56/2Kzzbb1AASHiwipAPOVFtKe7TdZQClO8fJXwCnk326rzr615+CG0eSBNQWeiFGyWN2riBA==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/compiler": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.0.tgz", - "integrity": "sha512-RfYa4ESgjGX0T0ob/Xz00IF7nd2xZkoyRy6oKgL82q42uzB3xZUDMrFNgeGxAUs3H22IkL46/5SSPOMOTMZ0NA==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/compiler-cli": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.0.tgz", - "integrity": "sha512-+Kef4NjuHwLj2hRPdVo4yAtPmv+kn0Nu/ShmKfaEK4mt9aaQMFxKNt6beUuDK5iUPMB5nuTCZ4bqEFpqd+EtxQ==", - "dev": true, - "requires": { - "chokidar": "1.7.0", - "minimist": "1.2.0", - "reflect-metadata": "0.1.12", - "tsickle": "0.26.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "@angular/core": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.0.tgz", - "integrity": "sha512-s2ne45DguNUubhC1YgybGECC4Tyx3G4EZCntUiRMDWWkmKXSK+6dgHMesyDo8R5Oat8VfN4Anf8l3JHS1He8kg==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/forms": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.0.tgz", - "integrity": "sha512-g1/SF9lY0ZwzJ0w4NXbFsTGGEuUdgtaZny8DmkaqtmA7idby3FW398X0tv25KQfVYKtL+p9Jp1Y8EI0CvrIsvw==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/http": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.0.tgz", - "integrity": "sha512-V5Cl24dP3rCXTTQvDc0TIKoWqBRAa0DWAQbtr7iuDAt5a1vPGdKz5K1sEiiV6ziwX6gzjiwHjUvL+B+WbIUrQA==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/language-service": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.2.0.tgz", - "integrity": "sha512-Yj/y5XrBBXbtwnZ6HJOBl/0XS/JBvVlHb1UWw5MIrsc81k7/eFiRAIKzmGpAba+Sw0G0dO22ABZ4yJjAMsML6A==", - "dev": true - }, - "@angular/platform-browser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.0.tgz", - "integrity": "sha512-c6cR15MfopPwGZ097HdRuAi9+R9BhA3bRRFpP2HmrSSB/BW4ZNovUYwB2QUMSYbd9s0lYTtnavqGm6DKcyF2QA==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/platform-browser-dynamic": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.0.tgz", - "integrity": "sha512-xG1eNoi8sm4Jcly2y98r5mqYVe3XV8sUJCtOhvGBYtvt4dKEQ5tOns6fWQ0nUbl6Vv3Y0xgGUS1JCtfut3DuaQ==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.0.tgz", - "integrity": "sha512-VXDXtp2A1GQEUEhXg0ZzqHdTUERLgDSo3/Mmpzt+dgLMKlXDSCykcm4gINwE5VQLGD1zQvDFCCRv3seGRNfrqA==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angularclass/hmr": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@angularclass/hmr/-/hmr-2.1.3.tgz", - "integrity": "sha1-NOZY7T2jfyOwogDi2lqJvpK7IJ8=" - }, - "@angularclass/hmr-loader": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@angularclass/hmr-loader/-/hmr-loader-3.0.4.tgz", - "integrity": "sha1-PjoHuoNWUMkBVim44Yf+jc1VJ7g=", - "requires": { - "loader-utils": "1.1.0" - } - }, - "@bahmutov/add-typescript-to-cypress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@bahmutov/add-typescript-to-cypress/-/add-typescript-to-cypress-2.0.0.tgz", - "integrity": "sha512-tnM/bBrvOHAXvTD6WAnbkwi9Su6WXiuOBhDsNr9SLu42Ne6DjRKHZdxo8Ros6kToEoh+Pe2E6dP9u0QEDfMABg==", - "dev": true, - "requires": { - "@cypress/webpack-preprocessor": "1.1.3", - "am-i-a-dependency": "1.1.2", - "chalk": "2.3.0", - "debug": "3.1.0", - "shelljs": "0.8.0", - "terminal-banner": "1.1.0", - "ts-loader": "3.2.0" + "terser-webpack-plugin": "1.1.0", + "tree-kill": "1.2.0", + "webpack": "4.23.1", + "webpack-dev-middleware": "3.4.0", + "webpack-dev-server": "3.1.10", + "webpack-merge": "4.1.4", + "webpack-sources": "1.3.0", + "webpack-subresource-integrity": "1.1.0-rc.6" }, "dependencies": { - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "@webassemblyjs/ast": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.10.tgz", + "integrity": "sha512-wTUeaByYN2EA6qVqhbgavtGc7fLTOx0glG2IBsFlrFG51uXIGlYBTyIZMf4SPLo3v1bgV/7lBN3l7Z0R6Hswew==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "@webassemblyjs/helper-module-context": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/wast-parser": "1.7.10" } }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.10.tgz", + "integrity": "sha512-gMsGbI6I3p/P1xL2UxqhNh1ga2HCsx5VBB2i5VvJFAaqAjd2PBTRULc3BpTydabUQEGlaZCzEUQhLoLG7TvEYQ==", + "dev": true }, - "shelljs": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.0.tgz", - "integrity": "sha512-wb72o5SM27oFRq2mMeNSl70DVkkvwf3ZSgk9rvieRVz7xFMIQp02HYw0oxlZgeAWS+wzGB+jcJWQTF7hH9WIPg==", + "@webassemblyjs/helper-api-error": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.10.tgz", + "integrity": "sha512-DoYRlPWtuw3yd5BOr9XhtrmB6X1enYF0/54yNvQWGXZEPDF5PJVNI7zQ7gkcKfTESzp8bIBWailaFXEK/jjCsw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.10.tgz", + "integrity": "sha512-+RMU3dt/dPh4EpVX4u5jxsOlw22tp3zjqE0m3ftU2tsYxnPULb4cyHlgaNd2KoWuwasCQqn8Mhr+TTdbtj3LlA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.10.tgz", + "integrity": "sha512-UiytbpKAULOEab2hUZK2ywXen4gWJVrgxtwY3Kn+eZaaSWaRM8z/7dAXRSoamhKFiBh1uaqxzE/XD9BLlug3gw==", "dev": true, "requires": { - "glob": "7.1.2", - "interpret": "1.1.0", - "rechoir": "0.6.2" + "@webassemblyjs/wast-printer": "1.7.10" } - } - } - }, - "@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "date-fns": "1.29.0", - "figures": "1.7.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + }, + "@webassemblyjs/helper-fsm": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.10.tgz", + "integrity": "sha512-w2vDtUK9xeSRtt5+RnnlRCI7wHEvLjF0XdnxJpgx+LJOvklTZPqWkuy/NhwHSLP19sm9H8dWxKeReMR7sCkGZA==", "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "@webassemblyjs/helper-module-context": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.10.tgz", + "integrity": "sha512-yE5x/LzZ3XdPdREmJijxzfrf+BDRewvO0zl8kvORgSWmxpRrkqY39KZSq6TSgIWBxkK4SrzlS3BsMCv2s1FpsQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.10.tgz", + "integrity": "sha512-u5qy4SJ/OrxKxZqJ9N3qH4ZQgHaAzsopsYwLvoWJY6Q33r8PhT3VPyNMaJ7ZFoqzBnZlCcS/0f4Sp8WBxylXfg==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.10.tgz", + "integrity": "sha512-Ecvww6sCkcjatcyctUrn22neSJHLN/TTzolMGG/N7S9rpbsTZ8c6Bl98GpSpV77EvzNijiNRHBG0+JO99qKz6g==", "dev": true, "requires": { - "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" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-buffer": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/wasm-gen": "1.7.10" } }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "@webassemblyjs/ieee754": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.10.tgz", + "integrity": "sha512-HRcWcY+YWt4+s/CvQn+vnSPfRaD4KkuzQFt5MNaELXXHSjelHlSEA8ZcqT69q0GTIuLWZ6JaoKar4yWHVpZHsQ==", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "@xtuc/ieee754": "^1.2.0" } }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "@webassemblyjs/leb128": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.10.tgz", + "integrity": "sha512-og8MciYlA8hvzCLR71hCuZKPbVBfLQeHv7ImKZ4nlyxrYbG7uJHYtHiHu6OV9SqrGuD03H/HtXC4Bgdjfm9FHw==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "@xtuc/long": "4.2.1" } }, - "onetime": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "@webassemblyjs/utf8": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.10.tgz", + "integrity": "sha512-Ng6Pxv6siyZp635xCSnH3mKmIFgqWPCcGdoo0GBYgyGdxu7cUj4agV7Uu1a8REP66UYUFXJLudeGgd4RvuJAnQ==", "dev": true }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "@webassemblyjs/wasm-edit": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.10.tgz", + "integrity": "sha512-e9RZFQlb+ZuYcKRcW9yl+mqX/Ycj9+3/+ppDI8nEE/NCY6FoK8f3dKBcfubYV/HZn44b+ND4hjh+4BYBt+sDnA==", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-buffer": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/helper-wasm-section": "1.7.10", + "@webassemblyjs/wasm-gen": "1.7.10", + "@webassemblyjs/wasm-opt": "1.7.10", + "@webassemblyjs/wasm-parser": "1.7.10", + "@webassemblyjs/wast-printer": "1.7.10" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "@cypress/webpack-preprocessor": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@cypress/webpack-preprocessor/-/webpack-preprocessor-1.1.3.tgz", - "integrity": "sha512-guldaqrDN2+tINtgedExYKOO5lIl7ieacFb5V6vAqm7UgaLGguld7hm3lYip6HhfkVhE+gentdJ7yZeH36WChw==", - "dev": true, - "requires": { - "babel-core": "6.26.0", - "babel-loader": "7.1.2", - "babel-preset-env": "1.6.0", - "babel-preset-react": "6.24.1", - "bluebird": "3.5.0", - "debug": "3.1.0", - "lodash.clonedeep": "4.5.0", - "webpack": "3.6.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "@webassemblyjs/wasm-gen": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.10.tgz", + "integrity": "sha512-M0lb6cO2Y0PzDye/L39PqwV+jvO+2YxEG5ax+7dgq7EwXdAlpOMx1jxyXJTScQoeTpzOPIb+fLgX/IkLF8h2yw==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/ieee754": "1.7.10", + "@webassemblyjs/leb128": "1.7.10", + "@webassemblyjs/utf8": "1.7.10" } }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "babel-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "@webassemblyjs/wasm-opt": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.10.tgz", + "integrity": "sha512-R66IHGCdicgF5ZliN10yn5HaC7vwYAqrSVJGjtJJQp5+QNPBye6heWdVH/at40uh0uoaDN/UVUfXK0gvuUqtVg==", "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-buffer": "1.7.10", + "@webassemblyjs/wasm-gen": "1.7.10", + "@webassemblyjs/wasm-parser": "1.7.10" } }, - "babel-preset-env": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.0.tgz", - "integrity": "sha512-OVgtQRuOZKckrILgMA5rvctvFZPv72Gua9Rt006AiPoB0DJKGN07UmaQA+qRrYgK71MVct8fFhT0EyNWYorVew==", + "@webassemblyjs/wasm-parser": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.10.tgz", + "integrity": "sha512-AEv8mkXVK63n/iDR3T693EzoGPnNAwKwT3iHmKJNBrrALAhhEjuPzo/lTE4U7LquEwyvg5nneSNdTdgrBaGJcA==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", - "invariant": "2.2.4", - "semver": "5.5.0" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-api-error": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/ieee754": "1.7.10", + "@webassemblyjs/leb128": "1.7.10", + "@webassemblyjs/utf8": "1.7.10" } }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "@webassemblyjs/wast-parser": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.10.tgz", + "integrity": "sha512-YTPEtOBljkCL0VjDp4sHe22dAYSm3ZwdJ9+2NTGdtC7ayNvuip1wAhaAS8Zt9Q6SW9E5Jf5PX7YE3XWlrzR9cw==", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/floating-point-hex-parser": "1.7.10", + "@webassemblyjs/helper-api-error": "1.7.10", + "@webassemblyjs/helper-code-frame": "1.7.10", + "@webassemblyjs/helper-fsm": "1.7.10", + "@xtuc/long": "4.2.1" } }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "@webassemblyjs/wast-printer": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.10.tgz", + "integrity": "sha512-mJ3QKWtCchL1vhU/kZlJnLPuQZnlDOdZsyP0bbLWPGdYsQDnSBvyTLhzwBA3QAMlzEL9V4JHygEmK6/OTEyytA==", "dev": true, "requires": { - "ms": "2.0.0" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/wast-parser": "1.7.10", + "@xtuc/long": "4.2.1" } }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "acorn": "^5.0.0" } }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "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" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "is-extendable": "^0.1.0" } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "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" }, "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" } } } }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "webpack": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.6.0.tgz", - "integrity": "sha512-OsHT3D0W0KmPPh60tC7asNnOmST6bKTiR90UyEdT9QYoaJ4OYN4Gg7WK1k3VxHK07ZoiYWPsKvlS/gAjwL/vRA==", + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "acorn": "5.5.3", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.5.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" + "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" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "3.2.1", - "yargs-parser": "7.0.0" + "kind-of": "^3.0.2" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } + "is-buffer": "^1.1.5" } } } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "camelcase": "4.1.0" + "kind-of": "^3.0.2" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } - } - } - }, - "@cypress/xvfb": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.1.3.tgz", - "integrity": "sha512-EfRzw+wgI0Zdb4ZlhSvjh3q7I+oenqEYPXvr7oH/2RnzQqGDrPr7IU1Pi2yzGwoXmkNUQbo6qvntnItvQj0F4Q==", - "dev": true, - "requires": { - "lodash.once": "4.1.1" - } - }, - "@harmowatch/ngx-redux-core": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@harmowatch/ngx-redux-core/-/ngx-redux-core-0.2.2.tgz", - "integrity": "sha512-68I2L8Qe49ApUtezKtiNThcpIfnXAbHanxSJDLm9wQvAL4jBrQVN7K+DthGjO++THCQBHP1U64HHW8KVTRkqhw==", - "requires": { - "@harmowatch/redux-decorators": "0.1.0", - "tslib": "1.9.0" - } - }, - "@harmowatch/redux-decorators": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@harmowatch/redux-decorators/-/redux-decorators-0.1.0.tgz", - "integrity": "sha512-BWpYM+8TYYO2N/gceHcEZVyri1KJ/P3fBfahi8YfyaR+2rQ7cHEWHh/cHciaIt0ceRSX3R1H5zNmo8AYnmYqaA==" - }, - "@ngtools/json-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.2.0.tgz", - "integrity": "sha512-pMh+HDc6mOjUO3agRfB1tInimo7hf67u+0Cska2bfXFe6oU7rSMnr5PLVtiZVgwMoBHpx/6XjBymvcnWPo2Uzg==", - "dev": true - }, - "@ngtools/webpack": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.10.1.tgz", - "integrity": "sha512-Pa2FUy9n2Pu7kkTho6ADfHyypTmDMY8/HT7y9G3tZdaEsS7CjFMdchN5Dx+TCATGVh+G6FLS2mjgXBiGVTmbWw==", - "dev": true, - "requires": { - "chalk": "2.2.2", - "enhanced-resolve": "3.4.1", - "loader-utils": "1.1.0", - "magic-string": "0.22.5", - "semver": "5.5.0", - "source-map": "0.5.7", - "tree-kill": "1.2.0", - "webpack-sources": "1.1.0" - } - }, - "@nicky-lenaers/ngx-scroll-to": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@nicky-lenaers/ngx-scroll-to/-/ngx-scroll-to-0.6.1.tgz", - "integrity": "sha512-K5Lffbnvr75VVrcxIM3F2+JX5Eh5cpsDqdcySsO9SLdsLZ0UdHfzoVjUab3452ocpTpNDfC5o24F2CtMx1ENfQ==" - }, - "@schematics/angular": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.3.2.tgz", - "integrity": "sha512-Elrk0BA951s0ScFZU0AWrpUeJBYVR52DZ1QTIO5R0AhwEd1PW4olI8szPLGQlVW5Sd6H0FA/fyFLIvn2r9v6Rw==", - "dev": true, - "requires": { - "typescript": "2.6.2" - }, - "dependencies": { - "typescript": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", - "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true - } - } - }, - "@schematics/package-update": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@schematics/package-update/-/package-update-0.3.2.tgz", - "integrity": "sha512-7aVP4994Hu8vRdTTohXkfGWEwLhrdNP3EZnWyBootm5zshWqlQojUGweZe5zwewsKcixeVOiy2YtW+aI4aGSLA==", - "dev": true, - "requires": { - "rxjs": "5.5.6", - "semver": "5.5.0", - "semver-intersect": "1.3.1" - } - }, - "@storybook/addon-actions": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-3.4.1.tgz", - "integrity": "sha512-mCpEbzex7WYkyIHn9QUnIz83IwMO9Zi4D2LC6c/0u42HzQdkmTJWnyEg4NY5Az/1WZZTtwe9aep/pLc+Zzokdw==", - "requires": { - "@storybook/components": "3.4.1", - "babel-runtime": "6.26.0", - "deep-equal": "1.0.1", - "glamor": "2.20.40", - "glamorous": "4.12.2", - "global": "4.3.2", - "make-error": "1.3.4", - "prop-types": "15.6.1", - "react-inspector": "2.3.0", - "uuid": "3.2.1" - } - }, - "@storybook/addon-links": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-3.4.1.tgz", - "integrity": "sha512-yOVStezQO/VTTlxoqDdVu6CCI2kHBNdLD6lY9w1ly20b6J4hg2Cgy/d/VyPUKfM3fTkdAHeBFayg41KmR9lrMQ==", - "requires": { - "@storybook/components": "3.4.1", - "babel-runtime": "6.26.0", - "global": "4.3.2", - "prop-types": "15.6.1" - } - }, - "@storybook/addons": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-3.4.1.tgz", - "integrity": "sha512-WFHwVnJq6zItotj89fGFtEJ/MPdbUaOXu0QsNUbM1Muqw/kVX7gVAwXDPllBJ5y1/42aAzsJCQ/WMdrD2M9Tcg==" - }, - "@storybook/channel-postmessage": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-3.4.1.tgz", - "integrity": "sha512-3LhieYOBJFPi5JRFUCc0axSj28GWAJjnXSNKRsWoRy+oSnj/Ux56ywkGLuh20Mze9NoA45MIKvtrsTPq2UiEkw==", - "requires": { - "@storybook/channels": "3.4.1", - "global": "4.3.2", - "json-stringify-safe": "5.0.1" - } - }, - "@storybook/channels": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-3.4.1.tgz", - "integrity": "sha512-D8q64LsAmjZ+MeMUr/j0r+a2M9mm5y1yXBGkbEzucI2e48RP4zcc9ZVNB8yqCDPwtQLDU6w2idFWcaJaZNHXQw==" - }, - "@storybook/client-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-3.4.1.tgz", - "integrity": "sha512-wGIdo9GxxZ8iRzjTD9IrOk5UycOm8cnxJfe1Pfw9G5pisthASsxBYeqSVI44K9WchV1fMSRZ4AKUPmpoJ1H+ww==" - }, - "@storybook/components": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-3.4.1.tgz", - "integrity": "sha512-STu4EkkUWZgMb/Cbpdf3YUKcQVTqIpg+kEP9zG7519/Eg0OuBgRZ4qRr5jiDbLQMsaGS8oxwjhCoHufG903oZw==", - "requires": { - "glamor": "2.20.40", - "glamorous": "4.12.2", - "prop-types": "15.6.1" - } - }, - "@storybook/core": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-3.4.1.tgz", - "integrity": "sha512-LGfJFaOjKKP2WQfVMcjxJ+Abv1DBJYmWcMXF1w5nt3sua/GYcidgFVj5txu6Ib44UZubp1iXXQAKr35T+iSNOg==", - "requires": { - "@storybook/addons": "3.4.1", - "@storybook/channel-postmessage": "3.4.1", - "@storybook/client-logger": "3.4.1", - "@storybook/node-logger": "3.4.1", - "@storybook/ui": "3.4.1", - "autoprefixer": "7.2.6", - "babel-runtime": "6.26.0", - "chalk": "2.3.2", - "commander": "2.15.0", - "css-loader": "0.28.11", - "dotenv": "5.0.1", - "events": "2.0.0", - "express": "4.16.3", - "file-loader": "1.1.11", - "global": "4.3.2", - "json-loader": "0.5.7", - "postcss-flexbugs-fixes": "3.3.0", - "postcss-loader": "2.1.2", - "prop-types": "15.6.1", - "qs": "6.5.1", - "serve-favicon": "2.5.0", - "shelljs": "0.8.1", - "style-loader": "0.20.3", - "url-loader": "0.6.2", - "webpack": "3.11.0", - "webpack-dev-middleware": "1.12.2", - "webpack-hot-middleware": "2.22.0" - }, - "dependencies": { - "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "tslib": "^1.9.0" } }, - "events": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.0.0.tgz", - "integrity": "sha512-r/M5YkNg9zwI8QbSf7tsDWWJvO3PGwZXyG7GpFAxtMASnHL2eblFd7iHiGPtyGKKFPZ59S63NeX10Ws6WqGDcg==" + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, - "style-loader": { - "version": "0.20.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.20.3.tgz", - "integrity": "sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg==", + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.5" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true + }, + "webpack": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.23.1.tgz", + "integrity": "sha512-iE5Cu4rGEDk7ONRjisTOjVHv3dDtcFfwitSxT7evtYj/rANJpt1OuC/Kozh1pBa99AUBr1L/LsaNB+D9Xz3CEg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-module-context": "1.7.10", + "@webassemblyjs/wasm-edit": "1.7.10", + "@webassemblyjs/wasm-parser": "1.7.10", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.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": "^0.4.4", + "tapable": "^1.1.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, "requires": { - "has-flag": "3.0.0" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } } } }, - "@storybook/mantra-core": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@storybook/mantra-core/-/mantra-core-1.7.2.tgz", - "integrity": "sha512-GD4OYJ8GsayVhIg306sfgcKDk9j8YfuSKIAWvdB/g7IDlw0pDgueONALVEEE2XWJtCwcsUyDtCYzXFgCBWLEjA==", - "requires": { - "@storybook/react-komposer": "2.0.4", - "@storybook/react-simple-di": "1.3.0", - "babel-runtime": "6.26.0" - } - }, - "@storybook/node-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-3.4.1.tgz", - "integrity": "sha512-vnM2+TIubLLsU5pcqydjnbPnska6zYvPSKIOO7lKTsGV0DdmDy7myvUn+oSRPubVyMh8+uno1J+XTHzdRkhsXQ==", - "requires": { - "npmlog": "4.1.2" - } - }, - "@storybook/podda": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@storybook/podda/-/podda-1.2.3.tgz", - "integrity": "sha512-g7dsdsn50AhlGZ8iIDKdF8bi7Am++iFOq+QN+hNKz3FvgLuf8Dz+mpC/BFl90eE9bEYxXqXKeMf87399Ec5Qhw==", + "@angular-devkit/build-optimizer": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.11.4.tgz", + "integrity": "sha512-tAAWWFCcl918Q1JivlLvLFer8Qm4/THWbEneMwk5fQvG6/NgJLoa3itP/MCUq4qL6YHmp2DWkdWnWfRQCgHeFA==", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "immutable": "3.8.2" - } - }, - "@storybook/react": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-3.4.1.tgz", - "integrity": "sha512-fBeHDwQPmsLcEPjEEDrOzBJMjbcidNms9aAtv8yo+pf8uvLMbe4nOxwt5/goKrj994wpqUrZ0gXXzarcQW59Vg==", - "requires": { - "@storybook/addon-actions": "3.4.1", - "@storybook/addon-links": "3.4.1", - "@storybook/addons": "3.4.1", - "@storybook/channel-postmessage": "3.4.1", - "@storybook/client-logger": "3.4.1", - "@storybook/core": "3.4.1", - "@storybook/node-logger": "3.4.1", - "@storybook/ui": "3.4.1", - "airbnb-js-shims": "1.4.1", - "babel-loader": "7.1.4", - "babel-plugin-macros": "2.2.0", - "babel-plugin-react-docgen": "1.9.0", - "babel-plugin-transform-regenerator": "6.26.0", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.1", - "babel-preset-minify": "0.3.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-0": "6.24.1", - "babel-runtime": "6.26.0", - "case-sensitive-paths-webpack-plugin": "2.1.2", - "common-tags": "1.7.2", - "core-js": "2.5.5", - "dotenv-webpack": "1.5.5", - "find-cache-dir": "1.0.0", - "glamor": "2.20.40", - "glamorous": "4.12.2", - "global": "4.3.2", - "html-loader": "0.5.5", - "html-webpack-plugin": "2.30.1", - "json5": "0.5.1", - "lodash.flattendeep": "4.4.0", - "markdown-loader": "2.0.2", - "prop-types": "15.6.1", - "react-dev-utils": "5.0.1", - "redux": "3.7.2", - "uglifyjs-webpack-plugin": "1.2.4", - "util-deprecate": "1.0.2", - "webpack": "3.11.0", - "webpack-hot-middleware": "2.22.0" + "loader-utils": "1.1.0", + "source-map": "0.5.6", + "typescript": "3.1.6", + "webpack-sources": "1.2.0" }, "dependencies": { - "core-js": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", - "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=" + "source-map": { + "version": "0.5.6", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "typescript": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", + "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "dev": true + }, + "webpack-sources": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", + "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } } } }, - "@storybook/react-komposer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@storybook/react-komposer/-/react-komposer-2.0.4.tgz", - "integrity": "sha1-wsDUp12bSpwMa0bxSrBQ9FitS7A=", - "requires": { - "@storybook/react-stubber": "1.0.1", - "babel-runtime": "6.26.0", - "hoist-non-react-statics": "1.2.0", - "lodash.pick": "4.4.0", - "shallowequal": "0.2.2" - } - }, - "@storybook/react-simple-di": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@storybook/react-simple-di/-/react-simple-di-1.3.0.tgz", - "integrity": "sha512-RH6gPQaYMs/VzQX2dgbZU8DQMKFXVOv1ruohHjjNPys4q+YdqMFMDe5jOP1AUE3j9g01x0eW7bVjRawSpl++Ew==", - "requires": { - "babel-runtime": "6.26.0", - "create-react-class": "15.6.3", - "hoist-non-react-statics": "1.2.0", - "prop-types": "15.6.1" - } - }, - "@storybook/react-stubber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@storybook/react-stubber/-/react-stubber-1.0.1.tgz", - "integrity": "sha512-k+CHH+vA8bQfCmzBTtJsPkITFgD+C/w19KuByZ9WeEvNUFtnDaCqfP+Vp3/OR+3IAfAXYYOWolqPLxNPcEqEjw==", + "@angular-devkit/build-webpack": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.11.4.tgz", + "integrity": "sha512-4nEDXSbv3oDu27Rw5s2DMKmcOZYVAt76bryVF2SycSkDq3eAIiqmgw3G3CJJ4LTulXzDpaIpk02MvgbYkX+hvw==", + "dev": true, "requires": { - "babel-runtime": "6.26.0" - } - }, - "@storybook/ui": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-3.4.1.tgz", - "integrity": "sha512-OX/mnl3jQwZwt1wltFcmO+8yPJlZgeQ4sksKy/jmMqfnk4GFP+UVmg2KIDYhh6Xl2/H1xi14iAdH9Z36losrpw==", - "requires": { - "@storybook/components": "3.4.1", - "@storybook/mantra-core": "1.7.2", - "@storybook/podda": "1.2.3", - "@storybook/react-komposer": "2.0.4", - "babel-runtime": "6.26.0", - "deep-equal": "1.0.1", - "events": "2.0.0", - "fuse.js": "3.2.0", - "global": "4.3.2", - "keycode": "2.2.0", - "lodash.debounce": "4.0.8", - "lodash.pick": "4.4.0", - "lodash.sortby": "4.7.0", - "lodash.throttle": "4.1.1", - "prop-types": "15.6.1", - "qs": "6.5.1", - "react-fuzzy": "0.5.2", - "react-icons": "2.2.7", - "react-modal": "3.3.2", - "react-split-pane": "0.1.77", - "react-treebeard": "2.1.0" + "@angular-devkit/architect": "0.11.4", + "@angular-devkit/core": "7.1.4", + "rxjs": "6.3.3" }, "dependencies": { - "events": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.0.0.tgz", - "integrity": "sha512-r/M5YkNg9zwI8QbSf7tsDWWJvO3PGwZXyG7GpFAxtMASnHL2eblFd7iHiGPtyGKKFPZ59S63NeX10Ws6WqGDcg==" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } } } }, - "@types/blob-util": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz", - "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==", - "dev": true - }, - "@types/bluebird": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz", - "integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==", - "dev": true - }, - "@types/chai": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.3.tgz", - "integrity": "sha512-f5dXGzOJycyzSMdaXVhiBhauL4dYydXwVpavfQ1mVCaGjR56a9QfklXObUxlIY9bGTmCPHEEZ04I16BZ/8w5ww==", - "dev": true - }, - "@types/chai-jquery": { - "version": "1.1.35", - "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz", - "integrity": "sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ==", - "dev": true, - "requires": { - "@types/chai": "4.1.3", - "@types/jquery": "3.2.16" - } - }, - "@types/cypress": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/cypress/-/cypress-1.1.3.tgz", - "integrity": "sha512-OXe0Gw8LeCflkG1oPgFpyrYWJmEKqYncBsD/J0r17r0ETx/TnIGDNLwXt/pFYSYuYTpzcq1q3g62M9DrfsBL4g==", - "dev": true, - "requires": { - "cypress": "2.1.0" - } - }, - "@types/jasmine": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.3.tgz", - "integrity": "sha512-BN0ho2/U55Td9k8RT2KqonDNmWZHTl1crIk8GIh+xNeCw8A60GMCIKN5a6u/Voz3pF3zzl3Ui+ldGrGxCSsYQw==", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.2.tgz", - "integrity": "sha1-X2jh5pe/ELxv2Mvy4Aaj1nEsW2Q=", - "dev": true, - "requires": { - "@types/jasmine": "2.8.3" - } - }, - "@types/jquery": { - "version": "3.2.16", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.2.16.tgz", - "integrity": "sha512-q2WC02YxQoX2nY1HRKlYGHpGP1saPmD7GN0pwCDlTz35a4eOtJG+aHRlXyjCuXokUukSrR2aXyBhSW3j+jPc0A==", - "dev": true - }, - "@types/lodash": { - "version": "4.14.91", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.91.tgz", - "integrity": "sha512-k+nc3moSlAaXacyvz4/c6D9lnUeI6AKsLvkXFuNzUEEqMw7sjDnLW2GqlJ4nyFgMX/p+QzvVG6zRoDo4lJIV5g==" - }, - "@types/minimatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.1.tgz", - "integrity": "sha512-rUO/jz10KRSyA9SHoCWQ8WX9BICyj5jZYu1/ucKEJKb4KzLZCKMURdYbadP157Q6Zl1x0vHsrU+Z/O0XlhYQDw==", - "dev": true - }, - "@types/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-YeDiSEzznwZwwp766SJ6QlrTyBYUGPSIwmREHVTmktUYiT/WADdWtpt9iH0KuUSf8lZLdI4lP0X6PBzPo5//JQ==", - "dev": true - }, - "@types/node": { - "version": "6.0.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.60.tgz", - "integrity": "sha1-5+E068Z0rm7ZPDbHZ3ObEQ0sV/w=", - "dev": true - }, - "@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "2.53.43", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz", - "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==", - "dev": true - }, - "@types/sinon": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.0.0.tgz", - "integrity": "sha512-cuK4xM8Lg2wd8cxshcQa8RG4IK/xfyB6TNE6tNVvkrShR4xdrYgsV04q6Dp6v1Lp6biEFdzD8k8zg/ujQeiw+A==", - "dev": true - }, - "@types/sinon-chai": { - "version": "2.7.29", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz", - "integrity": "sha512-EkI/ZvJT4hglWo7Ipf9SX+J+R9htNOMjW8xiOhce7+0csqvgoF5IXqY5Ae1GqRgNtWCuaywR5HjVa1snkTqpOw==", + "@angular-devkit/core": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.1.4.tgz", + "integrity": "sha512-3cBVHjSQjMyE/mIyOX82ekdybNRQlN+kUfmdZS6oVW9aV48vdxcVbEGdl8t1H4enMf89u8kXiAAET9jFaqWopg==", "dev": true, "requires": { - "@types/chai": "4.1.3", - "@types/sinon": "4.0.0" - } - }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "2.1.18", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==" - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "requires": { - "acorn": "4.0.13" + "ajv": "6.5.3", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" }, "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "address": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", - "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" - }, - "addressparser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", - "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=", - "dev": true, - "optional": true - }, - "adm-zip": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", - "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "agent-base": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", - "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", - "dev": true, - "requires": { - "extend": "3.0.1", - "semver": "5.0.3" - }, - "dependencies": { - "semver": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", - "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true - } - } - }, - "airbnb-js-shims": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-1.4.1.tgz", - "integrity": "sha512-b7S3d+DPRMwaDAs0cgKQTMLO/JG/iSehIlzEGvt2FpxIztRDDABEjWI73AfTxkSiK3/OsraPRYxVNAX3yhSNLw==", - "requires": { - "array-includes": "3.0.3", - "array.prototype.flatmap": "1.2.1", - "array.prototype.flatten": "1.2.1", - "es5-shim": "4.5.10", - "es6-shim": "0.35.3", - "function.prototype.name": "1.1.0", - "object.entries": "1.0.4", - "object.getownpropertydescriptors": "2.0.3", - "object.values": "1.0.4", - "promise.prototype.finally": "3.1.0", - "string.prototype.padend": "3.0.0", - "string.prototype.padstart": "3.0.0" - } - }, - "ajv": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", - "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=", - "requires": { - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ajv-keywords": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", - "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=" - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "am-i-a-dependency": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/am-i-a-dependency/-/am-i-a-dependency-1.1.2.tgz", - "integrity": "sha1-+dNCIwTW9kL4IeTEB1ZQNfYWfx8=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "amqplib": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.2.tgz", - "integrity": "sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA==", - "dev": true, - "optional": true, - "requires": { - "bitsyntax": "0.0.4", - "bluebird": "3.5.1", - "buffer-more-ints": "0.0.2", - "readable-stream": "1.1.14", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "optional": 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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, - "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, - "optional": true - } - } - }, - "angular-svg-icon": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/angular-svg-icon/-/angular-svg-icon-5.0.0.tgz", - "integrity": "sha512-wIRpoQ3PwytxA4MRe9cgmdytXrHgTGUuTdmIFtAQvCcftUSWWkzkVaXF1QSlFip6ipHf/YacdJHFYXpnW2lWPQ==" - }, - "angular-tree-component": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/angular-tree-component/-/angular-tree-component-7.0.1.tgz", - "integrity": "sha1-/I0OctjDS4cTGjuivTKtIJRWiaw=", - "requires": { - "lodash": "4.17.4", - "mobx": "4.1.0", - "mobx-angular": "3.0.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - } - } - }, - "angular2-datatable": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/angular2-datatable/-/angular2-datatable-0.6.0.tgz", - "integrity": "sha1-ygCPdAh/DLh9pXCe0vLR0GF3JjI=", - "requires": { - "lodash": "4.17.5" - } - }, - "angular2-multiselect-dropdown": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/angular2-multiselect-dropdown/-/angular2-multiselect-dropdown-2.5.0.tgz", - "integrity": "sha1-6halE/Z0LN5V312fqumSzThU7dM=", - "requires": { - "font-awesome": "4.7.0" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "1.9.1" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "app-root-path": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", - "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "dev": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.5" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", - "dev": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0" - } - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "array.prototype.flatmap": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.1.tgz", - "integrity": "sha512-i18e2APdsiezkcqDyZor78Pbfjfds3S94dG6dgIV2ZASJaUf1N0dz2tGdrmwrmlZuNUgxH+wz6Z0zYVH2c5xzQ==", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0", - "function-bind": "1.1.1" - } - }, - "array.prototype.flatten": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatten/-/array.prototype.flatten-1.2.1.tgz", - "integrity": "sha512-3GhsA78XgK//wQKbhUe6L93kknekGlTRY0kvYcpuSi0aa9rVrMr/okeIIv/XSpN8fZ5iUM+bWifhf2/7CYKtIg==", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0", - "function-bind": "1.1.1" - } - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", - "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", - "dev": true, - "optional": true - }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.5" - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "optional": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" - }, - "autoprefixer": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", - "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000815", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.20", - "postcss-value-parser": "3.3.0" - } - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true - }, - "axios": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz", - "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", - "dev": true, - "optional": true, - "requires": { - "follow-redirects": "1.0.0" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { - "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" + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "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.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" - } - }, - "babel-helper-bindify-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" - } - }, - "babel-helper-evaluate-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.3.0.tgz", - "integrity": "sha512-dRFlMTqUJRGzx5a2smKxmptDdNCXKSkPcXWzKLwAV72hvIZumrd/0z9RcewHkr7PmAEq+ETtpD1GK6wZ6ZUXzw==" - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-explode-class": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-flip-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.3.0.tgz", - "integrity": "sha512-kNGohWmtAG3b7tN1xocRQ5rsKkH/hpvZsMiGOJ1VwGJKhnwzR5KlB3rvKBaBPl5/IGHcopB2JN+r1SUEX1iMAw==" - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-is-nodes-equiv": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", - "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=" - }, - "babel-helper-is-void-0": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.3.0.tgz", - "integrity": "sha512-JVqdX8y7Rf/x4NwbqtUI7mdQjL9HWoDnoAEQ8Gv8oxzjvbJv+n75f7l36m9Y8C7sCUltX3V5edndrp7Hp1oSXQ==" - }, - "babel-helper-mark-eval-scopes": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.3.0.tgz", - "integrity": "sha512-nrho5Dg4vl0VUgURVpGpEGiwbst5JX7efIyDHFxmkCx/ocQFnrPt8ze9Kxl6TKjR29bJ7D/XKY1NMlSxOQJRbQ==" - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-remove-or-void": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.3.0.tgz", - "integrity": "sha512-D68W1M3ibCcbg0ysh3ww4/O0g10X1CXK720oOuR8kpfY7w0yP4tVcpK7zDmI1JecynycTQYAZ1rhLJo9aVtIKQ==" - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-to-multiple-sequence-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz", - "integrity": "sha512-1uCrBD+EAaMnAYh7hc944n8Ga19y3daEnoXWPYDvFVsxMCc1l8aDjksApaCEaNSSuewq8BEcff47Cy1PbLg2Gw==" - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", - "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", - "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-macros": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.2.0.tgz", - "integrity": "sha512-HGdenPU9+WGhg++P65O+6aIdmXx99p58K7VtAtizC3eUHbO4FXfyfK9SCJubylcyKziEB3nMAUDFHeyDUj38eA==", - "requires": { - "cosmiconfig": "4.0.0" - }, - "dependencies": { - "cosmiconfig": { + "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - } - } - }, - "babel-plugin-minify-builtins": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.3.0.tgz", - "integrity": "sha512-MqhSHlxkmgURqj3144qPksbZ/qof1JWdumcbucc4tysFcf3P3V3z3munTevQgKEFNMd8F5/ECGnwb63xogLjAg==", - "requires": { - "babel-helper-evaluate-path": "0.3.0" - } - }, - "babel-plugin-minify-constant-folding": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.3.0.tgz", - "integrity": "sha512-1XeRpx+aY1BuNY6QU/cm6P+FtEi3ar3XceYbmC+4q4W+2Ewq5pL7V68oHg1hKXkBIE0Z4/FjSoHz6vosZLOe/A==", - "requires": { - "babel-helper-evaluate-path": "0.3.0" - } - }, - "babel-plugin-minify-dead-code-elimination": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.3.0.tgz", - "integrity": "sha512-SjM2Fzg85YZz+q/PNJ/HU4O3W98FKFOiP9K5z3sfonlamGOzvZw3Eup2OTiEBsbbqTeY8yzNCAv3qpJRYCgGmw==", - "requires": { - "babel-helper-evaluate-path": "0.3.0", - "babel-helper-mark-eval-scopes": "0.3.0", - "babel-helper-remove-or-void": "0.3.0", - "lodash.some": "4.6.0" - } - }, - "babel-plugin-minify-flip-comparisons": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.3.0.tgz", - "integrity": "sha512-B8lK+ekcpSNVH7PZpWDe5nC5zxjRiiT4nTsa6h3QkF3Kk6y9qooIFLemdGlqBq6j0zALEnebvCpw8v7gAdpgnw==", - "requires": { - "babel-helper-is-void-0": "0.3.0" - } - }, - "babel-plugin-minify-guarded-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.3.0.tgz", - "integrity": "sha512-O+6CvF5/Ttsth3LMg4/BhyvVZ82GImeKMXGdVRQGK/8jFiP15EjRpdgFlxv3cnqRjqdYxLCS6r28VfLpb9C/kA==", - "requires": { - "babel-helper-flip-expressions": "0.3.0" - } - }, - "babel-plugin-minify-infinity": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.3.0.tgz", - "integrity": "sha512-Sj8ia3/w9158DWieUxU6/VvnYVy59geeFEkVgLZYBE8EBP+sN48tHtBM/jSgz0ejEdBlcfqJ6TnvPmVXTzR2BQ==" - }, - "babel-plugin-minify-mangle-names": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.3.0.tgz", - "integrity": "sha512-PYTonhFWURsfAN8achDwvR5Xgy6EeTClLz+fSgGRqjAIXb0OyFm3/xfccbQviVi1qDXmlSnt6oJhBg8KE4Fn7Q==", - "requires": { - "babel-helper-mark-eval-scopes": "0.3.0" - } - }, - "babel-plugin-minify-numeric-literals": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.3.0.tgz", - "integrity": "sha512-TgZj6ay8zDw74AS3yiIfoQ8vRSNJisYO/Du60S8nPV7EW7JM6fDMx5Sar6yVHlVuuwNgvDUBh191K33bVrAhpg==" - }, - "babel-plugin-minify-replace": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.3.0.tgz", - "integrity": "sha512-VR6tTg2Lt0TicHIOw04fsUtpPw7RaRP8PC8YzSFwEixnzvguZjZJoL7TgG7ZyEWQD1cJ96UezswECmFNa815bg==" - }, - "babel-plugin-minify-simplify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.3.0.tgz", - "integrity": "sha512-2M16ytQOCqBi7bYMu4DCWn8e6KyFCA108F6+tVrBJxOmm5u2sOmTFEa8s94tR9RHRRNYmcUf+rgidfnzL3ik9Q==", - "requires": { - "babel-helper-flip-expressions": "0.3.0", - "babel-helper-is-nodes-equiv": "0.0.1", - "babel-helper-to-multiple-sequence-expressions": "0.3.0" - } - }, - "babel-plugin-minify-type-constructors": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.3.0.tgz", - "integrity": "sha512-XRXpvsUCPeVw9YEUw+9vSiugcSZfow81oIJT0yR9s8H4W7yJ6FHbImi5DJHoL8KcDUjYnL9wYASXk/fOkbyR6Q==", - "requires": { - "babel-helper-is-void-0": "0.3.0" - } - }, - "babel-plugin-react-docgen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-1.9.0.tgz", - "integrity": "sha512-8lQ73p4BL+xcgba03NTiHrddl2X8J6PDMQHPpz73sesrRBf6JtAscQPLIjFWQR/abLokdv81HdshpjYGppOXgA==", - "requires": { - "babel-types": "6.26.0", - "lodash": "4.17.5", - "react-docgen": "3.0.0-beta9" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" - }, - "babel-plugin-syntax-class-constructor-call": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", - "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=" - }, - "babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" - }, - "babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" - }, - "babel-plugin-syntax-do-expressions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", - "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=" - }, - "babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-export-extensions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", - "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=" - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" - }, - "babel-plugin-syntax-function-bind": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", - "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=" - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-class-constructor-call": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", - "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", - "requires": { - "babel-plugin-syntax-class-constructor-call": "6.18.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-do-expressions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", - "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", - "requires": { - "babel-plugin-syntax-do-expressions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "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" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.1.4.tgz", + "integrity": "sha512-+rn3ppcC3grsi9vV2uUIYh/5mUBEJ+JRCKW11BJoUqLMeu8W7h+vbVonyfwJXsk3FSTf9ZY0C7F7UqggRS3cWw==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.1.4", + "rxjs": "6.3.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular-redux/store": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular-redux/store/-/store-9.0.0.tgz", + "integrity": "sha512-0aWUktzTK88xDoDlGUDmDBnGW1ZB21W3H9dq0E52fuaN87cwtdca83ioi20/YT+M6EOecYPY7il9fSpy/Ewd1A==" + }, + "@angular/animations": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.1.4.tgz", + "integrity": "sha512-877LZ83scksJtflVz97CUWlSsZnxduBxPD+ls5OTrTT/bq3muzHCm8rgTO7S8fBwwrEVXLorvMAlhDPpMg5Swg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/cdk": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.2.2.tgz", + "integrity": "sha512-DG4Ip9COZuQngG31gNFrJRtVPYC8H938dCHuqVjHrLEKfdsKzvprI/y0W+tr/sUnIbIJWEPSvnzmS3XYOgmFyg==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^1.7.1" + } + }, + "@angular/cli": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.1.4.tgz", + "integrity": "sha512-SruaZsmyq3+ymMPeMJSzhytvgtvzyzb1q58pUYX+vZjff2aMYOo0TVxJALwTOPIABICTqUTZmujbLG9uxVgxFA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.11.4", + "@angular-devkit/core": "7.1.4", + "@angular-devkit/schematics": "7.1.4", + "@schematics/angular": "7.1.4", + "@schematics/update": "0.11.4", + "inquirer": "6.2.0", + "opn": "5.3.0", + "semver": "5.5.1", + "symbol-observable": "1.2.0" + }, + "dependencies": { + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + } + } + }, + "@angular/common": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.1.4.tgz", + "integrity": "sha512-oQPCilcf1H/OXmt4z6PfGoCSb1YPRBAXGs/KRBARm3tYan2r5CmV0BFwpWXWQrEMt8YQqqLiBQUQ64d8+VFm8Q==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.1.4.tgz", + "integrity": "sha512-AvYXtjEJ27Rhv4c27DXNEa58Lit63jdydzbz7VuyFhNU+FwDUK2DC4gZe0nWZsf7HUniJezVRFkECDCZQeSKCQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler-cli": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.1.4.tgz", + "integrity": "sha512-fyEY58A53pmVEuhfyU1z1TAi1n5rOK5cCjhFnUUnnESQFEW/aQYOl0ZL6LDsMSYfa78fkDw4Nc0DytvZ1ymVMw==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^1.4.2", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "shelljs": "^0.8.1", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "9.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "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" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.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", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "@angular/core": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.1.4.tgz", + "integrity": "sha512-36uWLrmmlzf8JKaq2A5F2tPQEHvFSsbTQWOT559Drp1tzM2uSA7PysNHv5TXUshDn5i54S2EQFm4bj2YPp4Hzg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/forms": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.1.4.tgz", + "integrity": "sha512-YB2lDRe7aMsaO5ZlbeFZGH+uTQOcpotFDKCmTckpefRJ7id6TlUSBYdYRH80qOQfPJGpsnqQvLZkL24UMasKtQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/http": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.1.4.tgz", + "integrity": "sha512-Lrjb99sHu0Cv7MBbVLev1I1Fe+DJcwG4v7juZB/5nE5opKmbQo3Lfqvt2dVrMOxHeju9ReFznEnuGNMK6+m6pQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/language-service": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.1.4.tgz", + "integrity": "sha512-Pvrk3W3+6XfrmpCRcTumfyplv6AQJXKfDdPFSbhdpHJlpdcQRo6TckA85Yln5/CXZSAiPaZeiejQt2OogrIRLg==", + "dev": true + }, + "@angular/material": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.2.2.tgz", + "integrity": "sha512-HTtDhK5XkDvP6GPg4WTTa0HbeeagTfVRooTfw0TA+IuTAMBhXt5h1yzuGpFyMap8/PUVZN1D04g2CLhBSzoDxg==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/platform-browser": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.1.4.tgz", + "integrity": "sha512-lIFBKo6Uqty7qYDI9T8quFCUzUpGBgpzvDe14aAHFwZCft9rMS1J7PB1F26/dy2RBQE8tUyN2zp2xZQnYAhMcA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.1.4.tgz", + "integrity": "sha512-LtFd6XIz98BKjxrCRbaz2y0XSmVQSTzrvpAyNzKnzHAMn+4XpIpnzyV3Y6DeHolIBwLjFHFzGKMBwOHOwME4RQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-server": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-7.1.4.tgz", + "integrity": "sha512-4SwCzrXK4W9rlxnf+XBcqENLhKd0JVQ6S7agE56Jb3h7Vk5m9xABb+jmFYNfSqW9ZOwgM2inP7bKD9fjlp3x4g==", + "requires": { + "domino": "^2.1.0", + "tslib": "^1.9.0", + "xhr2": "^0.1.4" + } + }, + "@angular/router": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.1.4.tgz", + "integrity": "sha512-5VVVcRsmuKrIWPnh5zF1ExXmIpCx2tlisJ7YTS2FFDXnqrZ9i2QgaxyJuyZE+Btg3t7LPF4tkhRQpjauNiHJYA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/core": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.3.tgz", + "integrity": "sha512-w445QGI2qd0E0GlSnq6huRZWPMmQGCp5gd5ZWS4hagn0EiwzxD5QMFkpchyusAyVC1n27OKXzQ0/88aVU9n4xQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.3", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.3.3", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.2.2", + "@babel/types": "^7.3.3", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", + "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.3.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", + "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", + "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", + "dev": true, + "requires": { + "@babel/types": "^7.2.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", + "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", + "dev": true, + "requires": { + "@babel/types": "^7.2.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.2.2", + "@babel/types": "^7.2.2", + "lodash": "^4.17.10" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + }, + "dependencies": { + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + } + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", + "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", + "dev": true, + "requires": { + "@babel/types": "^7.2.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-replace-supers": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", + "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.2.3", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", + "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", + "dev": true, + "requires": { + "@babel/types": "^7.2.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", + "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", + "dev": true, + "requires": { + "@babel/types": "^7.2.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/helpers": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", + "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", + "dev": true, + "requires": { + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", + "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.3.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", + "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regexpu-core": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", + "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", + "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + } + } + }, + "@babel/plugin-transform-classes": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz", + "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz", + "integrity": "sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regexpu-core": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", + "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz", + "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", + "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.13.3" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", + "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regexpu-core": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/preset-env": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.2.3.tgz", + "integrity": "sha512-AuHzW7a9rbv5WXmvGaPX7wADxFkZIqKlbBh1dmZUQp4iwiPpkE/Qnrji6SC4UQCQzvWY/cpHET29eUhXS9cLPw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", + "integrity": "sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000921", + "electron-to-chromium": "^1.3.92", + "node-releases": "^1.1.1" + } + }, + "caniuse-lite": { + "version": "1.0.30000925", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000925.tgz", + "integrity": "sha512-zcYupoUxtW46rOikuDF7vfL9N1Qe9ZuUBTz3n3q8fFsoJIs/h9UN6Vg/0QpjsmvImXw9mVc3g+ZBfqvUz/iALA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz", + "integrity": "sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "^4.17.5" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@bahmutov/add-typescript-to-cypress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@bahmutov/add-typescript-to-cypress/-/add-typescript-to-cypress-2.0.0.tgz", + "integrity": "sha512-tnM/bBrvOHAXvTD6WAnbkwi9Su6WXiuOBhDsNr9SLu42Ne6DjRKHZdxo8Ros6kToEoh+Pe2E6dP9u0QEDfMABg==", + "dev": true, + "requires": { + "@cypress/webpack-preprocessor": "1.1.3", + "am-i-a-dependency": "1.1.2", + "chalk": "2.3.0", + "debug": "3.1.0", + "shelljs": "0.8.0", + "terminal-banner": "1.1.0", + "ts-loader": "3.2.0" + }, + "dependencies": { + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "shelljs": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.0.tgz", + "integrity": "sha512-wb72o5SM27oFRq2mMeNSl70DVkkvwf3ZSgk9rvieRVz7xFMIQp02HYw0oxlZgeAWS+wzGB+jcJWQTF7hH9WIPg==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + } + } + }, + "@cypress/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@cypress/webpack-preprocessor": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@cypress/webpack-preprocessor/-/webpack-preprocessor-1.1.3.tgz", + "integrity": "sha512-guldaqrDN2+tINtgedExYKOO5lIl7ieacFb5V6vAqm7UgaLGguld7hm3lYip6HhfkVhE+gentdJ7yZeH36WChw==", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-loader": "7.1.2", + "babel-preset-env": "1.6.0", + "babel-preset-react": "6.24.1", + "bluebird": "3.5.0", + "debug": "3.1.0", + "lodash.clonedeep": "4.5.0", + "webpack": "3.6.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "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" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "babel-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "dev": true, + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + } + }, + "babel-preset-env": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.0.tgz", + "integrity": "sha512-OVgtQRuOZKckrILgMA5rvctvFZPv72Gua9Rt006AiPoB0DJKGN07UmaQA+qRrYgK71MVct8fFhT0EyNWYorVew==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "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" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + } + }, + "webpack": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.6.0.tgz", + "integrity": "sha512-OsHT3D0W0KmPPh60tC7asNnOmST6bKTiR90UyEdT9QYoaJ4OYN4Gg7WK1k3VxHK07ZoiYWPsKvlS/gAjwL/vRA==", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^5.1.5", + "ajv-keywords": "^2.0.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.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", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } + }, + "@cypress/xvfb": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz", + "integrity": "sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@harmowatch/ngx-redux-core": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@harmowatch/ngx-redux-core/-/ngx-redux-core-0.2.2.tgz", + "integrity": "sha512-68I2L8Qe49ApUtezKtiNThcpIfnXAbHanxSJDLm9wQvAL4jBrQVN7K+DthGjO++THCQBHP1U64HHW8KVTRkqhw==", + "requires": { + "@harmowatch/redux-decorators": "0.1.0", + "tslib": "^1.7.1" + } + }, + "@harmowatch/redux-decorators": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@harmowatch/redux-decorators/-/redux-decorators-0.1.0.tgz", + "integrity": "sha512-BWpYM+8TYYO2N/gceHcEZVyri1KJ/P3fBfahi8YfyaR+2rQ7cHEWHh/cHciaIt0ceRSX3R1H5zNmo8AYnmYqaA==" + }, + "@ngtools/webpack": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.1.4.tgz", + "integrity": "sha512-8A15TPJzg3g7yI70QvBzJ253P32WAgCVre9nMaDdd22UmlbvN8Ke4RuQY7vYVTECLL+bWpFJEFXL+ThzCRUgeA==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.1.4", + "enhanced-resolve": "4.1.0", + "rxjs": "6.3.3", + "tree-kill": "1.2.0", + "webpack-sources": "1.2.0" + }, + "dependencies": { + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true + }, + "webpack-sources": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", + "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "@nicky-lenaers/ngx-scroll-to": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@nicky-lenaers/ngx-scroll-to/-/ngx-scroll-to-0.6.1.tgz", + "integrity": "sha512-K5Lffbnvr75VVrcxIM3F2+JX5Eh5cpsDqdcySsO9SLdsLZ0UdHfzoVjUab3452ocpTpNDfC5o24F2CtMx1ENfQ==" + }, + "@schematics/angular": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.1.4.tgz", + "integrity": "sha512-4QVSmvQtOELek+FDq+k2ROeH9YrRrPJ6jWK179+qOruKSd4uTgEti/jy+fS0rfr52kDSGdDhz7XTh/QvQB89fg==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.1.4", + "@angular-devkit/schematics": "7.1.4", + "typescript": "3.1.6" + }, + "dependencies": { + "typescript": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", + "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "dev": true + } + } + }, + "@schematics/update": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.11.4.tgz", + "integrity": "sha512-InfsMJtdWwoqCPmtlJeXBwRPPgIXUzpzIkCCcayRe9gy6PkPUIlOjfgEZ4Mqm/HR46lqsI8xwZfUK7SLV//a2g==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.1.4", + "@angular-devkit/schematics": "7.1.4", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.1.1", + "rxjs": "6.3.3", + "semver": "5.5.1", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + } + } + }, + "@turf/along": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/along/-/along-5.1.5.tgz", + "integrity": "sha1-YdbmplhKzdq1asVYTge/jL5fi+s=", + "requires": { + "@turf/bearing": "^5.1.5", + "@turf/destination": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/area": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-5.1.5.tgz", + "integrity": "sha1-79iZv9Jgzb0VQbKjwVX4pdLu+h0=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/bbox": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-5.1.5.tgz", + "integrity": "sha1-MFHfUUrUxQ9KT5uKLRX9i2hA7aM=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/bbox-clip": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-5.1.5.tgz", + "integrity": "sha1-M2S1Mo3/nzz0HZ4C7a/zdNFQzIQ=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "lineclip": "^1.1.5" + } + }, + "@turf/bbox-polygon": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-5.1.5.tgz", + "integrity": "sha1-auuk7VHYXSluD3w4uIwznwHu4CQ=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/bearing": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-5.1.5.tgz", + "integrity": "sha1-egt5ATbE70eX8CRjBdRcvi0ns/c=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/bezier-spline": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-5.1.5.tgz", + "integrity": "sha1-WaJ7ul17l+8Vqz/VpA+9I4cEm8o=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/boolean-clockwise": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz", + "integrity": "sha1-MwK32sYsXikaB4nimvcoM4f6nes=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/boolean-contains": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-5.1.5.tgz", + "integrity": "sha1-WW1jruY2961T7pn5/yTJaZSg7xQ=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/boolean-point-on-line": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/boolean-crosses": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-5.1.5.tgz", + "integrity": "sha1-Ab+uollvFk3kpNMlCU3HwlXHFdY=", + "requires": { + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-intersect": "^5.1.5", + "@turf/polygon-to-line": "^5.1.5" + } + }, + "@turf/boolean-disjoint": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-5.1.6.tgz", + "integrity": "sha512-KHvUS6SBNYHBCLIJEJrg04pF5Oy+Fqn8V5G9U+9pti5vI9tyX7Ln2g7RSB7iJ1Cxsz8QAi6OukhXjEF2/8ZpGg==", + "requires": { + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/line-intersect": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/polygon-to-line": "^5.1.5" + } + }, + "@turf/boolean-equal": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-5.1.5.tgz", + "integrity": "sha1-Kfj21gu4RQff12WzIlTbjnLJOKQ=", + "requires": { + "@turf/clean-coords": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "geojson-equality": "0.1.6" + } + }, + "@turf/boolean-overlap": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-5.1.5.tgz", + "integrity": "sha1-DU5kxSx3CijpPZ7834qLg3OsznU=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-intersect": "^5.1.5", + "@turf/line-overlap": "^5.1.5", + "@turf/meta": "^5.1.5", + "geojson-equality": "0.1.6" + } + }, + "@turf/boolean-parallel": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-5.1.5.tgz", + "integrity": "sha1-c5NYR16ltlx+GCejw+DopofTqF0=", + "requires": { + "@turf/clean-coords": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/line-segment": "^5.1.5", + "@turf/rhumb-bearing": "^5.1.5" + } + }, + "@turf/boolean-point-in-polygon": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz", + "integrity": "sha1-8BzBlNHgMKVIv9qYHLpDz9YpQbc=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/boolean-point-on-line": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-5.1.5.tgz", + "integrity": "sha1-9jPF/4Aq0ku48Vja269v9KAj3Xs=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/boolean-within": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-5.1.5.tgz", + "integrity": "sha1-RxBdVtB1Kp0Pv81Dw2pfkUnchpc=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/boolean-point-on-line": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/buffer": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-5.1.5.tgz", + "integrity": "sha1-hByWJ8+5dLEirE4alW8EZrwCMcQ=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/center": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/projection": "^5.1.5", + "d3-geo": "1.7.1", + "turf-jsts": "*" + } + }, + "@turf/center": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/center/-/center-5.1.5.tgz", + "integrity": "sha1-RKss2VT2PA03dX9xWKmcPvURS4A=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/center-mean": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-5.1.5.tgz", + "integrity": "sha1-jI6YdTkeXwnw5uePXWYbiLIQigo=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/center-median": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-5.1.5.tgz", + "integrity": "sha1-u0Yb/noqSGAdikcnaFcYcjoUqHI=", + "requires": { + "@turf/center-mean": "^5.1.5", + "@turf/centroid": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/center-of-mass": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-5.1.5.tgz", + "integrity": "sha1-TTvXnYhJjbq4Mk1PafAyL2Uguco=", + "requires": { + "@turf/centroid": "^5.1.5", + "@turf/convex": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/centroid": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-5.1.5.tgz", + "integrity": "sha1-d4radCFjNQIa2P0OemWoNJ1Tx2k=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/circle": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-5.1.5.tgz", + "integrity": "sha1-mxV3g1UIq1L7HBCypQZcuiuHtqU=", + "requires": { + "@turf/destination": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/clean-coords": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-5.1.5.tgz", + "integrity": "sha1-EoAKmKeMmkUqcuxChJPEOs8q2h8=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/clone": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz", + "integrity": "sha1-JT6NNUdxgZduM636tQoPAqfw42c=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/clusters": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-5.1.5.tgz", + "integrity": "sha1-ZzpeXxsZycq6vFfJCO6t1oIiTdQ=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/clusters-dbscan": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-5.1.5.tgz", + "integrity": "sha1-V4H7TmVsdHoLjpk333MYHAMJ4m8=", + "requires": { + "@turf/clone": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "density-clustering": "1.3.0" + } + }, + "@turf/clusters-kmeans": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-5.1.5.tgz", + "integrity": "sha1-/W3+qLEzuovcI3CsPKzuFYejAvE=", + "requires": { + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "skmeans": "0.9.7" + } + }, + "@turf/collect": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-5.1.5.tgz", + "integrity": "sha1-/pjJqMIY7PJP/DPXApUXt8GbKj4=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/helpers": "^5.1.5", + "rbush": "^2.0.1" + } + }, + "@turf/combine": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-5.1.5.tgz", + "integrity": "sha1-uxS976VVBDVxlfwaEkzX1TqMiQU=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/concave": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-5.1.5.tgz", + "integrity": "sha1-I7uqw4fQNLlldKG9cNBZI3qdIRA=", + "requires": { + "@turf/clone": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/tin": "^5.1.5", + "topojson-client": "3.x", + "topojson-server": "3.x" + } + }, + "@turf/convex": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-5.1.5.tgz", + "integrity": "sha1-Dfk3fdACIWzpghsH9wXgN9rj4B0=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5", + "concaveman": "*" + } + }, + "@turf/destination": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-5.1.5.tgz", + "integrity": "sha1-7TU4G9zoO73cvQei4rzivd/7zCY=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/difference": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-5.1.5.tgz", + "integrity": "sha1-ok1pCnvKgD8QkKnuO52Qb8Q3H0I=", + "requires": { + "@turf/area": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "turf-jsts": "*" + } + }, + "@turf/dissolve": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-5.1.5.tgz", + "integrity": "sha1-LPEzqQIdIWODHD16lY1lB/nYGTg=", + "requires": { + "@turf/boolean-overlap": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-intersect": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/union": "^5.1.5", + "geojson-rbush": "2.1.0", + "get-closest": "*" + } + }, + "@turf/distance": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-5.1.5.tgz", + "integrity": "sha1-Oc8YIEu/h1h9cH5gmmARiQkVZAk=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/ellipse": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-5.1.5.tgz", + "integrity": "sha1-1XyrhTmFkgzeYCKKeNgEWAJcVL4=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/rhumb-destination": "^5.1.5", + "@turf/transform-rotate": "^5.1.5" + } + }, + "@turf/envelope": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-5.1.5.tgz", + "integrity": "sha1-UBMwnFP91D369LWIplw/7X28EIo=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/bbox-polygon": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/explode": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-5.1.5.tgz", + "integrity": "sha1-sSsvd0AEobSPYrqVsgocZVo94Rg=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/flatten": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-5.1.5.tgz", + "integrity": "sha1-2iknBnEz7WFpsLnWB7khVoiqE1g=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/flip": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-5.1.5.tgz", + "integrity": "sha1-Q29kOnIvDKU7n85jjkaT2zYIpoo=", + "requires": { + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/great-circle": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-5.1.5.tgz", + "integrity": "sha1-3r+2cc5HVQnLY3MBwV/PzPo1mpM=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8=" + }, + "@turf/hex-grid": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-5.1.5.tgz", + "integrity": "sha1-m3ul/s9QUfHoWJL3E/zlxVBQKmo=", + "requires": { + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/intersect": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/interpolate": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-5.1.5.tgz", + "integrity": "sha1-DxLwq3VtbdEK+ykMpuh3ve8BPqo=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/centroid": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/hex-grid": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/point-grid": "^5.1.5", + "@turf/square-grid": "^5.1.5", + "@turf/triangle-grid": "^5.1.5" + } + }, + "@turf/intersect": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-5.1.6.tgz", + "integrity": "sha512-KXyNv/GXdoGAOy03qZF53rgtXC2tNhF/4jLwTKiVRrBQH6kcEpipGStdJ+QkYIlarQPa8f7I9UlVAB19et4MfQ==", + "requires": { + "@turf/clean-coords": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/truncate": "^5.1.5", + "turf-jsts": "*" + } + }, + "@turf/invariant": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.1.5.tgz", + "integrity": "sha1-9Z9P76CSJLFdzhZR+QPIaNV6JOE=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/isobands": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-5.1.5.tgz", + "integrity": "sha1-a0TO9YTVUaMTBBh68jtKFYLj8I0=", + "requires": { + "@turf/area": "^5.1.5", + "@turf/bbox": "^5.1.5", + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/explode": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/isolines": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-5.1.5.tgz", + "integrity": "sha1-irTn9Cuz38VGFOW/FVln9+VdLeE=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/kinks": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-5.1.5.tgz", + "integrity": "sha1-irtpYdm7AQchO63fLCwmQNAlaYA=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/length": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/length/-/length-5.1.5.tgz", + "integrity": "sha1-86X4ZMK5lqi7RxeUU1ofrxLuvvs=", + "requires": { + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/line-arc": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-5.1.5.tgz", + "integrity": "sha1-AHinRHg1oSrkFKIR+aZNEYYVDhU=", + "requires": { + "@turf/circle": "^5.1.5", + "@turf/destination": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/line-chunk": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-5.1.5.tgz", + "integrity": "sha1-kQqFwFwG2dD5w4l3oF4IGNUIXEI=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/length": "^5.1.5", + "@turf/line-slice-along": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/line-intersect": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-5.1.5.tgz", + "integrity": "sha1-DikHGuQDKV5JFyO8SfXPrI0R3fM=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-segment": "^5.1.5", + "@turf/meta": "^5.1.5", + "geojson-rbush": "2.1.0" + } + }, + "@turf/line-offset": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-5.1.5.tgz", + "integrity": "sha1-KrWy8In4yRPiMdmUN4553KkLWh4=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/line-overlap": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-5.1.5.tgz", + "integrity": "sha1-lDxvh6A4bcQ9+sEdKz/5wRLNP2A=", + "requires": { + "@turf/boolean-point-on-line": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-segment": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/nearest-point-on-line": "^5.1.5", + "geojson-rbush": "2.1.0" + } + }, + "@turf/line-segment": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-5.1.5.tgz", + "integrity": "sha1-Mgeq7lRqskw9jcPMY/kcdwuAE+U=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/line-slice": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-5.1.5.tgz", + "integrity": "sha1-Hs/OFGKjeFeXVM7fRGTN4mgp8rU=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/nearest-point-on-line": "^5.1.5" + } + }, + "@turf/line-slice-along": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-5.1.5.tgz", + "integrity": "sha1-7drQoh70efKWihG9LdcomiEy6aU=", + "requires": { + "@turf/bearing": "^5.1.5", + "@turf/destination": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/line-split": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-5.1.5.tgz", + "integrity": "sha1-Wy30w3YZty73JbUWPPmSbVVArLc=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-intersect": "^5.1.5", + "@turf/line-segment": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/nearest-point-on-line": "^5.1.5", + "@turf/square": "^5.1.5", + "@turf/truncate": "^5.1.5", + "geojson-rbush": "2.1.0" + } + }, + "@turf/line-to-polygon": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-5.1.5.tgz", + "integrity": "sha1-ITz0Gmj4Ikd4ujnTGH3sPouBhlo=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/mask": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-5.1.5.tgz", + "integrity": "sha1-mrD+8aJyyY/j70kvn/thggayQtU=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/union": "^5.1.5", + "rbush": "^2.0.1" + } + }, + "@turf/meta": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.1.6.tgz", + "integrity": "sha1-wgqGPt7Qhp+yhUje6Ik0G8y0akY=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/midpoint": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-5.1.5.tgz", + "integrity": "sha1-4mH2srDqgSTM7/VSomLdRlydBfA=", + "requires": { + "@turf/bearing": "^5.1.5", + "@turf/destination": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/nearest-point": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-5.1.5.tgz", + "integrity": "sha1-EgUN5Bw5hEMiTHl43g9iE5ANNPs=", + "requires": { + "@turf/clone": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/nearest-point-on-line": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-5.1.5.tgz", + "integrity": "sha1-VgauKX8VlHUkvqUaKp71HsG/nDY=", + "requires": { + "@turf/bearing": "^5.1.5", + "@turf/destination": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-intersect": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/nearest-point-to-line": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-5.1.6.tgz", + "integrity": "sha512-ZSvDIEiHhifn/vNwLXZI/E8xmEz5yBPqfUR7BVHRZrB1cP7jLhKZvkbidjG//uW8Fr1Ulc+PFOXczLspIcx/lw==", + "requires": { + "@turf/helpers": "6.x", + "@turf/invariant": "6.x", + "@turf/meta": "6.x", + "@turf/point-to-line-distance": "^5.1.5", + "object-assign": "*" + }, + "dependencies": { + "@turf/helpers": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", + "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" + }, + "@turf/invariant": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.1.2.tgz", + "integrity": "sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg==", + "requires": { + "@turf/helpers": "6.x" + } + }, + "@turf/meta": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz", + "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==", + "requires": { + "@turf/helpers": "6.x" + } + } + } + }, + "@turf/planepoint": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-5.1.5.tgz", + "integrity": "sha1-GLvfAG91ne9eQsagBsn53oGyt/8=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/point-grid": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-5.1.5.tgz", + "integrity": "sha1-MFFBJI9Quv42zn5mukuX56sjaIc=", + "requires": { + "@turf/boolean-within": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/point-on-feature": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-5.1.5.tgz", + "integrity": "sha1-MMfwMkMCd8ZBjZbSieRba/shP+c=", + "requires": { + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/center": "^5.1.5", + "@turf/explode": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/nearest-point": "^5.1.5" + } + }, + "@turf/point-to-line-distance": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-5.1.6.tgz", + "integrity": "sha512-PE3hiTeeDEi4ZLPtI8XAzFYW9nHo1EVsZGm/4ZVV8jo39d3X1oLVHxY3e1PkCmWwRapXy4QLqvnTQ7nU4wspNw==", + "requires": { + "@turf/bearing": "6.x", + "@turf/distance": "6.x", + "@turf/helpers": "6.x", + "@turf/invariant": "6.x", + "@turf/meta": "6.x", + "@turf/projection": "6.x", + "@turf/rhumb-bearing": "6.x", + "@turf/rhumb-distance": "6.x" + }, + "dependencies": { + "@turf/bearing": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.0.1.tgz", + "integrity": "sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg==", + "requires": { + "@turf/helpers": "6.x", + "@turf/invariant": "6.x" + } + }, + "@turf/clone": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.0.2.tgz", + "integrity": "sha512-UVpYPnW3wRj3bPncR6Z2PRbowBk+nEdVWgGewPxrKKLfvswtVtG9n/OIyvbU3E3ZOadBVxTH2uAMEMOz4800FA==", + "requires": { + "@turf/helpers": "6.x" + } + }, + "@turf/distance": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.0.1.tgz", + "integrity": "sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg==", + "requires": { + "@turf/helpers": "6.x", + "@turf/invariant": "6.x" + } + }, + "@turf/helpers": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", + "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" + }, + "@turf/invariant": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.1.2.tgz", + "integrity": "sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg==", + "requires": { + "@turf/helpers": "6.x" + } + }, + "@turf/meta": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz", + "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==", + "requires": { + "@turf/helpers": "6.x" + } + }, + "@turf/projection": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.0.1.tgz", + "integrity": "sha512-Y3RvGT6I53MjYKLG69e9sMk45wJXcLbrEO1t6P3WQQQGqA2gYhhMJyV41vE2Z2llrJpvs2dDx/tIeQzGd0HHMQ==", + "requires": { + "@turf/clone": "6.x", + "@turf/helpers": "6.x", + "@turf/meta": "6.x" + } + }, + "@turf/rhumb-bearing": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.0.1.tgz", + "integrity": "sha512-MVBra8OVfjM4+/N0B3o6cBIYg9p/uRKzA9uk05RfrzasEbUL1vdD23LkTooVL74Yw4UxL8BQD9hS5Re2COJFDA==", + "requires": { + "@turf/helpers": "6.x", + "@turf/invariant": "6.x" + } + }, + "@turf/rhumb-distance": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.0.1.tgz", + "integrity": "sha512-3G45DQtQByzzfHFPcCyJdUZFwsd45zfZ7sAb1ddF7mhEj4G70+T2G3GKjInymqDNrbyh2gbG6wQiZSToC8Uf9g==", + "requires": { + "@turf/helpers": "6.x", + "@turf/invariant": "6.x" + } + } + } + }, + "@turf/points-within-polygon": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-5.1.5.tgz", + "integrity": "sha1-K4VaXfOq2lfC7oIKB1SrlJKKIzc=", + "requires": { + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/polygon-tangents": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-5.1.5.tgz", + "integrity": "sha1-K/AJkUcwJbF44lDcfLmuVAm71lI=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/polygon-to-line": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-5.1.5.tgz", + "integrity": "sha1-I7tEjYTcTGUZmaxhGjbZHFklA2o=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/polygonize": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-5.1.5.tgz", + "integrity": "sha1-BJP6EYefOdELmtAs5qI+lC0IqjI=", + "requires": { + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/envelope": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/projection": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-5.1.5.tgz", + "integrity": "sha1-JFF+7rLzaBa6n3EueubWo2jt91c=", + "requires": { + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/random": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/random/-/random-5.1.5.tgz", + "integrity": "sha1-sy78k0Vgroulfo67UfJBw5+6Lns=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/rewind": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-5.1.5.tgz", + "integrity": "sha1-nqPbSmi3PB/R3RH1djGxQ8/vock=", + "requires": { + "@turf/boolean-clockwise": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/rhumb-bearing": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-5.1.5.tgz", + "integrity": "sha1-rPalAkJ+uMSeGM2mrg7/qwxd3NI=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/rhumb-destination": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-5.1.5.tgz", + "integrity": "sha1-sbKuuSFUfyrAwamUtqEw+SRjx0I=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/rhumb-distance": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-5.1.5.tgz", + "integrity": "sha1-GAaFdiX0IlOE2tQT5p85U4/192U=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/sample": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-5.1.5.tgz", + "integrity": "sha1-6ctEikeJzFbuPeLdZ4HiNDQ1tBE=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/sector": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-5.1.5.tgz", + "integrity": "sha1-rCu5TBPt1gNPb9wrZwCBNdIPXgc=", + "requires": { + "@turf/circle": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/line-arc": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/shortest-path": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-5.1.5.tgz", + "integrity": "sha1-hUroCW9rw+EwD6ynfz6PZ9j5Nas=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/bbox-polygon": "^5.1.5", + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/clean-coords": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/transform-scale": "^5.1.5" + } + }, + "@turf/simplify": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-5.1.5.tgz", + "integrity": "sha1-Csjyei60IYGD7dmZjDJ1q+QIuSY=", + "requires": { + "@turf/clean-coords": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/square": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/square/-/square-5.1.5.tgz", + "integrity": "sha1-qnsh5gM8ySUsOlvW89iNq9b+0YA=", + "requires": { + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5" + } + }, + "@turf/square-grid": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-5.1.5.tgz", + "integrity": "sha1-G9X3uesU8LYLwjH+/nNR0aMvGlE=", + "requires": { + "@turf/boolean-contains": "^5.1.5", + "@turf/boolean-overlap": "^5.1.5", + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/intersect": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/standard-deviational-ellipse": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-5.1.5.tgz", + "integrity": "sha1-hc0oO14ayljyG9ZkEuQUtW2FIyQ=", + "requires": { + "@turf/center-mean": "^5.1.5", + "@turf/ellipse": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/points-within-polygon": "^5.1.5" + } + }, + "@turf/tag": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-5.1.5.tgz", + "integrity": "sha1-0e4aUIjs/UoUEQGcmCOczypJfSA=", + "requires": { + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/tesselate": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-5.1.5.tgz", + "integrity": "sha1-MqWU6cIaAEIKn5DSxD3z4RZgYc0=", + "requires": { + "@turf/helpers": "^5.1.5", + "earcut": "^2.0.0" + } + }, + "@turf/tin": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-5.1.5.tgz", + "integrity": "sha1-KCI+r8X76a6azKgc3P6l0UJMkX0=", + "requires": { + "@turf/helpers": "^5.1.5" + } + }, + "@turf/transform-rotate": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-5.1.5.tgz", + "integrity": "sha1-0Jbt2eMA/jFQadVNjkWMQJIh7fs=", + "requires": { + "@turf/centroid": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/rhumb-bearing": "^5.1.5", + "@turf/rhumb-destination": "^5.1.5", + "@turf/rhumb-distance": "^5.1.5" + } + }, + "@turf/transform-scale": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-5.1.5.tgz", + "integrity": "sha1-cP064BhWz3uunxWtVhzf6PiQAbk=", + "requires": { + "@turf/bbox": "^5.1.5", + "@turf/center": "^5.1.5", + "@turf/centroid": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/rhumb-bearing": "^5.1.5", + "@turf/rhumb-destination": "^5.1.5", + "@turf/rhumb-distance": "^5.1.5" + } + }, + "@turf/transform-translate": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-5.1.5.tgz", + "integrity": "sha1-Uwolf7Hccmja3Ks05nkB6yo97GM=", + "requires": { + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5", + "@turf/rhumb-destination": "^5.1.5" + } + }, + "@turf/triangle-grid": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-5.1.5.tgz", + "integrity": "sha1-ezZ2IQhVTBTyjK/zxIsc/ILI3IE=", + "requires": { + "@turf/distance": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/intersect": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "@turf/truncate": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-5.1.5.tgz", + "integrity": "sha1-nu37Oxi6gfLJjT6tCUMcyhiErYk=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "@turf/turf": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-5.1.6.tgz", + "integrity": "sha1-wxIlkoh+0jS3VGi4qMRb+Ib7+PY=", + "requires": { + "@turf/along": "5.1.x", + "@turf/area": "5.1.x", + "@turf/bbox": "5.1.x", + "@turf/bbox-clip": "5.1.x", + "@turf/bbox-polygon": "5.1.x", + "@turf/bearing": "5.1.x", + "@turf/bezier-spline": "5.1.x", + "@turf/boolean-clockwise": "5.1.x", + "@turf/boolean-contains": "5.1.x", + "@turf/boolean-crosses": "5.1.x", + "@turf/boolean-disjoint": "5.1.x", + "@turf/boolean-equal": "5.1.x", + "@turf/boolean-overlap": "5.1.x", + "@turf/boolean-parallel": "5.1.x", + "@turf/boolean-point-in-polygon": "5.1.x", + "@turf/boolean-point-on-line": "5.1.x", + "@turf/boolean-within": "5.1.x", + "@turf/buffer": "5.1.x", + "@turf/center": "5.1.x", + "@turf/center-mean": "5.1.x", + "@turf/center-median": "5.1.x", + "@turf/center-of-mass": "5.1.x", + "@turf/centroid": "5.1.x", + "@turf/circle": "5.1.x", + "@turf/clean-coords": "5.1.x", + "@turf/clone": "5.1.x", + "@turf/clusters": "5.1.x", + "@turf/clusters-dbscan": "5.1.x", + "@turf/clusters-kmeans": "5.1.x", + "@turf/collect": "5.1.x", + "@turf/combine": "5.1.x", + "@turf/concave": "5.1.x", + "@turf/convex": "5.1.x", + "@turf/destination": "5.1.x", + "@turf/difference": "5.1.x", + "@turf/dissolve": "5.1.x", + "@turf/distance": "5.1.x", + "@turf/ellipse": "5.1.x", + "@turf/envelope": "5.1.x", + "@turf/explode": "5.1.x", + "@turf/flatten": "5.1.x", + "@turf/flip": "5.1.x", + "@turf/great-circle": "5.1.x", + "@turf/helpers": "5.1.x", + "@turf/hex-grid": "5.1.x", + "@turf/interpolate": "5.1.x", + "@turf/intersect": "5.1.x", + "@turf/invariant": "5.1.x", + "@turf/isobands": "5.1.x", + "@turf/isolines": "5.1.x", + "@turf/kinks": "5.1.x", + "@turf/length": "5.1.x", + "@turf/line-arc": "5.1.x", + "@turf/line-chunk": "5.1.x", + "@turf/line-intersect": "5.1.x", + "@turf/line-offset": "5.1.x", + "@turf/line-overlap": "5.1.x", + "@turf/line-segment": "5.1.x", + "@turf/line-slice": "5.1.x", + "@turf/line-slice-along": "5.1.x", + "@turf/line-split": "5.1.x", + "@turf/line-to-polygon": "5.1.x", + "@turf/mask": "5.1.x", + "@turf/meta": "5.1.x", + "@turf/midpoint": "5.1.x", + "@turf/nearest-point": "5.1.x", + "@turf/nearest-point-on-line": "5.1.x", + "@turf/nearest-point-to-line": "5.1.x", + "@turf/planepoint": "5.1.x", + "@turf/point-grid": "5.1.x", + "@turf/point-on-feature": "5.1.x", + "@turf/point-to-line-distance": "5.1.x", + "@turf/points-within-polygon": "5.1.x", + "@turf/polygon-tangents": "5.1.x", + "@turf/polygon-to-line": "5.1.x", + "@turf/polygonize": "5.1.x", + "@turf/projection": "5.1.x", + "@turf/random": "5.1.x", + "@turf/rewind": "5.1.x", + "@turf/rhumb-bearing": "5.1.x", + "@turf/rhumb-destination": "5.1.x", + "@turf/rhumb-distance": "5.1.x", + "@turf/sample": "5.1.x", + "@turf/sector": "5.1.x", + "@turf/shortest-path": "5.1.x", + "@turf/simplify": "5.1.x", + "@turf/square": "5.1.x", + "@turf/square-grid": "5.1.x", + "@turf/standard-deviational-ellipse": "5.1.x", + "@turf/tag": "5.1.x", + "@turf/tesselate": "5.1.x", + "@turf/tin": "5.1.x", + "@turf/transform-rotate": "5.1.x", + "@turf/transform-scale": "5.1.x", + "@turf/transform-translate": "5.1.x", + "@turf/triangle-grid": "5.1.x", + "@turf/truncate": "5.1.x", + "@turf/union": "5.1.x", + "@turf/unkink-polygon": "5.1.x", + "@turf/voronoi": "5.1.x" + } + }, + "@turf/union": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/union/-/union-5.1.5.tgz", + "integrity": "sha1-UyhbYJQEf8WNlqrA6pCGXsNNRUs=", + "requires": { + "@turf/helpers": "^5.1.5", + "turf-jsts": "*" + } + }, + "@turf/unkink-polygon": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-5.1.5.tgz", + "integrity": "sha1-ewGEfFD7V0riV54Z5Ey6hSbSE8M=", + "requires": { + "@turf/area": "^5.1.5", + "@turf/boolean-point-in-polygon": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/meta": "^5.1.5", + "rbush": "^2.0.1" + } + }, + "@turf/voronoi": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-5.1.5.tgz", + "integrity": "sha1-6FbpQG3MLyXWbdyJhYTifC6/ymY=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "d3-voronoi": "1.1.2" + } + }, + "@types/blob-util": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz", + "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==", + "dev": true + }, + "@types/bluebird": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz", + "integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==", + "dev": true + }, + "@types/bunyan": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-0.0.36.tgz", + "integrity": "sha1-/dhlxY6OqvCtQBzQMtyGH1xXNCo=", + "requires": { + "@types/node": "*" + } + }, + "@types/chai": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.3.tgz", + "integrity": "sha512-f5dXGzOJycyzSMdaXVhiBhauL4dYydXwVpavfQ1mVCaGjR56a9QfklXObUxlIY9bGTmCPHEEZ04I16BZ/8w5ww==", + "dev": true + }, + "@types/chai-jquery": { + "version": "1.1.35", + "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz", + "integrity": "sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ==", + "dev": true, + "requires": { + "@types/chai": "*", + "@types/jquery": "*" + } + }, + "@types/cypress": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/cypress/-/cypress-1.1.3.tgz", + "integrity": "sha512-OXe0Gw8LeCflkG1oPgFpyrYWJmEKqYncBsD/J0r17r0ETx/TnIGDNLwXt/pFYSYuYTpzcq1q3g62M9DrfsBL4g==", + "dev": true, + "requires": { + "cypress": "*" + } + }, + "@types/form-data": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", + "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/jest": { + "version": "24.0.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.6.tgz", + "integrity": "sha512-NE7FBG/F4cMDKdCBqgyd+Sa6JZ5GiMOyA5QwJdeS4Ii/Z9a18WgGbFrHbcr48/7I9HdnkaAYP+S2MmQ27qoqJA==", + "dev": true, + "requires": { + "@types/jest-diff": "*" + } + }, + "@types/jest-diff": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz", + "integrity": "sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==", + "dev": true + }, + "@types/jest-each": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@types/jest-each/-/jest-each-0.3.4.tgz", + "integrity": "sha512-ZHTN/i7aLE0Bae73slS88oM8sucx1D2pXLZ5UAwrVzv2LHfNnzmxz1KwdjJ4cHomIxU1Z+M3kSbj7FLVD56K5A==", + "dev": true + }, + "@types/jquery": { + "version": "3.2.16", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.2.16.tgz", + "integrity": "sha512-q2WC02YxQoX2nY1HRKlYGHpGP1saPmD7GN0pwCDlTz35a4eOtJG+aHRlXyjCuXokUukSrR2aXyBhSW3j+jPc0A==", + "dev": true + }, + "@types/jwt-decode": { + "version": "1.4.30", + "resolved": "https://registry.npmjs.org/@types/jwt-decode/-/jwt-decode-1.4.30.tgz", + "integrity": "sha512-vmBy38tpxTDimkD+YP5i6gyvjD/sIVj8CNuTKjbDJ28LOkAisv0NDoKbfnSwRq+SYWza6bpie0C4lI7pkCbDIg==" + }, + "@types/lodash": { + "version": "4.14.91", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.91.tgz", + "integrity": "sha512-k+nc3moSlAaXacyvz4/c6D9lnUeI6AKsLvkXFuNzUEEqMw7sjDnLW2GqlJ4nyFgMX/p+QzvVG6zRoDo4lJIV5g==" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mocha": { + "version": "2.2.44", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz", + "integrity": "sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw==", + "dev": true + }, + "@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + }, + "@types/request": { + "version": "0.0.45", + "resolved": "https://registry.npmjs.org/@types/request/-/request-0.0.45.tgz", + "integrity": "sha512-OIIREjT58pnpfJjEY5PeBEuRtRR2ED4DF1Ez3Dj9474kCqEKfE+iNAYyM/P3RxxDjNxBhipo+peNBW0S/7Wrzg==", + "requires": { + "@types/form-data": "*", + "@types/node": "*" + } + }, + "@types/sinon": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.0.0.tgz", + "integrity": "sha512-cuK4xM8Lg2wd8cxshcQa8RG4IK/xfyB6TNE6tNVvkrShR4xdrYgsV04q6Dp6v1Lp6biEFdzD8k8zg/ujQeiw+A==", + "dev": true + }, + "@types/sinon-chai": { + "version": "2.7.29", + "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz", + "integrity": "sha512-EkI/ZvJT4hglWo7Ipf9SX+J+R9htNOMjW8xiOhce7+0csqvgoF5IXqY5Ae1GqRgNtWCuaywR5HjVa1snkTqpOw==", + "dev": true, + "requires": { + "@types/chai": "*", + "@types/sinon": "*" + } + }, + "@types/uuid": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.4.tgz", + "integrity": "sha512-tPIgT0GUmdJQNSHxp0X2jnpQfBSTfGxUMc/2CXBU2mnyTFVYVa2ojpoQ74w0U2yn2vw3jnC640+77lkFFpdVDw==", + "requires": { + "@types/node": "*" + } + }, + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abab": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "^4.0.3" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "acorn-globals": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", + "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", + "dev": true + } + } + }, + "acorn-walk": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "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" + }, + "dependencies": { + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "am-i-a-dependency": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/am-i-a-dependency/-/am-i-a-dependency-1.1.2.tgz", + "integrity": "sha1-+dNCIwTW9kL4IeTEB1ZQNfYWfx8=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "angular-base64-upload": { + "version": "0.1.23", + "resolved": "https://registry.npmjs.org/angular-base64-upload/-/angular-base64-upload-0.1.23.tgz", + "integrity": "sha512-vRSY+7/pag2hEdTSB90LTvT5rU5XPxBNMA1WGz60pNSpChRUzf+h5FR9lObRcGg1WUOvlYinnvoPTD6Nktcx1g==", + "dev": true + }, + "angular-svg-icon": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/angular-svg-icon/-/angular-svg-icon-5.0.0.tgz", + "integrity": "sha512-wIRpoQ3PwytxA4MRe9cgmdytXrHgTGUuTdmIFtAQvCcftUSWWkzkVaXF1QSlFip6ipHf/YacdJHFYXpnW2lWPQ==" + }, + "angular-tree-component": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/angular-tree-component/-/angular-tree-component-7.0.1.tgz", + "integrity": "sha1-/I0OctjDS4cTGjuivTKtIJRWiaw=", + "requires": { + "lodash": "4.17.4", + "mobx": ">=3", + "mobx-angular": ">=1" + }, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "angular2-datatable": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/angular2-datatable/-/angular2-datatable-0.6.0.tgz", + "integrity": "sha1-ygCPdAh/DLh9pXCe0vLR0GF3JjI=", + "requires": { + "lodash": "^4.0.0" + } + }, + "angular2-multiselect-dropdown": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/angular2-multiselect-dropdown/-/angular2-multiselect-dropdown-2.5.0.tgz", + "integrity": "sha1-6halE/Z0LN5V312fqumSzThU7dM=", + "requires": { + "font-awesome": "*" + } + }, + "angular2-template-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/angular2-template-loader/-/angular2-template-loader-0.6.2.tgz", + "integrity": "sha1-wNROkP/w+sleiyPwQ6zaf9HFHXw=", + "dev": true, + "requires": { + "loader-utils": "^0.2.15" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "angular5-csv": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/angular5-csv/-/angular5-csv-0.2.10.tgz", + "integrity": "sha512-hLEXyYjocQWev8e9P1LMWny3PxCtzeXvHUjiRGwMXUP8myByrFXf+B5taJFvlgTKsIONFu2wmRsTjjpyB2O1Yw==" + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + }, + "ansistyles": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", + "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "app-root-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", + "dev": true + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "args": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/args/-/args-2.6.1.tgz", + "integrity": "sha1-slkO1BaM0xtiREGZvcUWa7GSDC8=", + "requires": { + "camelcase": "4.1.0", + "chalk": "1.1.3", + "minimist": "1.2.0", + "pkginfo": "0.4.0", + "string-similarity": "1.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.0.3.tgz", + "integrity": "sha1-AZW7AMzM8nEQbv7kpHhkiLcYBxI=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true, + "optional": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-traverse": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz", + "integrity": "sha1-ac8rg4bxnc2hux4F1o/jWdiJfeY=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "^4.14.0" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true, + "optional": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, + "autoprefixer": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.3.1.tgz", + "integrity": "sha512-DY9gOh8z3tnCbJ13JIWaeQsoYncTGdsrgCceBaQSIL4nvdrLxgbRSBPevg2XbX7u4QCSfLheSJEEIUUSlkbx6Q==", + "dev": true, + "requires": { + "browserslist": "^4.3.3", + "caniuse-lite": "^1.0.30000898", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.5", + "postcss-value-parser": "^3.3.1" + }, + "dependencies": { + "browserslist": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", + "integrity": "sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000921", + "electron-to-chromium": "^1.3.92", + "node-releases": "^1.1.1" + } + }, + "caniuse-lite": { + "version": "1.0.30000923", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz", + "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz", + "integrity": "sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q==", + "dev": true + } + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "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-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-jest": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.1.0.tgz", + "integrity": "sha512-MLcagnVrO9ybQGLEfZUqnOzv36iQzU7Bj4elm39vCukumLVSfoX+tRy3/jW7lUKc7XdpRmB/jech6L/UCsSZjw==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "^5.1.0", + "babel-preset-jest": "^24.1.0", + "chalk": "^2.4.2", + "slash": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-istanbul": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz", + "integrity": "sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "istanbul-lib-instrument": "^3.0.0", + "test-exclude": "^5.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", + "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.3.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", + "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", + "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", + "dev": true, + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "istanbul-lib-coverage": "^2.0.3", + "semver": "^5.5.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babel-plugin-jest-hoist": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.1.0.tgz", + "integrity": "sha512-gljYrZz8w1b6fJzKcsfKsipSru2DU2DmQ39aB6nV3xQ0DDv3zpIzKGortA5gknrhNnPN8DweaEgrnZdmbGmhnw==", + "dev": true + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.22.0" + } + }, + "babel-preset-jest": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.1.0.tgz", + "integrity": "sha512-FfNLDxFWsNX9lUmtwY7NheGlANnagvxq8LZdl5PKnVG3umP+S/g0XbVBfwtA4Ai3Ri/IMkWabBz3Tyk9wdspcw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.1.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "core-js": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "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-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "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-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "base64-js": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", + "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "optional": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.x.x" + } + }, + "bootstrap": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", + "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "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" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "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" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bunyan": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", + "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", + "requires": { + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" + } + }, + "bunyan-blackhole": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bunyan-blackhole/-/bunyan-blackhole-1.1.1.tgz", + "integrity": "sha1-uSCFhtwLTkf09xMhWxvd1l5PYlc=", + "requires": { + "stream-blackhole": "^1.0.3" + } + }, + "bunyan-format": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/bunyan-format/-/bunyan-format-0.2.1.tgz", + "integrity": "sha1-pLOw2ABwqGUnlBcmnj8A/wL7y0c=", + "requires": { + "ansicolors": "~0.2.1", + "ansistyles": "~0.1.1", + "xtend": "~2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cachedir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", + "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", + "dev": true, + "requires": { + "os-homedir": "^1.0.1" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true, + "optional": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30000815", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000815.tgz", + "integrity": "sha512-PGSOPK6gFe5fWd+eD0u2bG0aOsN1qC4B1E66tl3jOsIoKkTIcBYAc2+O6AeNzKW8RsFykWgnhkTlfOyuTzgI9A==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", + "dev": true, + "requires": { + "rsvp": "^3.3.3" + } + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", + "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "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" + } + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz", + "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "closest-file-data": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/closest-file-data/-/closest-file-data-0.1.4.tgz", + "integrity": "sha1-l1+HwTLymdJKA3W59jyj+4j3Kzo=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", + "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", + "dev": true, + "requires": { + "app-root-path": "^2.1.0", + "css-selector-tokenizer": "^0.7.0", + "cssauron": "^1.4.0", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.1" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz", + "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==" + }, + "common-tags": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz", + "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compare-versions": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.4.0.tgz", + "integrity": "sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "compressible": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", + "dev": true, + "requires": { + "mime-db": ">= 1.36.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "dev": true + } + } + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "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" + } + }, + "concaveman": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.1.1.tgz", + "integrity": "sha1-bCSCWAslI874L8K+wAoEFebmgWI=", + "requires": { + "monotone-convex-hull-2d": "^1.0.1", + "point-in-polygon": "^1.0.1", + "rbush": "^2.0.1", + "robust-orientation": "^1.1.3", + "tinyqueue": "^1.1.0" + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "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" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.4.tgz", + "integrity": "sha512-0lstlEyj74OAtYMrDxlNZsU7cwFijAI3Ofz2fD6Mpo9r4xCv4yegfa3uHIKvZY1NSuOtE9nvG6TAhJ+uz9gDaQ==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "core-js": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz", + "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "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" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.x.x" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "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" + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + } + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssauron-falafel": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssauron-falafel/-/cssauron-falafel-1.2.1.tgz", + "integrity": "sha1-N7s/jpT9tKaaxadmgYajqEK+fc4=", + "requires": { + "cssauron": "1.1.0" + }, + "dependencies": { + "cssauron": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.1.0.tgz", + "integrity": "sha1-HywscQi/POSaOe21CF7ByZxeJew=", + "requires": { + "through": "X.X.X" + } + } + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssom": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", + "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==", + "dev": true + }, + "cssstyle": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", + "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "optional": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "cypress": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.1.0.tgz", + "integrity": "sha512-UqLbXgHvM8Y6Y+roHrepZMWcyMN5u4KcjpTbJTZi0d5O2Prvtqmnpoky7a4C65q4oRQXeSc6cBZUhxJkhU4pbQ==", + "dev": true, + "requires": { + "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/xvfb": "1.2.3", + "@types/blob-util": "1.3.3", + "@types/bluebird": "3.5.18", + "@types/chai": "4.0.8", + "@types/chai-jquery": "1.1.35", + "@types/jquery": "3.2.16", + "@types/lodash": "4.14.87", + "@types/minimatch": "3.0.3", + "@types/mocha": "2.2.44", + "@types/sinon": "4.0.0", + "@types/sinon-chai": "2.7.29", + "bluebird": "3.5.0", + "cachedir": "1.3.0", + "chalk": "2.4.1", + "check-more-types": "2.24.0", + "commander": "2.11.0", + "common-tags": "1.4.0", + "debug": "3.1.0", + "execa": "0.10.0", + "executable": "4.1.1", + "extract-zip": "1.6.6", + "fs-extra": "4.0.1", + "getos": "3.1.0", + "glob": "7.1.2", + "is-ci": "1.0.10", + "is-installed-globally": "0.1.0", + "lazy-ass": "1.6.0", + "listr": "0.12.0", + "lodash": "4.17.10", + "log-symbols": "2.2.0", + "minimist": "1.2.0", + "progress": "1.1.8", + "ramda": "0.24.1", + "request": "2.87.0", + "request-progress": "0.3.1", + "supports-color": "5.1.0", + "tmp": "0.0.31", + "url": "0.11.0", + "yauzl": "2.8.0" + }, + "dependencies": { + "@types/chai": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz", + "integrity": "sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg==", + "dev": true + }, + "@types/lodash": { + "version": "4.14.87", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz", + "integrity": "sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw==", + "dev": true + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "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" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.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" + } + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", + "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.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.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "supports-color": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + } + } + } + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + } + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-geo": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", + "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", + "requires": { + "d3-array": "1" + } + }, + "d3-voronoi": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", + "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "default-gateway": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", + "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "dev": true, + "requires": { + "execa": "^0.10.0", + "ip-regex": "^2.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.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" + } + } + } + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "requires": { + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "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" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "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" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "density-clustering": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/density-clustering/-/density-clustering-1.3.0.tgz", + "integrity": "sha1-3J9ZyPCrl+FiSsZJMP0xlIF9ysU=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diff-sequences": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.0.0.tgz", + "integrity": "sha512-46OkIuVGBBnrC0soO/4LHu5LHGHx0uhP65OVz8XOrAJpqiCB2aVIuESvjI1F9oqebuvY8lekS1pt6TN7vt7qsw==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domino": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.1.tgz", + "integrity": "sha512-fqoTi6oQ881wYRENIEmz78hKVoc3X9HqVpklo419yxzebys6dtU5c83iVh3UYvvexPFdAuwlDYCsUM9//CrMMg==" + }, + "dtrace-provider": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz", + "integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=", + "optional": true, + "requires": { + "nan": "^2.10.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "earcut": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.1.4.tgz", + "integrity": "sha512-ttRjmPD5oaTtXOoxhFp9aZvMB14kBjapYaiBuzBB1elOgSLU9P2Ev86G2OClBg+uspUXERsIzXKpUWweH2K4Xg==" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.39", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.39.tgz", + "integrity": "sha1-16RpZAnKCZXidQFW2mEsIhr62E0=", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "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" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + } + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "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", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "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" + } + }, + "es5-ext": { + "version": "0.10.41", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.41.tgz", + "integrity": "sha512-MYK02wXfwTMie5TEJWPolgOsXEmz7wKCQaGzgmRjZOoV6VLG8I5dSv2bn6AOClXhK64gnSQTQ9W9MKvx87J4gw==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-promise": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dev": true, + "requires": { + "merge": "^1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "expect": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-24.1.0.tgz", + "integrity": "sha512-lVcAPhaYkQcIyMS+F8RVwzbm1jro20IG8OkvxQ6f1JfqhVZyyudCwYogQ7wnktlf14iF3ii7ArIUO/mqvrW9Gw==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "jest-get-type": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "jest-message-util": "^24.0.0", + "jest-regex-util": "^24.0.0" + } + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "extract-zip": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", + "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "debug": "2.6.9", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "^2.0.0" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "font-awesome": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", + "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=", + "dev": true + }, + "fs-extra": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "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" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "hawk": "3.1.3", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "request": "2.81.0", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": 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", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": 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" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "optional": true, + "requires": { + "globule": "^1.0.0" + } + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "geojson-equality": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/geojson-equality/-/geojson-equality-0.1.6.tgz", + "integrity": "sha1-oXE3TvBD5dR5eZWEC65GSOB1LXI=", + "requires": { + "deep-equal": "^1.0.0" + } + }, + "geojson-rbush": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-2.1.0.tgz", + "integrity": "sha1-O9c745H8ELCuaT2bis6iquC4Oo0=", + "requires": { + "@turf/helpers": "*", + "@turf/meta": "*", + "rbush": "*" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-closest": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/get-closest/-/get-closest-0.0.4.tgz", + "integrity": "sha1-JprHdtHmAiqg/Vht1wjop9Miaa8=" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getos": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.0.tgz", + "integrity": "sha512-i9vrxtDu5DlLVFcrbqUqGWYlZN/zZ4pGMICCAcZoYsX3JA54nYp8r5EThw5K+m2q3wszkx4Th746JstspB0H4Q==", + "dev": true, + "requires": { + "async": "2.4.0" + }, + "dependencies": { + "async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz", + "integrity": "sha1-SZAgDxjqW4N8LMT4wDGmmFw4VhE=", + "dev": true, + "requires": { + "lodash": "^4.14.0" + } + } + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "gitignore-parser": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/gitignore-parser/-/gitignore-parser-0.0.2.tgz", + "integrity": "sha1-9hJZuYXdkUFLmnFo+u+RccLuxd8=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "optional": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "dependencies": { + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true, + "optional": true + } + } + }, + "got": { + "version": "6.7.1", + "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=", + "dev": true + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + } + } + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, + "requires": { + "inherits": "^2.0.1" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "http-parser-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", + "dev": true + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "husky": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz", + "integrity": "sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.7", + "execa": "^1.0.0", + "find-up": "^3.0.0", + "get-stdin": "^6.0.0", + "is-ci": "^2.0.0", + "pkg-dir": "^3.0.0", + "please-upgrade-node": "^3.1.1", + "read-pkg": "^4.0.1", + "run-node": "^1.0.0", + "slash": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cosmiconfig": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz", + "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "lodash.get": "^4.4.2", + "parse-json": "^4.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "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" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ieee754": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.10.tgz", + "integrity": "sha512-byWFX8OyW/qeVxcY21r6Ncxl0ZYHgnf0cPup2h34eHXrCJbOp7IuqnJ4Q0omfyWl6Z++BTI6bByf31pZt7iRLg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true, + "optional": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", + "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "install": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/install/-/install-0.12.2.tgz", + "integrity": "sha512-+7thTb4Rpvs9mnlhHKGZFJbGOO6kyMgy+gg0sgM5vFzIFK0wrCYXqdlaM71Bi289DTuPHf61puMFsaZBcwDIrg==" + }, + "internal-ip": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", + "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "dev": true, + "requires": { + "default-gateway": "^2.6.0", + "ipaddr.js": "^1.5.2" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "dev": true, + "requires": { + "ci-info": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "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" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "is-primitive": "^2.0.0" } }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "number-is-nan": "^1.0.0" } }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "number-is-nan": "^1.0.0" } }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "is-generator-fn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.0.0.tgz", + "integrity": "sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "is-extglob": "^1.0.0" } }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "is-glob": "^2.0.0" } }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "kind-of": "^3.0.2" } }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } } }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "is-path-inside": "^1.0.0" } }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "requires": { + "is-invalid-path": "^0.1.0" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", + "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "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" + }, + "dependencies": { + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "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": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "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" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } } }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "istanbul-api": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.1.tgz", + "integrity": "sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==", + "dev": true, + "requires": { + "async": "^2.6.1", + "compare-versions": "^3.2.1", + "fileset": "^2.0.3", + "istanbul-lib-coverage": "^2.0.3", + "istanbul-lib-hook": "^2.0.3", + "istanbul-lib-instrument": "^3.1.0", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.2", + "istanbul-reports": "^2.1.1", + "js-yaml": "^3.12.0", + "make-dir": "^1.3.0", + "minimatch": "^3.0.4", + "once": "^1.4.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", + "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.3.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", + "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "handlebars": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", + "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", + "dev": true, + "requires": { + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", + "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", + "dev": true, + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "istanbul-lib-coverage": "^2.0.3", + "semver": "^5.5.0" + } + }, + "istanbul-reports": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.1.tgz", + "integrity": "sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw==", + "dev": true, + "requires": { + "handlebars": "^4.1.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", + "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + } } }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "istanbul-instrumenter-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", + "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "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" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } } }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "istanbul-lib-hook": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz", + "integrity": "sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA==", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "append-transform": "^1.0.0" } }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "istanbul-lib-instrument": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "requires": { - "babel-runtime": "6.26.0" + "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.0", + "semver": "^5.3.0" } }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "istanbul-lib-report": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz", + "integrity": "sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA==", + "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "istanbul-lib-coverage": "^2.0.3", + "make-dir": "^1.3.0", + "supports-color": "^6.0.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "istanbul-lib-source-maps": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz", + "integrity": "sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.3", + "make-dir": "^1.3.0", + "rimraf": "^2.6.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "istanbul-reports": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.0.1.tgz", + "integrity": "sha512-CT0QgMBJqs6NJLF678ZHcquUAZIoBIUNzdJrRJfpkI9OnzG6MkUfHxbJC3ln981dMswC7/B1mfX3LNkhgJxsuw==", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "handlebars": "^4.0.11" } }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "jest": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-24.1.0.tgz", + "integrity": "sha512-+q91L65kypqklvlRFfXfdzUKyngQLOcwGhXQaLmVHv+d09LkNXuBuGxlofTFW42XMzu3giIcChchTsCNUjQ78A==", + "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "import-local": "^2.0.0", + "jest-cli": "^24.1.0" }, "dependencies": { - "regexpu-core": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", + "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.3.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", + "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "ansi-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "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" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "invert-kv": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } - } - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-export-extensions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", - "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", - "requires": { - "babel-plugin-syntax-export-extensions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-function-bind": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", - "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", - "requires": { - "babel-plugin-syntax-function-bind": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-inline-consecutive-adds": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz", - "integrity": "sha512-iZsYAIjYLLfLK0yN5WVT7Xf7Y3wQ9Z75j9A8q/0IglQSpUt2ppTdHlwl/GeaXnxdaSmsxBu861klbTBbv2n+RA==" - }, - "babel-plugin-transform-member-expression-literals": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.1.tgz", - "integrity": "sha1-lr4umWjn9UlzM64DKE7NU0BAVIk=" - }, - "babel-plugin-transform-merge-sibling-variables": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.1.tgz", - "integrity": "sha1-kHHkQ7IUWM5rCo04QbpaF09dwoI=" - }, - "babel-plugin-transform-minify-booleans": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.1.tgz", - "integrity": "sha1-UsunnAD6UJc3BkBV76siFm4UDE0=" - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-property-literals": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.1.tgz", - "integrity": "sha1-aXD5Oxd5OrzenPJdLozRPgCI5ck=", - "requires": { - "esutils": "2.0.2" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "0.10.1" - } - }, - "babel-plugin-transform-regexp-constructors": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.3.0.tgz", - "integrity": "sha512-h92YHzyl042rb0naKO8frTHntpRFwRgKkfWD8602kFHoQingjJNtbvZzvxqHncJ6XmKVyYvfrBpDOSkCTDIIxw==" - }, - "babel-plugin-transform-remove-console": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.1.tgz", - "integrity": "sha1-QP6V2YyuWBHYoOGImBLXixKFllE=" - }, - "babel-plugin-transform-remove-debugger": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.1.tgz", - "integrity": "sha1-dlUtLp1sQ9nGdrv8CPPCoswUvhQ=" - }, - "babel-plugin-transform-remove-undefined": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.3.0.tgz", - "integrity": "sha512-TYGQucc8iP3LJwN3kDZLEz5aa/2KuFrqpT+s8f8NnHsBU1sAgR3y8Opns0xhC+smyDYWscqFCKM1gbkWQOhhnw==", - "requires": { - "babel-helper-evaluate-path": "0.3.0" - } - }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-simplify-comparison-operators": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.1.tgz", - "integrity": "sha1-Ww0GmAoXp4D1MYsnTAC+L7HHxP4=" - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-undefined-to-void": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.1.tgz", - "integrity": "sha1-19+cHdDsEuD/6JXtFEX2Hxv14iE=" - }, - "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", - "invariant": "2.2.4", - "semver": "5.5.0" - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" - } - }, - "babel-preset-minify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.3.0.tgz", - "integrity": "sha512-+VV2GWEyak3eDOmzT1DDMuqHrw3VbE9nBNkx2LLVs4pH/Me32ND8DRpVDd8IRvk1xX5p75nygyRPtkMh6GIAbQ==", - "requires": { - "babel-plugin-minify-builtins": "0.3.0", - "babel-plugin-minify-constant-folding": "0.3.0", - "babel-plugin-minify-dead-code-elimination": "0.3.0", - "babel-plugin-minify-flip-comparisons": "0.3.0", - "babel-plugin-minify-guarded-expressions": "0.3.0", - "babel-plugin-minify-infinity": "0.3.0", - "babel-plugin-minify-mangle-names": "0.3.0", - "babel-plugin-minify-numeric-literals": "0.3.0", - "babel-plugin-minify-replace": "0.3.0", - "babel-plugin-minify-simplify": "0.3.0", - "babel-plugin-minify-type-constructors": "0.3.0", - "babel-plugin-transform-inline-consecutive-adds": "0.3.0", - "babel-plugin-transform-member-expression-literals": "6.9.1", - "babel-plugin-transform-merge-sibling-variables": "6.9.1", - "babel-plugin-transform-minify-booleans": "6.9.1", - "babel-plugin-transform-property-literals": "6.9.1", - "babel-plugin-transform-regexp-constructors": "0.3.0", - "babel-plugin-transform-remove-console": "6.9.1", - "babel-plugin-transform-remove-debugger": "6.9.1", - "babel-plugin-transform-remove-undefined": "0.3.0", - "babel-plugin-transform-simplify-comparison-operators": "6.9.1", - "babel-plugin-transform-undefined-to-void": "6.9.1", - "lodash.isplainobject": "4.0.6" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" - } - }, - "babel-preset-stage-0": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", - "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", - "requires": { - "babel-plugin-transform-do-expressions": "6.22.0", - "babel-plugin-transform-function-bind": "6.22.0", - "babel-preset-stage-1": "6.24.1" - } - }, - "babel-preset-stage-1": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", - "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", - "requires": { - "babel-plugin-transform-class-constructor-call": "6.24.1", - "babel-plugin-transform-export-extensions": "6.22.0", - "babel-preset-stage-2": "6.24.1" - } - }, - "babel-preset-stage-2": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" - } - }, - "babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", + "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", + "dev": true, + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "istanbul-lib-coverage": "^2.0.3", + "semver": "^5.5.0" + } + }, + "jest-cli": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.1.0.tgz", + "integrity": "sha512-U/iyWPwOI0T1CIxVLtk/2uviOTJ/OiSWJSe8qt6X1VkbbgP+nrtLJlmT9lPBe4lK78VNFJtrJ7pttcNv/s7yCw==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.1.15", + "import-local": "^2.0.0", + "is-ci": "^2.0.0", + "istanbul-api": "^2.0.8", + "istanbul-lib-coverage": "^2.0.2", + "istanbul-lib-instrument": "^3.0.1", + "istanbul-lib-source-maps": "^3.0.1", + "jest-changed-files": "^24.0.0", + "jest-config": "^24.1.0", + "jest-environment-jsdom": "^24.0.0", + "jest-get-type": "^24.0.0", + "jest-haste-map": "^24.0.0", + "jest-message-util": "^24.0.0", + "jest-regex-util": "^24.0.0", + "jest-resolve-dependencies": "^24.1.0", + "jest-runner": "^24.1.0", + "jest-runtime": "^24.1.0", + "jest-snapshot": "^24.1.0", + "jest-util": "^24.0.0", + "jest-validate": "^24.0.0", + "jest-watcher": "^24.0.0", + "jest-worker": "^24.0.0", + "micromatch": "^3.1.10", + "node-notifier": "^5.2.1", + "p-each-series": "^1.0.0", + "pirates": "^4.0.0", + "prompts": "^2.0.1", + "realpath-native": "^1.0.0", + "rimraf": "^2.5.4", + "slash": "^2.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^5.0.0", + "which": "^1.2.12", + "yargs": "^12.0.2" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "mem": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-is-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", + "dev": true + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "dev": true, + "requires": { + "ansi-regex": "^4.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "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" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "jest-changed-files": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.0.0.tgz", + "integrity": "sha512-nnuU510R9U+UX0WNb5XFEcsrMqriSiRLeO9KWDFgPrpToaQm60prfQYpxsXigdClpvNot5bekDY440x9dNGnsQ==", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.6", - "home-or-tmp": "2.0.0", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "execa": "^1.0.0", + "throat": "^4.0.0" }, "dependencies": { - "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", - "dev": true + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } } } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.5" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "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.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.5" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "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.1", - "pascalcase": "0.1.1" + "jest-config": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.1.0.tgz", + "integrity": "sha512-FbbRzRqtFC6eGjG5VwsbW4E5dW3zqJKLWYiZWhB0/4E5fgsMw8GODLbGSrY5t17kKOtCWb/Z7nsIThRoDpuVyg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "babel-jest": "^24.1.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^24.0.0", + "jest-environment-node": "^24.0.0", + "jest-get-type": "^24.0.0", + "jest-jasmine2": "^24.1.0", + "jest-regex-util": "^24.0.0", + "jest-resolve": "^24.1.0", + "jest-util": "^24.0.0", + "jest-validate": "^24.0.0", + "micromatch": "^3.1.10", + "pretty-format": "^24.0.0", + "realpath-native": "^1.0.2" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } } } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", - "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "jest-diff": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.0.0.tgz", + "integrity": "sha512-XY5wMpRaTsuMoU+1/B2zQSKQ9RdE9gsLkGydx3nvApeyPijLA8GtEvIcPwISRCer+VDf9W1mStTYYq6fPt8ryA==", "dev": true, - "optional": true, "requires": { - "tweetnacl": "0.14.5" + "chalk": "^2.0.1", + "diff-sequences": "^24.0.0", + "jest-get-type": "^24.0.0", + "pretty-format": "^24.0.0" } }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "jest-docblock": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.0.0.tgz", + "integrity": "sha512-KfAKZ4SN7CFOZpWg4i7g7MSlY0M+mq7K0aMqENaG2vHuhC9fc3vkpU/iNN9sOus7v3h3Y48uEjqz3+Gdn2iptA==", "dev": true, "requires": { - "callsite": "1.0.0" + "detect-newline": "^2.1.0" } }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + "jest-each": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.0.0.tgz", + "integrity": "sha512-gFcbY4Cu55yxExXMkjrnLXov3bWO3dbPAW7HXb31h/DNWdNc/6X8MtxGff8nh3/MjkF9DpVqnj0KsPKuPK0cpA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^24.0.0", + "jest-util": "^24.0.0", + "pretty-format": "^24.0.0" + } }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + "jest-environment-jsdom": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.0.0.tgz", + "integrity": "sha512-1YNp7xtxajTRaxbylDc2pWvFnfDTH5BJJGyVzyGAKNt/lEULohwEV9zFqTgG4bXRcq7xzdd+sGFws+LxThXXOw==", + "dev": true, + "requires": { + "jest-mock": "^24.0.0", + "jest-util": "^24.0.0", + "jsdom": "^11.5.1" + } }, - "bitsyntax": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz", - "integrity": "sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI=", + "jest-environment-node": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.0.0.tgz", + "integrity": "sha512-62fOFcaEdU0VLaq8JL90TqwI7hLn0cOKOl8vY2n477vRkCJRojiRRtJVRzzCcgFvs6gqU97DNqX5R0BrBP6Rxg==", "dev": true, - "optional": true, "requires": { - "buffer-more-ints": "0.0.2" + "jest-mock": "^24.0.0", + "jest-util": "^24.0.0" } }, - "bl": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", - "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "jest-get-type": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.0.0.tgz", + "integrity": "sha512-z6/Eyf6s9ZDGz7eOvl+fzpuJmN9i0KyTt1no37/dHu8galssxz5ZEgnc1KaV8R31q1khxyhB4ui/X5ZjjPk77w==", + "dev": true + }, + "jest-haste-map": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.0.0.tgz", + "integrity": "sha512-CcViJyUo41IQqttLxXVdI41YErkzBKbE6cS6dRAploCeutePYfUimWd3C9rQEWhX0YBOQzvNsC0O9nYxK2nnxQ==", "dev": true, - "optional": true, "requires": { - "readable-stream": "2.0.6" + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.0.0", + "jest-util": "^24.0.0", + "jest-worker": "^24.0.0", + "micromatch": "^3.1.10", + "sane": "^3.0.0" }, "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "optional": 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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "optional": 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" + } } } }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "optional": true, - "requires": { - "inherits": "2.0.3" - } - }, - "blocking-proxy": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-0.0.5.tgz", - "integrity": "sha1-RikF4Nz76pcPQao3Ij3anAexkSs=", - "dev": true, - "requires": { - "minimist": "1.2.0" + "jest-image-snapshot": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-2.8.1.tgz", + "integrity": "sha512-/el/cknCo0pu7nopKg1Hu9PEaFNNIHIDpxxUGxYr/cYO7qSrIFAfUgRPDXGOJN2tqMu1tuwqaO+xlTWV86mjLw==", + "requires": { + "chalk": "^1.1.3", + "get-stdin": "^5.0.1", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "pixelmatch": "^4.0.2", + "pngjs": "^3.3.3", + "rimraf": "^2.6.2" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "1.6.16" + "jest-jasmine2": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.1.0.tgz", + "integrity": "sha512-H+o76SdSNyCh9fM5K8upK45YTo/DiFx5w2YAzblQebSQmukDcoVBVeXynyr7DDnxh+0NTHYRCLwJVf3tC518wg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^24.1.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "jest-message-util": "^24.0.0", + "jest-snapshot": "^24.1.0", + "jest-util": "^24.0.0", + "pretty-format": "^24.0.0", + "throat": "^4.0.0" }, "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "bootstrap": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", - "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=" - }, - "bowser": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.3.tgz", - "integrity": "sha512-/gp96UlcFw5DbV2KQPCqTqi0Mb9gZRyDAHiDsGEH+4B/KOQjeoE5lM1PxlVX8DQDvfEfitmC1rW2Oy8fk/XBDg==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "brcast": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", - "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browserify-aes": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "1.0.6" - } - }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "requires": { - "caniuse-lite": "1.0.30000815", - "electron-to-chromium": "1.3.39" + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", + "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.3.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", + "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", + "dev": true + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } } }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "jest-junit": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-6.3.0.tgz", + "integrity": "sha512-3PH9UkpaomX6CUzqjlnk0m4yBCW/eroxV6v61OM6LkCQFO848P3YUhfIzu8ypZSBKB3vvCbB4WaLTKT0BrIf8A==", + "dev": true, "requires": { - "base64-js": "1.2.3", - "ieee754": "1.1.10", - "isarray": "1.0.0" + "jest-validate": "^24.0.0", + "mkdirp": "^0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-more-ints": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz", - "integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "buildmail": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz", - "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=", + "jest-leak-detector": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.0.0.tgz", + "integrity": "sha512-ZYHJYFeibxfsDSKowjDP332pStuiFT2xfc5R67Rjm/l+HFJWJgNIOCOlQGeXLCtyUn3A23+VVDdiCcnB6dTTrg==", "dev": true, - "optional": true, "requires": { - "addressparser": "1.0.1", - "libbase64": "0.1.0", - "libmime": "3.0.0", - "libqp": "1.1.0", - "nodemailer-fetch": "1.6.0", - "nodemailer-shared": "1.1.0", - "punycode": "1.4.1" + "pretty-format": "^24.0.0" } }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "jest-matcher-utils": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.0.0.tgz", + "integrity": "sha512-LQTDmO+aWRz1Tf9HJg+HlPHhDh1E1c65kVwRFo5mwCVp5aQDzlkz4+vCvXhOKFjitV2f0kMdHxnODrXVoi+rlA==", + "dev": true, "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.2", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "chalk": "^2.0.1", + "jest-diff": "^24.0.0", + "jest-get-type": "^24.0.0", + "pretty-format": "^24.0.0" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "jest-message-util": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.0.0.tgz", + "integrity": "sha512-J9ROJIwz/IeC+eV1XSwnRK4oAwPuhmxEyYx1+K5UI+pIYwFZDSrfZaiWTdq0d2xYFw4Xiu+0KQWsdsQpgJMf3Q==", + "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" + "@babel/code-frame": "^7.0.0", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" }, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true } } }, - "cache-loader": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz", - "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", - "dev": true, + "jest-mock": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.0.0.tgz", + "integrity": "sha512-sQp0Hu5fcf5NZEh1U9eIW2qD0BwJZjb63Yqd98PQJFvf/zzUTBoUAwv/Dc/HFeNHIw1f3hl/48vNn+j3STaI7A==", + "dev": true + }, + "jest-preset-angular": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-6.0.2.tgz", + "integrity": "sha512-uhrllY41tUvkeR41aX9bU5w3/EvvmwZiJ3UitDhRSEJL2Jvq2N/xKlmw7qvlZoGZnciFjOUJ2WDKv5fmCrvnQA==", "requires": { - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "neo-async": "2.5.0", - "schema-utils": "0.4.5" + "jest-zone-patch": ">=0.0.9 <1.0.0", + "ts-jest": "~23.1.3" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "jest-regex-util": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.0.0.tgz", + "integrity": "sha512-Jv/uOTCuC+PY7WpJl2mpoI+WbY2ut73qwwO9ByJJNwOCwr1qWhEW2Lyi2S9ZewUdJqeVpEBisdEVZSI+Zxo58Q==", "dev": true }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "jest-resolve": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.1.0.tgz", + "integrity": "sha512-TPiAIVp3TG6zAxH28u/6eogbwrvZjBMWroSLBDkwkHKrqxB/RIdwkWDye4uqPlZIXWIaHtifY3L0/eO5Z0f2wg==", + "dev": true, "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" } }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "jest-resolve-dependencies": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.1.0.tgz", + "integrity": "sha512-2VwPsjd3kRPu7qe2cpytAgowCObk5AKeizfXuuiwgm1a9sijJDZe8Kh1sFj6FKvSaNEfCPlBVkZEJa2482m/Uw==", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "jest-regex-util": "^24.0.0", + "jest-snapshot": "^24.1.0" } }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "jest-runner": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.1.0.tgz", + "integrity": "sha512-CDGOkT3AIFl16BLL/OdbtYgYvbAprwJ+ExKuLZmGSCSldwsuU2dEGauqkpvd9nphVdAnJUcP12e/EIlnTX0QXg==", + "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000827", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "chalk": "^2.4.2", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-config": "^24.1.0", + "jest-docblock": "^24.0.0", + "jest-haste-map": "^24.0.0", + "jest-jasmine2": "^24.1.0", + "jest-leak-detector": "^24.0.0", + "jest-message-util": "^24.0.0", + "jest-runtime": "^24.1.0", + "jest-util": "^24.0.0", + "jest-worker": "^24.0.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" }, "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { - "caniuse-db": "1.0.30000827", - "electron-to-chromium": "1.3.39" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, - "caniuse-db": { - "version": "1.0.30000827", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000827.tgz", - "integrity": "sha1-vSg53Rlgk7RMKMF/k1ExQMnZJYg=" - }, - "caniuse-lite": { - "version": "1.0.30000815", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000815.tgz", - "integrity": "sha512-PGSOPK6gFe5fWd+eD0u2bG0aOsN1qC4B1E66tl3jOsIoKkTIcBYAc2+O6AeNzKW8RsFykWgnhkTlfOyuTzgI9A==" - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz", - "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chain-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.0.tgz", - "integrity": "sha1-DUqzfn4Y6tC9xHuSB2QRjOWHM9w=" - }, - "chalk": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", - "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "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.1.0" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" - }, - "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "circular-dependency-plugin": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-4.4.0.tgz", - "integrity": "sha512-yEFtUNUYT4jBykEX5ZOHw+5goA3glGZr9wAXIQqoyakjz5H5TeUmScnWRc52douAhb9eYzK3s7V6bXfNnjFdzg==", - "dev": true - }, - "circular-json": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.1.tgz", - "integrity": "sha512-UjgcRlTAhAkLeXmDe2wK7ktwy/tgAqxiSndTIPiFZuIPLZmzHzWMwUIe9h9m/OokypG7snxCDEuwJshGBdPvaw==", - "dev": true - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "requires": { - "chalk": "1.1.3" + "jest-runtime": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.1.0.tgz", + "integrity": "sha512-59/BY6OCuTXxGeDhEMU7+N33dpMQyXq7MLK07cNSIY/QYt2QZgJ7Tjx+rykBI0skAoigFl0A5tmT8UdwX92YuQ==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "babel-plugin-istanbul": "^5.1.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "exit": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "jest-config": "^24.1.0", + "jest-haste-map": "^24.0.0", + "jest-message-util": "^24.0.0", + "jest-regex-util": "^24.0.0", + "jest-resolve": "^24.1.0", + "jest-snapshot": "^24.1.0", + "jest-util": "^24.0.0", + "jest-validate": "^24.0.0", + "micromatch": "^3.1.10", + "realpath-native": "^1.0.0", + "slash": "^2.0.0", + "strip-bom": "^3.0.0", + "write-file-atomic": "2.4.1", + "yargs": "^12.0.2" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "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" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "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" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "requires": { - "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" + "locate-path": "^3.0.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "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" } }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3641,9749 +16891,8543 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "classnames": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", - "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" - }, - "clean-css": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", - "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", - "requires": { - "source-map": "0.5.7" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-spinners": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", - "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", - "dev": true - }, - "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", - "dev": true, - "requires": { - "slice-ansi": "0.0.4", - "string-width": "1.0.2" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true - }, - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "dev": true, - "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "6.0.2", - "shallow-clone": "1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "for-in": "1.0.2" + "invert-kv": "^2.0.0" } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "mem": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-is-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", "dev": true + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "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" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "requires": { - "q": "1.4.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "codelyzer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.0.1.tgz", - "integrity": "sha512-MsOcaiLqcBK7hjHbfp9HZrflqWg5tD9A5qVSXkW208OJ8pkf63id8IiOjEiK/XU3o70W8tWbFKi1tAOwiJDMrQ==", - "dev": true, - "requires": { - "app-root-path": "2.0.1", - "css-selector-tokenizer": "0.7.0", - "cssauron": "1.4.0", - "semver-dsl": "1.0.1", - "source-map": "0.5.7", - "sprintf-js": "1.0.3" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "requires": { - "clone": "1.0.4", - "color-convert": "1.9.1", - "color-string": "0.3.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - } - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "requires": { - "color-name": "1.1.3" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.1" - } - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" - }, - "combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", - "dev": true, - "requires": { - "lodash": "4.17.5" - } - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz", - "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==" - }, - "common-tags": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz", - "integrity": "sha512-joj9ZlUOjCrwdbmiLqafeUSgkUM74NqhLsZtSqDmhKudaIY197zTrb8JMl31fMnCUuxwFT23eC/oWvrZzDLRJQ==", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "compare-versions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.1.0.tgz", - "integrity": "sha512-4hAxDSBypT/yp2ySFD346So6Ragw5xmBn/e/agIGl3bZr6DLUqnoRZPusxKrXdYRZpgexO9daejmIenlq/wrIQ==", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "jest-serializer": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.0.0.tgz", + "integrity": "sha512-9FKxQyrFgHtx3ozU+1a8v938ILBE7S8Ko3uiAVjT8Yfi2o91j/fj81jacCQZ/Ihjiff/VsUCXVgQ+iF1XdImOw==", "dev": true }, - "compressible": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", - "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", - "dev": true, - "requires": { - "mime-db": "1.33.0" - } - }, - "compression": { - "version": "1.7.2", - "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz", - "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", - "dev": true, - "requires": { - "accepts": "1.3.5", - "bytes": "3.0.0", - "compressible": "2.0.13", - "debug": "2.6.9", - "on-headers": "1.0.1", - "safe-buffer": "5.1.1", - "vary": "1.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.5", - "typedarray": "0.0.6" - } - }, - "connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "1.3.2", - "utils-merge": "1.0.1" + "jest-snapshot": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.1.0.tgz", + "integrity": "sha512-th6TDfFqEmXvuViacU1ikD7xFb7lQsPn2rJl7OEmnfIVpnrx3QNY2t3PE88meeg0u/mQ0nkyvmC05PBqO4USFA==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "chalk": "^2.0.1", + "jest-diff": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "jest-message-util": "^24.0.0", + "jest-resolve": "^24.1.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^24.0.0", + "semver": "^5.5.0" }, "dependencies": { - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" } }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true } } }, - "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "jest-sonar-reporter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", + "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", + "dev": true, "requires": { - "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" + "xml": "^1.0.1" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-webpack-plugin": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.4.3.tgz", - "integrity": "sha512-v4THQ24Tks2NkyOvZuFDgZVfDD9YaA9rwYLZTrWg2GHIA8lrH5DboEyeoorh5Skki+PUbgSmnsCwhMWqYrQZrA==", + "jest-util": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.0.0.tgz", + "integrity": "sha512-QxsALc4wguYS7cfjdQSOr5HTkmjzkHgmZvIDkcmPfl1ib8PNV8QUWLwbKefCudWS0PRKioV+VbQ0oCUPC691fQ==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.2.0", - "serialize-javascript": "1.4.0" + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "jest-message-util": "^24.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" }, "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "callsites": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz", + "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==", "dev": true }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "is-extglob": "2.1.1" + "ci-info": "^2.0.0" } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } - } - }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" - }, - "core-object": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/core-object/-/core-object-3.1.5.tgz", - "integrity": "sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==", - "dev": true, - "requires": { - "chalk": "2.2.2" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" - } - }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.10" - } - }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" - } - }, - "create-react-class": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", - "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", - "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "4.1.2", - "which": "1.3.0" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + } + }, + "jest-validate": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.0.0.tgz", + "integrity": "sha512-vMrKrTOP4BBFIeOWsjpsDgVXATxCspC9S1gqvbJ3Tnn/b9ACsJmteYeVx9830UMV28Cob1RX55x96Qq3Tfad4g==", "dev": true, "requires": { - "boom": "2.10.1" + "camelcase": "^5.0.0", + "chalk": "^2.0.1", + "jest-get-type": "^24.0.0", + "leven": "^2.1.0", + "pretty-format": "^24.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + } } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "jest-watcher": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.0.0.tgz", + "integrity": "sha512-GxkW2QrZ4YxmW1GUWER05McjVDunBlKMFfExu+VsGmXJmpej1saTEKvONdx5RJBlVdpPI5x6E3+EDQSIGgl53g==", + "dev": true, "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "jest-util": "^24.0.0", + "string-length": "^2.0.0" } }, - "css": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", - "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "jest-worker": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.0.0.tgz", + "integrity": "sha512-s64/OThpfQvoCeHG963MiEZOAAxu8kHsaL/rCMF7lpdzo7vgF0CtPml9hfguOMgykgH/eOm4jFP4ibfHLruytg==", + "dev": true, "requires": { - "inherits": "2.0.3", - "source-map": "0.1.43", - "source-map-resolve": "0.3.1", - "urix": "0.1.0" + "merge-stream": "^1.0.1", + "supports-color": "^6.1.0" }, "dependencies": { - "atob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", - "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=" - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "requires": { - "amdefine": "1.0.1" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "source-map-resolve": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", - "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, "requires": { - "atob": "1.1.3", - "resolve-url": "0.2.1", - "source-map-url": "0.3.0", - "urix": "0.1.0" + "has-flag": "^3.0.0" } - }, - "source-map-url": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", - "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=" } } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + "jest-zone-patch": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/jest-zone-patch/-/jest-zone-patch-0.0.10.tgz", + "integrity": "sha512-K5uHLHgMgi2Eyj74gbY+xSeGGekb5U48bXsgDwgipRbFdaekyZK+TAcp8auamqU4UjrAt5S4sIUZz/2bBNyTTA==" }, - "css-in-js-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", - "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "js-base64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.0.tgz", + "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==", + "dev": true, + "optional": true + }, + "js-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", + "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "dev": true, "requires": { - "hyphenate-style-name": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "css-loader": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", - "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "has-flag": { + "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "mime-db": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", + "dev": true + }, + "mime-types": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", + "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "dev": true, + "requires": { + "mime-db": "~1.38.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, "requires": { - "has-flag": "1.0.0" + "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" + }, + "dependencies": { + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true } } }, - "css-parse": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", "dev": true }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", - "domutils": "1.5.1", - "nth-check": "1.0.1" + "jsonify": "~0.0.0" } }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" + "graceful-fs": "^4.1.6" } }, - "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, - "cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { - "through": "2.3.8" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } } }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" - }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "jwt-decode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz", + "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=" + }, + "karma-source-map-support": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", + "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000827", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "1.0.30000827", - "electron-to-chromium": "1.3.39" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, "requires": { - "has-flag": "1.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } } } }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - } - }, - "cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "is-buffer": "^1.1.5" } }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "kleur": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.2.tgz", + "integrity": "sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q==", "dev": true }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true }, - "cypress": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-2.1.0.tgz", - "integrity": "sha512-EKXGjKFKUkhXXfAkYixBN2Lo2Gji4ZGC+ezWflRf/co49+OyHarZaXp7Y/n826WjmMdpHTmkOw4wUWBgyFHEHQ==", + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "@cypress/listr-verbose-renderer": "0.4.1", - "@cypress/xvfb": "1.1.3", - "@types/blob-util": "1.3.3", - "@types/bluebird": "3.5.18", - "@types/chai": "4.0.8", - "@types/chai-jquery": "1.1.35", - "@types/jquery": "3.2.16", - "@types/lodash": "4.14.87", - "@types/minimatch": "3.0.1", - "@types/mocha": "2.2.44", - "@types/sinon": "4.0.0", - "@types/sinon-chai": "2.7.29", - "bluebird": "3.5.0", - "chalk": "2.1.0", - "check-more-types": "2.24.0", - "commander": "2.11.0", - "common-tags": "1.4.0", - "debug": "3.1.0", - "extract-zip": "1.6.6", - "fs-extra": "4.0.1", - "getos": "2.8.4", - "glob": "7.1.2", - "is-ci": "1.0.10", - "is-installed-globally": "0.1.0", - "lazy-ass": "1.6.0", - "listr": "0.12.0", - "lodash": "4.17.4", - "minimist": "1.2.0", - "progress": "1.1.8", - "ramda": "0.24.1", - "request": "2.81.0", - "request-progress": "0.3.1", - "supports-color": "5.1.0", - "tmp": "0.0.31", - "url": "0.11.0", - "yauzl": "2.8.0" + "invert-kv": "^1.0.0" + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, + "less": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", + "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" }, "dependencies": { - "@types/chai": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz", - "integrity": "sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg==", - "dev": true + "ajv": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "dev": true, + "optional": 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" + } }, - "@types/lodash": { - "version": "4.14.87", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz", - "integrity": "sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw==", - "dev": true + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true }, - "@types/mocha": { - "version": "2.2.44", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz", - "integrity": "sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw==", - "dev": true + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "optional": true }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", - "dev": true + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true, + "optional": true }, - "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } - } + "optional": true }, - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true, + "optional": true }, - "common-tags": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz", - "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=", + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, + "optional": true, "requires": { - "babel-runtime": "6.26.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true, - "requires": { - "ms": "2.0.0" - } + "optional": true }, - "fs-extra": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", - "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, + "optional": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, + "optional": true, "requires": { - "graceful-fs": "4.1.11" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "optional": true }, - "ramda": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", - "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", "dev": true }, - "request-progress": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz", - "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=", + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "dev": true, "requires": { - "throttleit": "0.0.2" + "mime-db": "~1.37.0" } }, - "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, - "requires": { - "has-flag": "2.0.0" - } + "optional": true }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "dev": true + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true, + "optional": true }, - "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } + "optional": true }, - "yauzl": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz", - "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=", + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, + "optional": true, "requires": { - "buffer-crc32": "0.2.13", - "fd-slicer": "1.0.1" + "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" } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "optional": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true, + "optional": true } } }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "0.10.41" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", - "dev": true, - "optional": true - }, - "date-fns": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", - "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", - "dev": true - }, - "date-format": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", - "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", "dev": true, "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", "dev": true }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "define-property": { + "license-webpack-plugin": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.2.tgz", + "integrity": "sha512-GsomZw5VoT20ST8qH2tOjBgbyhn6Pgs9M94g0mbvfBIV1VXufm1iKY+4dbgfTObj1Mp6nSRE3Zf74deOZr0KwA==", "dev": true, - "optional": true, "requires": { - "ast-types": "0.11.3", - "escodegen": "1.9.1", - "esprima": "3.1.3" + "webpack-sources": "^1.2.0" }, "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, - "optional": true + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } } } }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "lineclip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/lineclip/-/lineclip-1.1.5.tgz", + "integrity": "sha1-K/JgZ9lDVP6r+R5CdoI221YW/RM=" + }, + "listr": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", + "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.2.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.0.0-beta.11", + "stream-to-observable": "^0.1.0", + "strip-ansi": "^3.0.1" }, "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "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" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", - "dev": true - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "1.0.3", - "debug": "2.6.9" - } - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "2.0.2" - } + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true }, - "dom-converter": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", - "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "listr-update-renderer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", + "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "dev": true, "requires": { - "utila": "0.3.3" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" }, "dependencies": { - "utila": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true } } }, - "dom-helpers": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", - "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==" - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", "dev": true, "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.1", - "void-elements": "2.0.1" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" }, "dependencies": { - "domelementtype": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true } } }, - "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" - }, - "domhandler": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", - "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, - "dotenv": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==" + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true }, - "dotenv-webpack": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.5.5.tgz", - "integrity": "sha1-NEEJTwTTBLYRnmtyUk5i+zJS9fI=", + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "requires": { - "dotenv": "5.0.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, - "double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "optional": true - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" - }, - "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.5", - "stream-shift": "1.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true, + "optional": true }, - "ejs": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", - "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=", + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.39", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.39.tgz", - "integrity": "sha1-16RpZAnKCZXidQFW2mEsIhr62E0=" + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true, + "optional": true }, - "ember-cli-string-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz", - "integrity": "sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE=", + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.19" - } + "lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=" }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, "requires": { - "once": "1.4.0" + "chalk": "^2.0.1" } }, - "engine.io": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz", - "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==", + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", "dev": true, "requires": { - "accepts": "1.3.5", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "uws": "9.14.0", - "ws": "3.3.3" + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "ms": "2.0.0" + "restore-cursor": "^1.0.1" } - } - } - }, - "engine.io-client": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", - "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", - "yeast": "0.1.2" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "ms": "2.0.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } } } }, - "engine.io-parser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", - "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", - "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary2": "1.0.2" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", "dev": true }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "prr": "1.0.1" + "js-tokens": "^3.0.0" } }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "optional": true, "requires": { - "is-arrayish": "0.2.1" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, - "es-abstract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", - "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "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" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "dev": true, "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "sourcemap-codec": "^1.4.1" } }, - "es5-ext": { - "version": "0.10.41", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.41.tgz", - "integrity": "sha512-MYK02wXfwTMie5TEJWPolgOsXEmz7wKCQaGzgmRjZOoV6VLG8I5dSv2bn6AOClXhK64gnSQTQ9W9MKvx87J4gw==", + "make-dir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "pify": "^3.0.0" } }, - "es5-shim": { - "version": "4.5.10", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.10.tgz", - "integrity": "sha512-vmryBdqKRO8Ei9LJ4yyEk/EOmAOGIagcHDYPpTAi6pot4IMHS1AC2q5cTKPmydpijg2iX8DVmCuqgrNxIWj8Yg==" + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "make-fetch-happen": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", + "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "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.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + } + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "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" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "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" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.41", - "es6-symbol": "3.1.1" + "tmpl": "1.0.x" } }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.41", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "p-defer": "^1.0.0" } }, - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.41", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "object-visit": "^1.0.0" } }, - "es6-shim": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.3.tgz", - "integrity": "sha1-m/tzY/7//4emzbbNk+QF7DxLbyY=" - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.41" + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" } }, - "es6-templates": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", - "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, "requires": { - "recast": "0.11.23", - "through": "2.3.8" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" }, "dependencies": { - "ast-types": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", - "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=" - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "recast": { - "version": "0.11.23", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", - "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, "requires": { - "ast-types": "0.9.6", - "esprima": "3.1.3", - "private": "0.1.8", - "source-map": "0.5.7" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } } } }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.41", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "mimic-fn": "^1.0.0" } }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true }, - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "optional": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "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" }, "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } } }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "readable-stream": "^2.0.1" } }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, "requires": { - "estraverse": "4.2.0" + "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" } }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.41" + "mime-db": "~1.33.0" } }, - "eventemitter3": { + "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "mini-css-extract-plugin": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.4.tgz", + "integrity": "sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==", + "dev": true, "requires": { - "original": "1.0.0" + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" - } + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.2", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - } + "brace-expansion": "^1.1.7" } }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" }, "dependencies": { - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", - "dev": true, - "requires": { - "expand-range": "0.1.1" - } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", - "dev": true, - "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" - } - }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "dev": true } } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "minipass": "^2.2.1" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "fill-range": "2.2.3" + "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": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, "requires": { - "homedir-polyfill": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "express": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, "requires": { - "accepts": "1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", - "qs": "6.5.1", - "range-parser": "1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", - "utils-merge": "1.0.1", - "vary": "1.1.2" + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" }, "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true } } }, - "extend": { + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mobx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.1.0.tgz", + "integrity": "sha1-5KlnnNr74hWyDjLvk6cDGEWz8a8=" + }, + "mobx-angular": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true + "resolved": "https://registry.npmjs.org/mobx-angular/-/mobx-angular-3.0.1.tgz", + "integrity": "sha512-PoEUEw74LoR7Ib6iGGCqvw8xMlmA/Zr5/0TVyhshq4kuzA8pHdvtCiE5AeyRK0w4LhyS7J0Qt0GboTgdhuys+A==" }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "moment": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz", + "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ==" + }, + "monotone-convex-hull-2d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz", + "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } + "robust-orientation": "^1.1.3" } }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "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" + } + }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.19", - "tmp": "0.0.33" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "multimatch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz", + "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==", "dev": true, "requires": { - "is-extglob": "1.0.0" + "array-differ": "^2.0.3", + "array-union": "^1.0.2", + "arrify": "^1.0.1", + "minimatch": "^3.0.4" } }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "dev": true, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "optional": true, "requires": { - "async": "2.6.0", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.1.0" + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "optional": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, + "rimraf": { + "version": "2.4.5", + "resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "optional": true, "requires": { - "ajv": "5.5.2" + "glob": "^6.0.1" } } } }, - "extract-zip": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", - "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "optional": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { - "concat-stream": "1.6.0", - "debug": "2.6.9", - "mkdirp": "0.5.0", - "yauzl": "2.4.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-odd": "^2.0.0", + "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" }, "dependencies": { - "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.5", - "typedarray": "0.0.6" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", - "dev": true, + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "optional": true + }, + "needle": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-1.6.0.tgz", + "integrity": "sha1-9SpYWJchIWGOAC+OY4TK2sItYk8=", "requires": { - "ansi-gray": "0.1.1", - "color-support": "1.1.3", - "time-stamp": "1.1.0" - }, - "dependencies": { - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - } + "debug": "^2.1.2", + "iconv-lite": "^0.4.4" } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "neo-async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", + "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==", + "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, - "fast-memoize": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.3.2.tgz", - "integrity": "sha512-h2avnhux4p3tXTA9xR7ntnQSFQdY4hAkyNj8wDXlVT2Die38JxVCInnrieuktdxzRevRWa3dBjN+SbQe1os0GQ==" + "ng-multiselect-dropdown": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ng-multiselect-dropdown/-/ng-multiselect-dropdown-0.1.3.tgz", + "integrity": "sha512-N4MTqtcEwIQYOPB8LDer6eylo9uGmpNUrAS99HPYz9LTbupEiPkh/V87nsQmaenkiPndHXDbQhpa3/DSLcj+ew==" }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=" + "ng2-bootstrap-modal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ng2-bootstrap-modal/-/ng2-bootstrap-modal-1.0.1.tgz", + "integrity": "sha1-8xZvymP9Ozrqyym41eO4cqtqseQ=" }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "ngx-bootstrap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-2.0.3.tgz", + "integrity": "sha512-SdtOQeQrT2BW5mUbzotZF8S55QaAYOBT7orrl2Pi/U5mCVH4U7YJIaN7yNzMfjGsYINmBOSY8Zi1MBUC1UzbWg==" + }, + "ngx-contextmenu": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/ngx-contextmenu/-/ngx-contextmenu-5.1.1.tgz", + "integrity": "sha512-PORVcTo9txGonSaQx8y1ZyG526Na0LY/I4NSPIquMhwziqal/WGijHtOPSJ/AjGxLooMcWsh8DyGNEzOijWrOw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ngx-datatable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ngx-datatable/-/ngx-datatable-1.0.3.tgz", + "integrity": "sha1-nvmRWqAZ6Zg6qOOJe2H0APL9adU=" + }, + "ngx-moment": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ngx-moment/-/ngx-moment-2.0.0.tgz", + "integrity": "sha512-KVTiKeSbrnTTVVtEGvC/7cqN+SCTWtbFYcRP+o0gudOPOYPS35rjIRHygADSFWoq5XqctUr5tC4/ZsWv3vJDRw==", + "requires": { + "moment": "^2.19.3", + "tslib": "^1.9.0" + } + }, + "ngx-tooltip": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ngx-tooltip/-/ngx-tooltip-0.0.9.tgz", + "integrity": "sha1-mCFpPn2RxX2ugYnF1qgQUmiQtvY=" + }, + "ngx-wallaby-jest": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ngx-wallaby-jest/-/ngx-wallaby-jest-0.0.1.tgz", + "integrity": "sha512-dLVzxo4bzZwXG3EShUt119pTWvV8o572nMQA77LczMxxi/fWNGrGkkWx7+LiigoeGredvO9Htmlqtx4qPvcYGA==", + "dev": true, + "requires": { + "fs": "0.0.1-security" + } + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" } }, - "fbjs": { - "version": "0.8.16", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", - "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "optional": true, "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + "ajv": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "dev": true, + "optional": 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" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true, + "optional": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "optional": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "dev": true + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "dev": true, + "requires": { + "mime-db": "~1.37.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "optional": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "optional": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "optional": 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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "optional": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true, + "optional": true } } }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "requires": { - "pend": "1.2.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-loader": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", - "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.5" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "7.1.2", - "minimatch": "3.0.4" - } - }, - "filesize": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", - "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==" - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "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": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "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", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" } }, - "find-cache-dir": { + "node-modules-regexp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "requires": { - "commondir": "1.0.1", - "make-dir": "1.2.0", - "pkg-dir": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" - }, - "flush-write-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", - "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.5" - } + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true }, - "follow-redirects": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", - "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "node-notifier": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", + "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", "dev": true, - "optional": true, "requires": { - "debug": "2.6.9" + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" } }, - "font-awesome": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "node-releases": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.2.tgz", + "integrity": "sha512-j1gEV/zX821yxdWp/1vBMN0pSUjuH9oGUdLCb4PfUko6ZW7KdRs3Z+QGGwDUhYtSpQvdVVyLd2V0YvLsmdg5jQ==", "dev": true, "requires": { - "for-in": "1.0.2" + "semver": "^5.3.0" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "node-sass": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz", + "integrity": "sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q==", "dev": true, + "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "0.2.2" + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ajv": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "dev": true, + "optional": 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" + } + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": 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" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "optional": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "dev": true + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "dev": true, + "requires": { + "mime-db": "~1.37.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "optional": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "optional": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "optional": 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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "optional": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true, + "optional": true + } } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "optional": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.5" + "abbrev": "1" } }, - "fs": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.2.tgz", - "integrity": "sha1-4fJE7zkzwbKmS9R5kTYGDQ9ZFPg=", - "dev": true + "nopt-usage": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/nopt-usage/-/nopt-usage-0.1.0.tgz", + "integrity": "sha1-sYuMGD4YEEfKnmO3zefPxwLMpXk=" }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "null-check": "1.0.0" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "remove-trailing-separator": "^1.0.1" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.5" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", - "optional": true, - "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.6.39" + "npm": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.4.1.tgz", + "integrity": "sha512-mXJL1NTVU136PtuopXCUQaNWuHlXCTp4McwlSW8S9/Aj8OEPAlSBgo8og7kJ01MjCDrkmqFQTvN5tTEhBMhXQg==", + "requires": { + "JSONStream": "^1.3.4", + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.2.0", + "archy": "~1.0.0", + "bin-links": "^1.1.2", + "bluebird": "~3.5.1", + "byte-size": "^4.0.3", + "cacache": "^11.2.0", + "call-limit": "~1.1.0", + "chownr": "~1.0.1", + "ci-info": "^1.4.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.0", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "~1.1.11", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.4.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.0.1", + "glob": "~7.1.2", + "graceful-fs": "~4.1.11", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.7.1", + "iferr": "^1.0.2", + "imurmurhash": "*", + "inflight": "~1.0.6", + "inherits": "~2.0.3", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^2.0.6", + "json-parse-better-errors": "^1.0.2", + "lazy-property": "~1.0.0", + "libcipm": "^2.0.2", + "libnpmhook": "^4.0.1", + "libnpx": "^10.2.0", + "lock-verify": "^2.0.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^4.1.3", + "meant": "~1.0.1", + "mississippi": "^3.0.0", + "mkdirp": "~0.5.1", + "move-concurrently": "^1.0.1", + "node-gyp": "^3.8.0", + "nopt": "~4.0.1", + "normalize-package-data": "~2.4.0", + "npm-audit-report": "^1.3.1", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-lifecycle": "^2.1.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.11", + "npm-pick-manifest": "^2.1.0", + "npm-profile": "^3.0.2", + "npm-registry-client": "^8.6.0", + "npm-registry-fetch": "^1.1.0", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.0", + "osenv": "^0.1.5", + "pacote": "^8.1.6", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.1.0", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "^2.0.13", + "read-package-tree": "^5.2.1", + "readable-stream": "^2.3.6", + "readdir-scoped-modules": "*", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "~2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.0", + "stringify-package": "^1.0.0", + "tar": "^4.4.6", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.2", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.6.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { + "JSONStream": { + "version": "1.3.4", + "bundled": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "abbrev": { - "version": "1.1.0", + "version": "1.1.1", + "bundled": true + }, + "agent-base": { + "version": "4.2.0", "bundled": true, - "optional": true + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.4.1", + "bundled": true, + "requires": { + "humanize-ms": "^1.2.1" + } }, "ajv": { - "version": "4.11.8", + "version": "5.5.2", "bundled": true, - "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "requires": { + "string-width": "^2.0.0" } }, "ansi-regex": { "version": "2.1.1", "bundled": true }, - "aproba": { - "version": "1.1.1", + "ansi-styles": { + "version": "3.2.1", "bundled": true, - "optional": true + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "archy": { + "version": "1.0.0", + "bundled": true }, "are-we-there-yet": { "version": "1.1.4", "bundled": true, - "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, + "asap": { + "version": "2.0.6", + "bundled": true + }, "asn1": { - "version": "0.2.3", + "version": "0.2.4", "bundled": true, - "optional": true + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert-plus": { - "version": "0.2.0", - "bundled": true, - "optional": true + "version": "1.0.0", + "bundled": true }, "asynckit": { "version": "0.4.0", - "bundled": true, - "optional": true + "bundled": true }, "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "optional": true + "version": "0.7.0", + "bundled": true }, "aws4": { - "version": "1.6.0", - "bundled": true, - "optional": true + "version": "1.8.0", + "bundled": true }, "balanced-match": { - "version": "0.4.2", + "version": "1.0.0", "bundled": true }, "bcrypt-pbkdf": { - "version": "1.0.1", + "version": "1.0.2", "bundled": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" + } + }, + "bin-links": { + "version": "1.1.2", + "bundled": true, + "requires": { + "bluebird": "^3.5.0", + "cmd-shim": "^2.0.2", + "gentle-fs": "^2.0.0", + "graceful-fs": "^4.1.11", + "write-file-atomic": "^2.3.0" } }, "block-stream": { "version": "0.0.9", "bundled": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, - "boom": { - "version": "2.10.1", + "bluebird": { + "version": "3.5.1", + "bundled": true + }, + "boxen": { + "version": "1.3.0", "bundled": true, "requires": { - "hoek": "2.16.3" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, "brace-expansion": { - "version": "1.1.7", + "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "buffer-shims": { + "buffer-from": { "version": "1.0.0", "bundled": true }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "optional": true + "builtin-modules": { + "version": "1.1.1", + "bundled": true }, - "co": { - "version": "4.6.0", - "bundled": true, - "optional": true + "builtins": { + "version": "1.0.3", + "bundled": true }, - "code-point-at": { + "byline": { + "version": "5.0.0", + "bundled": true + }, + "byte-size": { + "version": "4.0.3", + "bundled": true + }, + "cacache": { + "version": "11.2.0", + "bundled": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.0", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "call-limit": { "version": "1.1.0", "bundled": true }, - "combined-stream": { - "version": "1.0.5", + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true + }, + "chalk": { + "version": "2.4.1", "bundled": true, "requires": { - "delayed-stream": "1.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "concat-map": { - "version": "0.0.1", + "chownr": { + "version": "1.0.1", "bundled": true }, - "console-control-strings": { - "version": "1.1.0", + "ci-info": { + "version": "1.4.0", "bundled": true }, - "core-util-is": { - "version": "1.0.2", + "cidr-regex": { + "version": "2.0.9", + "bundled": true, + "requires": { + "ip-regex": "^2.1.0" + } + }, + "cli-boxes": { + "version": "1.0.0", "bundled": true }, - "cryptiles": { - "version": "2.0.5", + "cli-columns": { + "version": "3.1.2", "bundled": true, "requires": { - "boom": "2.10.1" + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" } }, - "dashdash": { - "version": "1.14.1", + "cli-table3": { + "version": "0.5.0", + "bundled": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cliui": { + "version": "4.1.0", "bundled": true, - "optional": true, "requires": { - "assert-plus": "1.0.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "strip-ansi": { + "version": "4.0.0", "bundled": true, - "optional": true + "requires": { + "ansi-regex": "^3.0.0" + } } } }, - "debug": { - "version": "2.6.8", + "clone": { + "version": "1.0.4", + "bundled": true + }, + "cmd-shim": { + "version": "2.0.2", "bundled": true, - "optional": true, "requires": { - "ms": "2.0.0" + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" } }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", + "co": { + "version": "4.6.0", "bundled": true }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "bundled": true, - "optional": true + "code-point-at": { + "version": "1.1.0", + "bundled": true }, - "ecc-jsbn": { - "version": "0.1.1", + "color-convert": { + "version": "1.9.1", "bundled": true, - "optional": true, "requires": { - "jsbn": "0.1.1" + "color-name": "^1.1.1" } }, - "extend": { - "version": "3.0.1", - "bundled": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", + "color-name": { + "version": "1.1.3", "bundled": true }, - "forever-agent": { - "version": "0.6.1", + "colors": { + "version": "1.1.2", "bundled": true, "optional": true }, - "form-data": { - "version": "2.1.4", + "columnify": { + "version": "1.5.4", "bundled": true, - "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" } }, - "fs.realpath": { - "version": "1.0.0", + "combined-stream": { + "version": "1.0.6", + "bundled": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", "bundled": true }, - "fstream": { - "version": "1.0.11", + "concat-stream": { + "version": "1.6.2", "bundled": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "fstream-ignore": { - "version": "1.0.5", + "config-chain": { + "version": "1.1.11", "bundled": true, - "optional": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "gauge": { - "version": "2.7.4", + "configstore": { + "version": "3.1.2", "bundled": true, - "optional": true, "requires": { - "aproba": "1.1.1", - "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.2" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, - "getpass": { - "version": "0.1.7", + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "copy-concurrently": { + "version": "1.0.5", "bundled": true, - "optional": true, "requires": { - "assert-plus": "1.0.0" + "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" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true + "iferr": { + "version": "0.1.5", + "bundled": true } } }, - "glob": { - "version": "7.1.2", + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "create-error-class": { + "version": "3.0.2", "bundled": true, "requires": { - "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" + "capture-stack-trace": "^1.0.0" } }, - "graceful-fs": { - "version": "4.1.11", + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", "bundled": true }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "optional": true + "cyclist": { + "version": "0.2.2", + "bundled": true }, - "har-validator": { - "version": "4.2.1", + "dashdash": { + "version": "1.14.1", "bundled": true, - "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "assert-plus": "^1.0.0" } }, - "has-unicode": { - "version": "2.0.1", + "debug": { + "version": "3.1.0", "bundled": true, - "optional": true + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true + } + } }, - "hawk": { - "version": "3.1.3", + "debuglog": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true + }, + "defaults": { + "version": "1.0.3", "bundled": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "clone": "^1.0.2" } }, - "hoek": { - "version": "2.16.3", + "delayed-stream": { + "version": "1.0.0", "bundled": true }, - "http-signature": { - "version": "1.1.1", + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true + }, + "dezalgo": { + "version": "1.0.3", "bundled": true, - "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "asap": "^2.0.0", + "wrappy": "1" } }, - "inflight": { - "version": "1.0.6", + "dot-prop": { + "version": "4.2.0", "bundled": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "is-obj": "^1.0.0" } }, - "inherits": { - "version": "2.0.3", + "dotenv": { + "version": "5.0.1", "bundled": true }, - "ini": { - "version": "1.3.4", - "bundled": true, - "optional": true + "duplexer3": { + "version": "0.1.4", + "bundled": true }, - "is-fullwidth-code-point": { - "version": "1.0.0", + "duplexify": { + "version": "3.6.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", + "ecc-jsbn": { + "version": "0.1.2", "bundled": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } }, - "isarray": { + "editor": { "version": "1.0.0", "bundled": true }, - "isstream": { - "version": "0.1.2", + "encoding": { + "version": "0.1.12", "bundled": true, - "optional": true + "requires": { + "iconv-lite": "~0.4.13" + } }, - "jodid25519": { - "version": "1.0.2", + "end-of-stream": { + "version": "1.4.1", "bundled": true, - "optional": true, "requires": { - "jsbn": "0.1.1" + "once": "^1.4.0" } }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true + "err-code": { + "version": "1.1.2", + "bundled": true }, - "json-schema": { - "version": "0.2.3", + "errno": { + "version": "0.1.7", "bundled": true, - "optional": true + "requires": { + "prr": "~1.0.1" + } }, - "json-stable-stringify": { - "version": "1.0.1", + "es6-promise": { + "version": "4.2.4", + "bundled": true + }, + "es6-promisify": { + "version": "5.0.0", "bundled": true, - "optional": true, "requires": { - "jsonify": "0.0.0" + "es6-promise": "^4.0.3" } }, - "json-stringify-safe": { - "version": "5.0.1", + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true + }, + "execa": { + "version": "0.7.0", "bundled": true, - "optional": true + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + } }, - "jsonify": { - "version": "0.0.0", + "extend": { + "version": "3.0.2", + "bundled": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "bundled": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true + }, + "figgy-pudding": { + "version": "3.4.1", + "bundled": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true + }, + "find-up": { + "version": "2.1.0", "bundled": true, - "optional": true + "requires": { + "locate-path": "^2.0.0" + } }, - "jsprim": { - "version": "1.4.0", + "flush-write-stream": { + "version": "1.0.3", "bundled": true, - "optional": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" } }, - "mime-db": { - "version": "1.27.0", + "forever-agent": { + "version": "0.6.1", "bundled": true }, - "mime-types": { - "version": "2.1.15", + "form-data": { + "version": "2.3.2", "bundled": true, "requires": { - "mime-db": "1.27.0" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } }, - "minimatch": { - "version": "3.0.4", + "from2": { + "version": "2.3.0", "bundled": true, "requires": { - "brace-expansion": "1.1.7" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, - "minimist": { - "version": "0.0.8", - "bundled": true + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "requires": { + "minipass": "^2.2.1" + } }, - "mkdirp": { - "version": "0.5.1", + "fs-vacuum": { + "version": "1.2.10", "bundled": true, "requires": { - "minimist": "0.0.8" + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" } }, - "ms": { - "version": "2.0.0", + "fs-write-stream-atomic": { + "version": "1.0.10", "bundled": true, - "optional": true + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true + } + } }, - "node-pre-gyp": { - "version": "0.6.39", + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", "bundled": true, - "optional": true, "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, - "nopt": { - "version": "4.0.1", + "gauge": { + "version": "2.7.4", "bundled": true, - "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "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" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, - "npmlog": { - "version": "4.1.0", + "genfun": { + "version": "4.0.1", + "bundled": true + }, + "gentle-fs": { + "version": "2.0.1", "bundled": true, - "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "aproba": "^1.1.2", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true + } } }, - "number-is-nan": { - "version": "1.0.1", + "get-caller-file": { + "version": "1.0.2", "bundled": true }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "optional": true + "get-stream": { + "version": "3.0.0", + "bundled": true }, - "object-assign": { - "version": "4.1.1", + "getpass": { + "version": "0.1.7", "bundled": true, - "optional": true + "requires": { + "assert-plus": "^1.0.0" + } }, - "once": { - "version": "1.4.0", + "glob": { + "version": "7.1.2", "bundled": true, "requires": { - "wrappy": "1.0.2" + "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" } }, - "os-homedir": { - "version": "1.0.2", + "global-dirs": { + "version": "0.1.1", "bundled": true, - "optional": true + "requires": { + "ini": "^1.3.4" + } }, - "os-tmpdir": { - "version": "1.0.2", + "got": { + "version": "6.7.1", "bundled": true, - "optional": true + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } }, - "osenv": { - "version": "0.1.4", + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true + }, + "har-validator": { + "version": "5.1.0", "bundled": true, - "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, - "path-is-absolute": { - "version": "1.0.1", + "has-flag": { + "version": "3.0.0", "bundled": true }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "optional": true + "has-unicode": { + "version": "2.0.1", + "bundled": true }, - "process-nextick-args": { - "version": "1.0.7", + "hosted-git-info": { + "version": "2.7.1", "bundled": true }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "optional": true + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true }, - "qs": { - "version": "6.4.0", + "http-proxy-agent": { + "version": "2.1.0", "bundled": true, - "optional": true + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } }, - "rc": { - "version": "1.2.1", + "http-signature": { + "version": "1.2.0", "bundled": true, - "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "readable-stream": { - "version": "2.2.9", + "https-proxy-agent": { + "version": "2.2.1", "bundled": true, "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, - "request": { - "version": "2.81.0", + "humanize-ms": { + "version": "1.2.1", "bundled": true, - "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "ms": "^2.0.0" } }, - "rimraf": { - "version": "2.6.1", + "iconv-lite": { + "version": "0.4.23", "bundled": true, "requires": { - "glob": "7.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, - "safe-buffer": { - "version": "5.0.1", + "iferr": { + "version": "1.0.2", "bundled": true }, - "semver": { - "version": "5.3.0", + "ignore-walk": { + "version": "3.0.1", "bundled": true, - "optional": true + "requires": { + "minimatch": "^3.0.4" + } }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true + "import-lazy": { + "version": "2.1.0", + "bundled": true }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true + "imurmurhash": { + "version": "0.1.4", + "bundled": true }, - "sntp": { - "version": "1.0.9", + "inflight": { + "version": "1.0.6", "bundled": true, "requires": { - "hoek": "2.16.3" + "once": "^1.3.0", + "wrappy": "1" } }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } + "inherits": { + "version": "2.0.3", + "bundled": true }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } + "ini": { + "version": "1.3.5", + "bundled": true }, - "string_decoder": { - "version": "1.0.1", + "init-package-json": { + "version": "1.10.3", "bundled": true, "requires": { - "safe-buffer": "5.0.1" + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" } }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "optional": true + "invert-kv": { + "version": "1.0.0", + "bundled": true }, - "strip-ansi": { - "version": "3.0.1", + "ip": { + "version": "1.1.5", + "bundled": true + }, + "ip-regex": { + "version": "2.1.0", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "builtin-modules": "^1.0.0" } }, - "strip-json-comments": { - "version": "2.0.1", + "is-ci": { + "version": "1.1.0", "bundled": true, - "optional": true + "requires": { + "ci-info": "^1.0.0" + } }, - "tar": { - "version": "2.2.1", + "is-cidr": { + "version": "2.0.6", "bundled": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "cidr-regex": "^2.0.8" } }, - "tar-pack": { - "version": "3.4.0", + "is-fullwidth-code-point": { + "version": "1.0.0", "bundled": true, - "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "number-is-nan": "^1.0.0" } }, - "tough-cookie": { - "version": "2.3.2", + "is-installed-globally": { + "version": "0.1.0", "bundled": true, - "optional": true, "requires": { - "punycode": "1.4.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, - "tunnel-agent": { - "version": "0.6.0", + "is-npm": { + "version": "1.0.0", + "bundled": true + }, + "is-obj": { + "version": "1.0.1", + "bundled": true + }, + "is-path-inside": { + "version": "1.0.1", "bundled": true, - "optional": true, "requires": { - "safe-buffer": "5.0.1" + "path-is-inside": "^1.0.1" } }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "optional": true + "is-redirect": { + "version": "1.0.0", + "bundled": true }, - "uid-number": { - "version": "0.0.6", + "is-retry-allowed": { + "version": "1.1.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true + }, + "jsbn": { + "version": "0.1.1", "bundled": true, "optional": true }, - "util-deprecate": { + "json-parse-better-errors": { "version": "1.0.2", "bundled": true }, - "uuid": { - "version": "3.0.1", + "json-schema": { + "version": "0.2.3", + "bundled": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true + }, + "jsonparse": { + "version": "1.3.1", + "bundled": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true + }, + "lcid": { + "version": "1.0.0", "bundled": true, - "optional": true + "requires": { + "invert-kv": "^1.0.0" + } }, - "verror": { - "version": "1.3.6", + "libcipm": { + "version": "2.0.2", "bundled": true, - "optional": true, "requires": { - "extsprintf": "1.0.2" + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "lock-verify": "^2.0.2", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^2.0.3", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^8.1.6", + "protoduck": "^5.0.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "libnpmhook": { + "version": "4.0.1", + "bundled": true, + "requires": { + "figgy-pudding": "^3.1.0", + "npm-registry-fetch": "^3.0.0" + }, + "dependencies": { + "npm-registry-fetch": { + "version": "3.1.1", + "bundled": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.1.0", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^4.0.0", + "npm-package-arg": "^6.0.0" + } + } } }, - "wide-align": { - "version": "1.1.2", + "libnpx": { + "version": "10.2.0", "bundled": true, - "optional": true, "requires": { - "string-width": "1.0.2" + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^11.0.0" } }, - "wrappy": { - "version": "1.0.2", - "bundled": true - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "dev": true, - "optional": true, - "requires": { - "readable-stream": "1.1.14", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true, - "optional": true + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "optional": true, + "lock-verify": { + "version": "2.0.2", + "bundled": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "npm-package-arg": "^5.1.2 || 6", + "semver": "^5.4.1" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true, - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz", - "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", - "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "is-callable": "1.1.3" - } - }, - "fuse.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.2.0.tgz", - "integrity": "sha1-8ESOgGmFW/Kj5oPNwdMg5+KgfvQ=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "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.2" - } - }, - "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "dev": true, - "optional": true, - "requires": { - "globule": "1.2.0" - } - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true, - "optional": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "optional": true, - "requires": { - "is-property": "1.0.2" - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz", - "integrity": "sha512-7aelVrYqCLuVjq2kEKRTH8fXPTC0xKTkM+G7UlFkEwCXY3sFbSxvY375JoFowOAYbkaU47SrBvOefUlLZZ+6QA==", - "dev": true, - "optional": true, - "requires": { - "data-uri-to-buffer": "1.2.0", - "debug": "2.6.9", - "extend": "3.0.1", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "2.3.5" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getos": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/getos/-/getos-2.8.4.tgz", - "integrity": "sha1-e4YD02GcKOOMsP56T2PDrLgNUWM=", - "dev": true, - "requires": { - "async": "2.1.4" - }, - "dependencies": { - "async": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", - "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", - "dev": true, + "lockfile": { + "version": "1.0.4", + "bundled": true, "requires": { - "lodash": "4.17.5" + "signal-exit": "^3.0.2" } - } - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "gitbook-plugin-github": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gitbook-plugin-github/-/gitbook-plugin-github-2.0.0.tgz", - "integrity": "sha1-UWbnY8/MQC1DKIC3pshcHFS1ao0=" - }, - "glamor": { - "version": "2.20.40", - "resolved": "https://registry.npmjs.org/glamor/-/glamor-2.20.40.tgz", - "integrity": "sha512-DNXCd+c14N9QF8aAKrfl4xakPk5FdcFwmH7sD0qnC0Pr7xoZ5W9yovhUrY/dJc3psfGGXC58vqQyRtuskyUJxA==", - "requires": { - "fbjs": "0.8.16", - "inline-style-prefixer": "3.0.8", - "object-assign": "4.1.1", - "prop-types": "15.6.1", - "through": "2.3.8" - } - }, - "glamorous": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/glamorous/-/glamorous-4.12.2.tgz", - "integrity": "sha512-+jGoFgY+Czd/WFXDE4HszXJlYUks2xawlzNx+5rtkwjpc9M36QtgI7YXIq+X7rg1t8sc+0o/PJsO1A9T9atcVA==", - "requires": { - "brcast": "3.0.1", - "fast-memoize": "2.3.2", - "html-tag-names": "1.1.2", - "is-function": "1.0.1", - "is-plain-object": "2.0.4", - "react-html-attributes": "1.4.1", - "svg-tag-names": "1.1.1" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "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": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "2.19.0", - "process": "0.5.2" - }, - "dependencies": { - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - } - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "1.3.5" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "1.0.2", - "is-windows": "1.0.2", - "resolve-dir": "1.0.1" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.1", - "ini": "1.3.5", - "is-windows": "1.0.2", - "which": "1.3.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.2", - "ignore": "3.3.7", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2", - "lodash": "4.17.5", - "minimatch": "3.0.4" - } - }, - "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", - "dev": true, - "requires": { - "sparkles": "1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "gulp-util": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", - "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=", - "dev": true, - "requires": { - "array-differ": "1.0.0", - "array-uniq": "1.0.3", - "beeper": "1.1.1", - "chalk": "1.1.3", - "dateformat": "1.0.12", - "fancy-log": "1.3.2", - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "lodash._reescape": "3.0.0", - "lodash._reevaluate": "3.0.0", - "lodash._reinterpolate": "3.0.0", - "lodash.template": "3.6.2", - "minimist": "1.2.0", - "multipipe": "0.1.2", - "object-assign": "3.0.0", - "replace-ext": "0.0.1", - "through2": "2.0.3", - "vinyl": "0.5.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, "requires": { - "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" + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" } }, - "minimist": { + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "bundled": true + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true + }, + "lowercase-keys": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.1", + "bundled": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "meant": { + "version": "1.0.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mime-db": { + "version": "1.35.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.19", + "bundled": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "bundled": true }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "1.0.1" - } - }, - "gzip-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "requires": { - "duplexer": "0.1.1" - } - }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, - "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "dev": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "minimist": { + "version": "0.0.8", + "bundled": true }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true + "minipass": { + "version": "2.3.3", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true + } + } }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, + "minizlib": { + "version": "1.1.0", + "bundled": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "minipass": "^2.2.1" } }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, + "mississippi": { + "version": "3.0.0", + "bundled": true, "requires": { - "amdefine": "1.0.1" + "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" } }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": 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" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true + }, + "mute-stream": { + "version": "0.0.7", + "bundled": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "3.8.0", + "bundled": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true + "nopt": { + "version": "3.0.6", + "bundled": true, + "requires": { + "abbrev": "1" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } } } }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true, + "nopt": { + "version": "4.0.1", + "bundled": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "abbrev": "1", + "osenv": "^0.1.4" } - } - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": 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" + } + }, + "npm-audit-report": { + "version": "1.3.1", + "bundled": true, + "requires": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true + }, + "npm-install-checks": { + "version": "3.0.0", + "bundled": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-lifecycle": { + "version": "2.1.0", + "bundled": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.11", + "node-gyp": "^3.8.0", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true + }, + "npm-package-arg": { + "version": "6.1.0", + "bundled": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } - } - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-binary2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz", - "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + }, + "npm-packlist": { + "version": "1.1.11", + "bundled": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.1.0", + "bundled": true, + "requires": { + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-profile": { + "version": "3.0.2", + "bundled": true, + "requires": { + "aproba": "^1.1.2 || 2", + "make-fetch-happen": "^2.5.0 || 3 || 4" + } + }, + "npm-registry-client": { + "version": "8.6.0", + "bundled": true, "requires": { - "kind-of": "3.2.2" + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "npmlog": "2 || ^3.1.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "safe-buffer": "^5.1.1", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^5.2.4" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "retry": { + "version": "0.10.1", + "bundled": true + }, + "ssri": { + "version": "5.3.0", + "bundled": true, "requires": { - "is-buffer": "1.1.6" + "safe-buffer": "^5.1.1" } } } }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "npm-registry-fetch": { + "version": "1.1.0", + "bundled": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^2.0.1", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^3.0.0", + "npm-package-arg": "^6.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "bundled": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + }, + "dependencies": { + "mississippi": { + "version": "2.0.0", + "bundled": 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": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + } + } + }, + "figgy-pudding": { + "version": "2.0.1", + "bundled": true + }, + "make-fetch-happen": { + "version": "3.0.0", + "bundled": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^10.0.4", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.0", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^3.0.1", + "ssri": "^5.2.4" + } + }, + "pump": { + "version": "2.0.1", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "smart-buffer": { + "version": "1.1.15", + "bundled": true + }, + "socks": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" + } + }, + "socks-proxy-agent": { + "version": "3.0.1", + "bundled": true, + "requires": { + "agent-base": "^4.1.0", + "socks": "^1.1.10" + } + }, + "ssri": { + "version": "5.3.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1" + } + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, "requires": { - "is-buffer": "1.1.6" + "path-key": "^2.0.0" } - } - } - }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "requires": { - "inherits": "2.0.3" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "requires": { - "is-stream": "1.1.0", - "pinkie-promise": "2.0.1" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "hipchat-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz", - "integrity": "sha1-ttJJdVQ3wZEII2d5nTupoPI7Ix4=", - "dev": true, - "optional": true, - "requires": { - "lodash": "4.17.5", - "request": "2.81.0" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "hoist-non-react-statics": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", - "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "requires": { - "parse-passwd": "1.0.0" - } - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.5", - "wbuf": "1.7.3" - } - }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" - }, - "html-element-attributes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/html-element-attributes/-/html-element-attributes-1.3.0.tgz", - "integrity": "sha1-8G69/OIt6XnbggICZcrFQfsX1Pw=" - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" - }, - "html-loader": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz", - "integrity": "sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==", - "requires": { - "es6-templates": "0.2.3", - "fastparse": "1.1.1", - "html-minifier": "3.5.12", - "loader-utils": "1.1.0", - "object-assign": "4.1.1" - } - }, - "html-minifier": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.12.tgz", - "integrity": "sha512-+N778qLf0RWBscD0TPGoYdeGNDZ0s76/0pQhY1/409EOudcENkm9IbSkk37RDyPdg/09GVHTKotU4ya93RF1Gg==", - "requires": { - "camel-case": "3.0.0", - "clean-css": "4.1.11", - "commander": "2.15.0", - "he": "1.1.1", - "ncname": "1.0.0", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.3.16" - } - }, - "html-tag-names": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-tag-names/-/html-tag-names-1.1.2.tgz", - "integrity": "sha1-9lFolkxanIJnXv2ogoddyyqHXCI=" - }, - "html-webpack-plugin": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", - "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", - "requires": { - "bluebird": "3.5.1", - "html-minifier": "3.5.12", - "loader-utils": "0.2.17", - "lodash": "4.17.5", - "pretty-error": "2.1.1", - "toposort": "1.0.6" - }, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + }, + "npm-user-validate": { + "version": "1.0.0", + "bundled": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.9.0", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "wrappy": "1" } - } - } - }, - "htmlparser2": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", - "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.1.0", - "domutils": "1.1.6", - "readable-stream": "1.0.34" - }, - "dependencies": { - "domutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", - "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + }, + "opener": { + "version": "1.5.0", + "bundled": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, "requires": { - "domelementtype": "1.3.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "os-tmpdir": { + "version": "1.0.2", + "bundled": true }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "osenv": { + "version": "0.1.5", + "bundled": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.4.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "p-finally": { + "version": "1.0.0", + "bundled": true }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } - } - }, - "http-loader": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/http-loader/-/http-loader-0.0.1.tgz", - "integrity": "sha1-sE+MLY6HKuB5VyYG7/D0uO9V0Hw=" - }, - "http-parser-js": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.11.tgz", - "integrity": "sha512-QCR5O2AjjMW8Mo4HyI1ctFcv+O99j/0g367V3YoVnrNw5hkDvAWZD0lWGcc+F4yN3V55USPCVix4efb75HxFfA==" - }, - "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true, - "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz", - "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=", - "dev": true, - "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" - } - }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "dev": true, - "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.5", - "micromatch": "2.3.11" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "p-limit": { + "version": "1.2.0", + "bundled": true, + "requires": { + "p-try": "^1.0.0" + } }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, + "p-locate": { + "version": "2.0.0", + "bundled": true, "requires": { - "is-extglob": "2.1.1" + "p-limit": "^1.1.0" } - } - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" - } - }, - "httpntlm": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz", - "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=", - "dev": true, - "requires": { - "httpreq": "0.4.24", - "underscore": "1.7.0" - } - }, - "httpreq": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz", - "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "https-proxy-agent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", - "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", - "dev": true, - "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" - } - }, - "hyphenate-style-name": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", - "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=" - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "requires": { - "postcss": "6.0.20" - } - }, - "ieee754": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.10.tgz", - "integrity": "sha512-byWFX8OyW/qeVxcY21r6Ncxl0ZYHgnf0cPup2h34eHXrCJbOp7IuqnJ4Q0omfyWl6Z++BTI6bByf31pZt7iRLg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true, - "optional": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflection": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.10.0.tgz", - "integrity": "sha1-W//LEZetPoEFD44X4hZoCH7p6y8=", - "dev": true, - "optional": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inline-style-prefixer": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", - "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=", - "requires": { - "bowser": "1.9.3", - "css-in-js-utils": "2.0.1" - } - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.2.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.5", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { + }, + "p-try": { + "version": "1.0.0", + "bundled": true + }, + "package-json": { + "version": "4.0.1", + "bundled": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pacote": { + "version": "8.1.6", + "bundled": true, + "requires": { + "bluebird": "^3.5.1", + "cacache": "^11.0.2", + "get-stream": "^3.0.0", + "glob": "^7.1.2", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.10", + "npm-pick-manifest": "^2.1.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "ssri": "^6.0.0", + "tar": "^4.4.3", + "unique-filename": "^1.1.0", + "which": "^1.3.0" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "prepend-http": { + "version": "1.0.4", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true + } + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "promzard": { + "version": "0.3.0", + "bundled": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "read": "1" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "proto-list": { + "version": "1.2.4", + "bundled": true + }, + "protoduck": { + "version": "5.0.0", + "bundled": true, "requires": { - "ansi-regex": "3.0.0" + "genfun": "^4.0.1" } - } - } - }, - "internal-ip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "dev": true, - "requires": { - "meow": "3.7.0" - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "1.3.1" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ipaddr.js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" - }, - "is-ci": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", - "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", - "dev": true, - "requires": { - "ci-info": "1.1.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-dom": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz", - "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0=" - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" - } - }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", - "dev": true, - "optional": true - }, - "is-my-json-valid": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", - "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", - "dev": true, - "optional": true, - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { + }, + "prr": { + "version": "1.0.1", + "bundled": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "psl": { + "version": "1.1.29", + "bundled": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "bundled": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "qrcode-terminal": { + "version": "0.12.0", + "bundled": true + }, + "qs": { + "version": "6.5.2", + "bundled": true + }, + "query-string": { + "version": "6.1.0", + "bundled": true, + "requires": { + "decode-uri-component": "^0.2.0", + "strict-uri-encode": "^2.0.0" + } + }, + "qw": { + "version": "1.0.1", + "bundled": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true + } + } + }, + "read": { + "version": "1.0.7", + "bundled": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "1.0.1", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.0.13", + "bundled": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.2.1", + "bundled": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": 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" + } + }, + "readdir-scoped-modules": { + "version": "1.0.2", + "bundled": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "bundled": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.0", + "bundled": 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" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true, - "optional": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "1.0.1" - } - }, - "is-root": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", - "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "requires": { - "html-comment-regex": "1.1.1" - } - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.4" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, - "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "glob": "5.0.15", - "handlebars": "4.0.11", - "js-yaml": "3.11.0", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "once": "1.4.0", - "resolve": "1.1.7", - "supports-color": "3.2.3", - "which": "1.3.0", - "wordwrap": "1.0.0" - }, - "dependencies": { - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true + "bundled": true + }, + "retry": { + "version": "0.12.0", + "bundled": true + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "^7.0.5" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "sha": { + "version": "2.0.1", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "^1.0.0" + } }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "shebang-regex": { + "version": "1.0.0", + "bundled": true }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "slash": { + "version": "1.0.0", + "bundled": true + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "smart-buffer": { + "version": "4.0.1", + "bundled": true + }, + "socks": { + "version": "2.2.0", + "bundled": true, "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" } }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true + "socks-proxy-agent": { + "version": "4.0.1", + "bundled": true, + "requires": { + "agent-base": "~4.2.0", + "socks": "~2.2.0" + } }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true + "sorted-object": { + "version": "2.0.1", + "bundled": true }, - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "isarray": { + "version": "0.0.1", + "bundled": true + }, + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true + } } }, - "has-flag": { + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "sshpk": { + "version": "1.14.2", + "bundled": 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" + } + }, + "ssri": { + "version": "6.0.0", + "bundled": true + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "requires": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "bundled": true }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, + "strict-uri-encode": { + "version": "2.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, "requires": { - "abbrev": "1.0.9" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } }, - "source-map": { + "stringify-package": { + "version": "1.0.0", + "bundled": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "4.4.6", + "bundled": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.3", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, + "bundled": true + }, + "through": { + "version": "2.3.8", + "bundled": true + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "bundled": true + }, + "tiny-relative-date": { + "version": "1.3.0", + "bundled": true + }, + "tough-cookie": { + "version": "2.4.3", + "bundled": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "bundled": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true + }, + "umask": { + "version": "1.1.0", + "bundled": true + }, + "unique-filename": { + "version": "1.1.0", + "bundled": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true + }, + "update-notifier": { + "version": "2.5.0", + "bundled": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "util-extend": { + "version": "1.0.3", + "bundled": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, "requires": { - "amdefine": "1.0.1" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "builtins": "^1.0.3" } }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, - "istanbul-api": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz", - "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==", - "dev": true, - "requires": { - "async": "2.6.0", - "compare-versions": "3.1.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.2.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.4", - "istanbul-lib-source-maps": "1.2.4", - "istanbul-reports": "1.3.0", - "js-yaml": "3.11.0", - "mkdirp": "0.5.1", - "once": "1.4.0" - } - }, - "istanbul-instrumenter-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.0.tgz", - "integrity": "sha512-alLSEFX06ApU75sm5oWcaVNaiss/bgMRiWTct3g0P0ZZTKjR+6QiCcuVOKDI1kWJgwHEnIXsv/dWm783kPpmtw==", - "dev": true, - "requires": { - "convert-source-map": "1.5.1", - "istanbul-lib-instrument": "1.10.1", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, + "verror": { + "version": "1.10.0", + "bundled": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, + "wcwidth": { + "version": "1.0.1", + "bundled": true, "requires": { - "ajv": "5.5.2" + "defaults": "^1.0.3" } - } - } - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz", - "integrity": "sha512-p3En6/oGkFQV55Up8ZPC2oLxvgSxD8CzA0yBrhRZSh3pfv3OFj9aSGVC0yoerAi/O4u7jUVnOGVX1eVFM+0tmQ==", - "dev": true, - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "dev": true, - "requires": { - "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.0", - "semver": "5.5.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz", - "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, + "which": { + "version": "1.3.1", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "isexe": "^2.0.0" } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz", - "integrity": "sha512-UzuK0g1wyQijiaYQxj/CdNycFhAd2TLtO2obKQMTZrZ1jzEMRY3rvpASEKkaxbRR6brvdovfA03znPa/pXcejg==", - "dev": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, "requires": { - "ms": "2.0.0" + "string-width": "^1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.0", + "bundled": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "worker-farm": { + "version": "1.6.0", + "bundled": true, + "requires": { + "errno": "~0.1.7" } - } - } - }, - "istanbul-reports": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", - "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", - "dev": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "jasmine": { - "version": "2.99.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz", - "integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "7.1.2", - "jasmine-core": "2.99.1" - }, - "dependencies": { - "jasmine-core": { - "version": "2.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", - "dev": true - } - } - }, - "jasmine-core": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.5.2.tgz", - "integrity": "sha1-b2G9eQYeJ/Q+b5NV5Es8bKtv8pc=", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", - "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", - "dev": true, - "requires": { - "colors": "1.1.2" - } - }, - "jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "dev": true - }, - "js-base64": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", - "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==" - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "karma": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.2.tgz", - "integrity": "sha1-TS25QChQpmVR+nhLAWT7CCTtjEs=", - "dev": true, - "requires": { - "bluebird": "3.5.1", - "body-parser": "1.18.2", - "chokidar": "1.7.0", - "colors": "1.1.2", - "combine-lists": "1.0.1", - "connect": "3.6.6", - "core-js": "2.4.1", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "http-proxy": "1.16.2", - "isbinaryfile": "3.0.2", - "lodash": "4.17.5", - "log4js": "2.5.3", - "mime": "1.6.0", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.2.0", - "range-parser": "1.2.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.1", - "socket.io": "2.0.4", - "source-map": "0.6.1", - "tmp": "0.0.33", - "useragent": "2.2.1" - }, - "dependencies": { - "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", - "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } }, - "useragent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", - "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", - "dev": true, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, "requires": { - "lru-cache": "2.2.4", - "tmp": "0.0.33" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } - } - } - }, - "karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", - "dev": true, - "requires": { - "fs-access": "1.0.1", - "which": "1.3.0" - } - }, - "karma-coverage-istanbul-reporter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.1.tgz", - "integrity": "sha512-UcgrHkFehI5+ivMouD8NH/UOHiX4oCAtwaANylzPFdcAuD52fnCUuelacq2gh8tZ4ydhU3+xiXofSq7j5Ehygw==", - "dev": true, - "requires": { - "istanbul-api": "1.3.1", - "minimatch": "3.0.4" - } - }, - "karma-istanbul-threshold": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/karma-istanbul-threshold/-/karma-istanbul-threshold-1.2.2.tgz", - "integrity": "sha1-cWReASb9t5DeKGXJWFp5KV7LF/s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "chokidar": "1.7.0", - "fs": "0.0.2", - "istanbul": "0.4.5", - "lodash": "4.17.5", - "minimatch": "3.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.0.0", + "bundled": true, "requires": { - "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" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.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", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "y18n": { + "version": "3.2.1", + "bundled": true + } } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "karma-jasmine": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", - "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", - "dev": true - }, - "karma-jasmine-html-reporter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.1.0.tgz", - "integrity": "sha512-uhNED+4B1axgptXkM8cCa3kztpQqsPrOxhfbjr4FdunNexnU6+cF2bfiIeGfsFMhphVyOMKy/S9LFaOFj8VXRA==", - "dev": true - }, - "karma-junit-reporter": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz", - "integrity": "sha1-T5xAzt+xo5X4rvh2q/lhiZF8Y5Y=", - "dev": true, - "requires": { - "path-is-absolute": "1.0.1", - "xmlbuilder": "8.2.2" - }, - "dependencies": { - "xmlbuilder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", - "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", - "dev": true + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "^4.1.0" + } } } }, - "karma-phantomjs-launcher": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", - "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", - "dev": true, - "requires": { - "lodash": "4.17.5", - "phantomjs-prebuilt": "2.1.16" - } - }, - "karma-remap-istanbul": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/karma-remap-istanbul/-/karma-remap-istanbul-0.6.0.tgz", - "integrity": "sha1-l/O3cAZSVPm0ck8tm+SjouG69vw=", - "dev": true, - "requires": { - "istanbul": "0.4.5", - "remap-istanbul": "0.9.6" - } - }, - "karma-source-map-support": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.2.0.tgz", - "integrity": "sha1-G/gee7SwiWJ6s1LsQXnhF8QGpUA=", - "dev": true, - "requires": { - "source-map-support": "0.4.18" - } - }, - "karma-spec-reporter": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.32.tgz", - "integrity": "sha1-LpxyB+pyZ3EmAln4K+y1QyCeRAo=", - "dev": true, - "requires": { - "colors": "1.1.2" - } - }, - "kew": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true - }, - "keycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", - "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" - }, - "killable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", - "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "npm-bundled": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz", + "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==", "dev": true }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - } - }, - "less": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", - "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", - "dev": true, - "requires": { - "errno": "0.1.7", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.81.0", - "source-map": "0.5.7" - } - }, - "less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", - "dev": true, - "requires": { - "clone": "2.1.1", - "loader-utils": "1.1.0", - "pify": "3.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, + "npm-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-3.0.0.tgz", + "integrity": "sha1-9y5AR5k6C/kyp9jbeAur/3e6cj8=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "got": "^6.3.0", + "lodash.zip": "^4.0.0", + "registry-url": "^3.0.0" } }, - "libbase64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", - "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=", - "dev": true - }, - "libmime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz", - "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=", + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "iconv-lite": "0.4.15", - "libbase64": "0.1.0", - "libqp": "1.1.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", - "dev": true - } + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, - "libqp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", - "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=", - "dev": true - }, - "license-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-12Spl8M5Ty7aRszGQUEfNK1W0gwcWNfAj0sMyJv7E7BglAb4YaZ6FciGncmwzxEcuzJ45RjA/Fql3Gw13la6aA==", + "npm-packlist": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz", + "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", "dev": true, "requires": { - "ejs": "2.5.7" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, - "listr": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", - "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.2.0", - "listr-verbose-renderer": "0.4.1", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "5.5.6", - "stream-to-observable": "0.1.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" } }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", - "dev": true - }, - "listr-update-renderer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", - "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "npm-registry-fetch": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.8.0.tgz", + "integrity": "sha512-hrw8UMD+Nob3Kl3h8Z/YjmKamb1gf7D1ZZch2otrIXM3uFLB5vjEY6DhMlq80z/zZet6eETLbOXcuQudCB3Zpw==", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "elegant-spinner": "1.0.1", - "figures": "1.7.0", - "indent-string": "3.2.0", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "strip-ansi": "3.0.1" + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "npm-package-arg": "^6.1.0" }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true } } }, - "listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "date-fns": "1.29.0", - "figures": "1.7.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": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "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" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, - "onetime": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=" - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "path-key": "^2.0.0" } }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - }, - "lodash-es": { - "version": "4.17.8", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.8.tgz", - "integrity": "sha512-I9mjAxengFAleSThFhhAhvba6fsO0hunb9/0sQ6qQihSZsJRBofv2rYH58WXaOb/O++eUmYpCLywSQ22GfU+sA==" - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true, - "optional": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { - "lodash._root": "3.0.1" - } - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true, - "optional": true - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "nwsapi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.0.tgz", + "integrity": "sha512-ZG3bLAvdHmhIjaQ/Db1qvBxsGvFMLIRpQszyqbg31VJ53UP++uZX1/gf3Ut96pdwN9AuDwlMqIYLm0UPCdUeHg==", "dev": true }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "3.0.1", - "lodash._basetostring": "3.0.1", - "lodash._basevalues": "3.0.0", - "lodash._isiterateecall": "3.0.9", - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0", - "lodash.keys": "3.1.2", - "lodash.restparam": "3.6.1", - "lodash.templatesettings": "3.1.1" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0" - } - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "1.1.3" + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^2.1.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", + "yargs": "11.1.0", + "yargs-parser": "^8.0.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, + "array-unique": { + "version": "0.3.2", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "atob": { + "version": "2.1.1", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "base": { + "version": "0.11.2", + "bundled": true, "requires": { - "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" + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "log-update": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", - "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", - "dev": true, - "requires": { - "ansi-escapes": "1.4.0", - "cli-cursor": "1.0.2" - }, - "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "dev": true + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, + "braces": { + "version": "2.3.2", + "bundled": true, "requires": { - "restore-cursor": "1.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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "onetime": { + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": 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" + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "bundled": true }, - "restore-cursor": { + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, + "bundled": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } - } - } - }, - "log4js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.5.3.tgz", - "integrity": "sha512-YL/qpTxYtK0iWWbuKCrevDZz5lh+OjyHHD+mICqpjnYGKdNRBvPeh/1uYjkKUemT1CSO4wwLOwphWMpKAnD9kw==", - "dev": true, - "requires": { - "amqplib": "0.5.2", - "axios": "0.15.3", - "circular-json": "0.5.1", - "date-format": "1.2.0", - "debug": "3.1.0", - "hipchat-notifier": "1.1.0", - "loggly": "1.1.1", - "mailgun-js": "0.7.15", - "nodemailer": "2.7.2", - "redis": "2.8.0", - "semver": "5.5.0", - "slack-node": "0.2.0", - "streamroller": "0.7.0" - }, - "dependencies": { + }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, + "bundled": true, "requires": { "ms": "2.0.0" } - } - } - }, - "loggly": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz", - "integrity": "sha1-Cg/B0/o6XsRP3HuJe+uipGlc6+4=", - "dev": true, - "optional": true, - "requires": { - "json-stringify-safe": "5.0.1", - "request": "2.75.0", - "timespan": "2.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "optional": true }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", - "dev": true, - "optional": true + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "optional": true, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, "requires": { - "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" + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "form-data": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz", - "integrity": "sha1-bwrrrcxdoWwT4ezBETfYX5uIOyU=", - "dev": true, - "optional": true, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true, - "optional": true, + "extglob": { + "version": "2.0.4", + "bundled": true, "requires": { - "chalk": "1.1.3", - "commander": "2.15.0", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } } }, - "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", - "dev": true, - "optional": true + "fill-range": { + "version": "4.0.0", + "bundled": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "qs": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", - "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", - "dev": true, - "optional": true + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } }, - "request": { - "version": "2.75.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.75.0.tgz", - "integrity": "sha1-0rgmiihtoT6qXQGt9dGMyQ9lfZM=", - "dev": true, - "optional": true, + "find-up": { + "version": "2.1.0", + "bundled": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "bl": "1.1.2", - "caseless": "0.11.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.0.0", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "node-uuid": "1.4.8", - "oauth-sign": "0.8.2", - "qs": "6.2.3", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3" + "locate-path": "^2.0.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "optional": true + "for-in": { + "version": "1.0.2", + "bundled": true }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true, - "optional": true - } - } - }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "requires": { - "js-tokens": "3.0.2" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lru-cache": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", - "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=" - }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "dev": true, - "requires": { - "vlq": "0.2.3" - } - }, - "mailcomposer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz", - "integrity": "sha1-DhxEsqB890DuF9wUm6AJ8Zyt/rQ=", - "dev": true, - "optional": true, - "requires": { - "buildmail": "4.0.1", - "libmime": "3.0.0" - } - }, - "mailgun-js": { - "version": "0.7.15", - "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.7.15.tgz", - "integrity": "sha1-7jZqINrGTDwVwD1sGz4O15UlKrs=", - "dev": true, - "optional": true, - "requires": { - "async": "2.1.5", - "debug": "2.2.0", - "form-data": "2.1.4", - "inflection": "1.10.0", - "is-stream": "1.1.0", - "path-proxy": "1.0.0", - "proxy-agent": "2.0.0", - "q": "1.4.1", - "tsscmp": "1.0.5" - }, - "dependencies": { - "async": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz", - "integrity": "sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=", - "dev": true, - "optional": true, + "foreground-child": { + "version": "1.5.6", + "bundled": true, "requires": { - "lodash": "4.17.5" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "optional": true, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, "requires": { - "ms": "0.7.1" + "map-cache": "^0.2.2" } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true, - "optional": true - } - } - }, - "make-dir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", - "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", - "requires": { - "pify": "3.0.0" - } - }, - "make-error": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", - "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==" - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "1.0.1" - } - }, - "markdown-loader": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/markdown-loader/-/markdown-loader-2.0.2.tgz", - "integrity": "sha512-v/ej7DflZbb6t//3Yu9vg0T+sun+Q9EoqggifeyABKfvFROqPwwwpv+hd1NKT2QxTRg6VCFk10IIJcMI13yCoQ==", - "requires": { - "loader-utils": "1.1.0", - "marked": "0.3.19" - } - }, - "marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==" - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true + }, + "glob": { + "version": "7.1.2", + "bundled": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "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" } - } - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "1.2.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.5" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "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": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "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": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "0.1.1" - } - }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "requires": { - "concat-stream": "1.6.1", - "duplexify": "3.5.4", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.2", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, "requires": { - "is-plain-object": "2.0.4" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": ">=0.0.4" + } + } } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mobx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.1.0.tgz", - "integrity": "sha1-5KlnnNr74hWyDjLvk6cDGEWz8a8=" - }, - "mobx-angular": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mobx-angular/-/mobx-angular-3.0.1.tgz", - "integrity": "sha512-PoEUEw74LoR7Ib6iGGCqvw8xMlmA/Zr5/0TVyhshq4kuzA8pHdvtCiE5AeyRK0w4LhyS7J0Qt0GboTgdhuys+A==" - }, - "moment": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz", - "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "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": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "requires": { - "duplexer2": "0.0.2" - }, - "dependencies": { - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, "requires": { - "readable-stream": "1.1.14" + "isobject": "^3.0.1" } }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true + }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "version": "1.0.0", + "bundled": true }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "append-transform": "^0.4.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "optional": true - }, - "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "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-odd": "2.0.0", - "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": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "istanbul-lib-instrument": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + } + } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "3.2.3", + "bundled": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "bundled": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "bundled": true, + "requires": { + "handlebars": "^4.0.3" + } }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "ncname": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", - "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", - "requires": { - "xml-char-classes": "1.0.0" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "neo-async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", - "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==" - }, - "netmask": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", - "dev": true, - "optional": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "ng-multiselect-dropdown": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ng-multiselect-dropdown/-/ng-multiselect-dropdown-0.1.3.tgz", - "integrity": "sha512-N4MTqtcEwIQYOPB8LDer6eylo9uGmpNUrAS99HPYz9LTbupEiPkh/V87nsQmaenkiPndHXDbQhpa3/DSLcj+ew==" - }, - "ng2-bootstrap-modal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ng2-bootstrap-modal/-/ng2-bootstrap-modal-1.0.1.tgz", - "integrity": "sha1-8xZvymP9Ozrqyym41eO4cqtqseQ=" - }, - "ngx-bootstrap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-2.0.3.tgz", - "integrity": "sha512-SdtOQeQrT2BW5mUbzotZF8S55QaAYOBT7orrl2Pi/U5mCVH4U7YJIaN7yNzMfjGsYINmBOSY8Zi1MBUC1UzbWg==" - }, - "ngx-contextmenu": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/ngx-contextmenu/-/ngx-contextmenu-4.1.2.tgz", - "integrity": "sha512-y8Q4txpzEIAgd6BqZCZQmEM0zlubfWZh/AU3Y5O2Xx+qF1hA2cYWNJZo/msqiK8ACpJ5xkAmBAs2O7nqqP0wiQ==" - }, - "ngx-datatable": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ngx-datatable/-/ngx-datatable-1.0.3.tgz", - "integrity": "sha1-nvmRWqAZ6Zg6qOOJe2H0APL9adU=" - }, - "ngx-moment": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ngx-moment/-/ngx-moment-2.0.0.tgz", - "integrity": "sha512-KVTiKeSbrnTTVVtEGvC/7cqN+SCTWtbFYcRP+o0gudOPOYPS35rjIRHygADSFWoq5XqctUr5tC4/ZsWv3vJDRw==", - "requires": { - "moment": "2.22.1", - "tslib": "1.9.0" - } - }, - "ngx-tooltip": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/ngx-tooltip/-/ngx-tooltip-0.0.9.tgz", - "integrity": "sha1-mCFpPn2RxX2ugYnF1qgQUmiQtvY=" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "1.1.4" - } - }, - "node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", - "requires": { - "minimatch": "3.0.4" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" - } - }, - "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=", - "dev": true - }, - "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "optional": true, + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": 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" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true + } + } + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, "requires": { - "abbrev": "1.1.1" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true - } - } - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "requires": { - "assert": "1.4.1", - "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": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.5", - "stream-browserify": "2.0.1", - "stream-http": "2.8.1", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.6", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - } - }, - "node-modules-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-modules-path/-/node-modules-path-1.0.1.tgz", - "integrity": "sha1-QAlrCM560OoUaAhjr0ScfHWl0cg=", - "dev": true - }, - "node-sass": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", - "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", - "dev": true, - "optional": true, - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.2", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.10.0", - "node-gyp": "3.6.2", - "npmlog": "4.1.2", - "request": "2.79.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "map-cache": { + "version": "0.2.2", + "bundled": true }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", - "dev": true, - "optional": true + "map-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "object-visit": "^1.0.0" + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, + "md5-hex": { + "version": "1.3.0", + "bundled": true, "requires": { - "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" + "md5-o-matic": "^0.1.1" } }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true, - "optional": true, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, "requires": { - "chalk": "1.1.3", - "commander": "2.15.0", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" + "mimic-fn": "^1.0.0" } }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true, - "optional": true + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "dev": true, - "optional": true, + "micromatch": { + "version": "3.1.10", + "bundled": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.11.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3", - "uuid": "3.2.1" + "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" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "mimic-fn": { + "version": "1.2.0", + "bundled": true }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true, - "optional": true - } - } - }, - "nodemailer": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz", - "integrity": "sha1-8kLmSa7q45tsftdA73sGHEBNMPk=", - "dev": true, - "optional": true, - "requires": { - "libmime": "3.0.0", - "mailcomposer": "4.0.1", - "nodemailer-direct-transport": "3.3.2", - "nodemailer-shared": "1.1.0", - "nodemailer-smtp-pool": "2.8.2", - "nodemailer-smtp-transport": "2.7.2", - "socks": "1.1.9" - }, - "dependencies": { - "socks": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz", - "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=", - "dev": true, - "optional": true, + "minimatch": { + "version": "3.0.4", + "bundled": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "brace-expansion": "^1.1.7" } - } - } - }, - "nodemailer-direct-transport": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz", - "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=", - "dev": true, - "optional": true, - "requires": { - "nodemailer-shared": "1.1.0", - "smtp-connection": "2.12.0" - } - }, - "nodemailer-fetch": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", - "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=", - "dev": true - }, - "nodemailer-shared": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", - "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=", - "dev": true, - "requires": { - "nodemailer-fetch": "1.6.0" - } - }, - "nodemailer-smtp-pool": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz", - "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=", - "dev": true, - "optional": true, - "requires": { - "nodemailer-shared": "1.1.0", - "nodemailer-wellknown": "0.1.10", - "smtp-connection": "2.12.0" - } - }, - "nodemailer-smtp-transport": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz", - "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=", - "dev": true, - "optional": true, - "requires": { - "nodemailer-shared": "1.1.0", - "nodemailer-wellknown": "0.1.10", - "smtp-connection": "2.12.0" - } - }, - "nodemailer-wellknown": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz", - "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=", - "dev": true - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "requires": { - "boolbase": "1.0.0" - } - }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", - "dev": true - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": 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-odd": "^2.0.0", + "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" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, "requires": { - "kind-of": "3.2.2" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "npm-run-path": { + "version": "2.0.2", + "bundled": true, "requires": { - "kind-of": "3.2.2" + "path-key": "^2.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "^0.1.0" + } } } - } - } - }, - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "object.entries": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", - "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0", - "function-bind": "1.1.1", - "has": "1.0.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "object.values": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0", - "function-bind": "1.1.1", - "has": "1.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "1.2.0" - } - }, - "opn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", - "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true - }, - "ora": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", - "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-spinners": "0.1.2", - "object-assign": "4.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, + "object-visit": { + "version": "1.0.1", + "bundled": true, "requires": { - "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" + "isobject": "^3.0.0" } }, - "cli-cursor": { + "object.pick": { + "version": "1.3.0", + "bundled": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, "requires": { - "restore-cursor": "1.0.1" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, - "onetime": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "p-finally": { + "version": "1.0.0", + "bundled": true }, - "restore-cursor": { + "p-limit": { + "version": "1.2.0", + "bundled": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "pinkie": "^2.0.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "original": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", - "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", - "requires": { - "url-parse": "1.0.5" - }, - "dependencies": { - "url-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", - "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "pkg-dir": { + "version": "1.0.0", + "bundled": true, "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } } - } - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "1.2.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "pac-proxy-agent": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz", - "integrity": "sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ==", - "dev": true, - "optional": true, - "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "get-uri": "2.0.1", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "pac-resolver": "2.0.0", - "raw-body": "2.3.2", - "socks-proxy-agent": "2.1.1" - } - }, - "pac-resolver": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz", - "integrity": "sha1-mbiNLxk/ve78HJpSnB8yYKtSd80=", - "dev": true, - "optional": true, - "requires": { - "co": "3.0.6", - "degenerator": "1.0.4", - "ip": "1.0.1", - "netmask": "1.0.6", - "thunkify": "2.1.2" - }, - "dependencies": { - "co": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/co/-/co-3.0.6.tgz", - "integrity": "sha1-FEXyJsXrlWE45oyawwFn6n0ua9o=", - "dev": true, - "optional": true }, - "ip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz", - "integrity": "sha1-x+NWzeoiWucbNtcPLnGpK6TkJZA=", - "dev": true, - "optional": true - } - } - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "2.3.2" - } - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "1.3.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, - "path-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz", - "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=", - "dev": true, - "optional": true, - "requires": { - "inflection": "1.3.8" - }, - "dependencies": { - "inflection": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz", - "integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4=", - "dev": true, - "optional": true - } - } - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", - "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true - }, - "phantomjs-prebuilt": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", - "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", - "dev": true, - "requires": { - "es6-promise": "4.2.4", - "extract-zip": "1.6.6", - "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.3.0" - }, - "dependencies": { - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, "requires": { - "graceful-fs": "4.1.11" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } } - } - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "2.1.0" - } - }, - "portfinder": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true, - "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "6.0.20", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.20.tgz", - "integrity": "sha512-Opr6usW30Iy0xEDrJywDckRxtylfO7gTGs3Kfb2LdLQlGsUg89fTy0R3Vm1Dub2YHO7MK58avr0p70+uFFHb7A==", - "requires": { - "chalk": "2.3.2", - "source-map": "0.6.1", - "supports-color": "5.3.0" - }, - "dependencies": { - "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "repeat-element": { + "version": "1.1.2", + "bundled": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "repeat-string": { + "version": "1.6.1", + "bundled": true }, - "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true + }, + "ret": { + "version": "0.1.15", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, "requires": { - "has-flag": "3.0.0" + "align-text": "^0.1.1" } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, "requires": { - "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" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "^0.1.0" + } } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "shebang-command": { + "version": "1.2.0", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "shebang-regex": "^1.0.0" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } - } - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, "requires": { - "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" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "kind-of": "^3.2.0" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "source-map": { + "version": "0.5.7", + "bundled": true + }, + "source-map-resolve": { + "version": "0.5.2", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "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" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } - } - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "spdx-correct": { + "version": "3.0.0", + "bundled": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "extend-shallow": "^3.0.0" } - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "static-extend": { + "version": "0.1.2", + "bundled": true, "requires": { - "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" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "^0.1.0" + } } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "string-width": { + "version": "2.1.1", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "strip-ansi": { + "version": "4.0.0", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "ansi-regex": "^3.0.0" } - } - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "strip-bom": { + "version": "2.0.0", + "bundled": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "is-utf8": "^0.2.0" } }, - "has-flag": { + "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "bundled": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "to-object-path": { + "version": "0.3.0", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "kind-of": "^3.0.2" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "to-regex": { + "version": "3.0.2", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } - } - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, "requires": { - "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" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "union-value": { + "version": "1.0.0", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "unset-value": { + "version": "1.0.0", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true + } } - } - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "urix": { + "version": "0.1.0", + "bundled": true + }, + "use": { + "version": "3.1.0", + "bundled": true, "requires": { - "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" + "kind-of": "^6.0.2" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "kind-of": { + "version": "6.0.2", + "bundled": true } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "which": { + "version": "1.3.1", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "isexe": "^2.0.0" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } - } - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "yargs": { + "version": "11.1.0", + "bundled": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.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", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "^4.1.0" + } + } } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "yargs-parser": { + "version": "8.1.0", + "bundled": true, "requires": { - "has-flag": "1.0.0" + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } } } } }, - "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "is-descriptor": "^0.1.0" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "kind-of": "^3.0.2" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { - "has-flag": "1.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } } } }, - "postcss-flexbugs-fixes": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.0.tgz", - "integrity": "sha512-15JauG6a2hu2XZHdB9BaOwCLrI9oyK2UB8kt1ToTGdP1Pd3BQ/TJI9tNiTALntll25/66xMLUIyUPA9w/3BLtg==", + "object-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, "requires": { - "postcss": "6.0.20" + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, - "postcss-import": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", - "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "postcss": "6.0.20", - "postcss-value-parser": "3.3.0", - "read-cache": "1.0.0", - "resolve": "1.5.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1", - "postcss-load-options": "1.2.0", - "postcss-load-plugins": "2.3.0" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, - "postcss-load-plugins": { + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "ee-first": "1.1.1" } }, - "postcss-loader": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.2.tgz", - "integrity": "sha512-Hf7gcgJKlJivXZAMprvVq6m6t7lZSkiih4Sa7cOoCd8sEHGMnH/Yc0CbWT2cL1ag+XEKh6nsdpgF6yNHplpa9Q==", + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "onap-ui-angular": { + "version": "5.1.71", + "resolved": "https://registry.npmjs.org/onap-ui-angular/-/onap-ui-angular-5.1.71.tgz", + "integrity": "sha512-CMIJKE2Kx4Y85/DXG7svbUymGjXXJ2qKiInXuXTs1MrDTpKur9ksx/l1I8/AAFx5rOuXFEHM6uSAChXjR0OPQQ==", + "dev": true, "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.20", - "postcss-load-config": "1.2.0", - "schema-utils": "0.4.5" + "angular-base64-upload": "^0.1.23", + "core-js": "^2.5.7", + "onap-ui-common": "^1.0.86", + "rxjs-compat": "^6.2.0" } }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "onap-ui-common": { + "version": "1.0.86", + "resolved": "https://registry.npmjs.org/onap-ui-common/-/onap-ui-common-1.0.86.tgz", + "integrity": "sha512-27Mvn67/3LdpEUN9ihCrdNmmLWgEChWd5mtPGIS9N2Rcuhoy5naA4Fncut1NkLyFJJJ5B/HAg8+7AHIY1OqXdQ==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "wrappy": "1" } }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" } }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "1.0.30000827", - "electron-to-chromium": "1.3.39" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "opn": { + "version": "5.3.0", + "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" } }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "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" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { + "wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" } } }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" }, "dependencies": { "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" + "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" } - } - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "restore-cursor": "^1.0.1" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true } } }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "optional": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "^1.0.0" } }, - "postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "requires": { - "postcss": "6.0.20" + "p-limit": "^1.1.0" } }, - "postcss-modules-local-by-default": { + "p-map": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.20" - } + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.20" - } + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.20" - } + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "requires": { - "postcss": "5.2.18" + "pacote": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.1.1.tgz", + "integrity": "sha512-f28Rq5ozzKAA9YwIKw61/ipwAatUZseYmVssDbHHaexF0wRIVotapVEZPAjOT7Eu3LYVqEp0NVpNizoAnYBUaA==", + "dev": true, + "requires": { + "bluebird": "^3.5.2", + "cacache": "^11.2.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.1.0", + "npm-registry-fetch": "^3.8.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.6", + "unique-filename": "^1.1.1", + "which": "^1.3.1" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, "requires": { - "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" + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "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.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "pump": "^3.0.0" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, "requires": { - "has-flag": "1.0.0" + "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" } - } - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, "requires": { - "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" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "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" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "requires": { - "has-flag": "1.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } - } - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "figgy-pudding": "^3.5.1" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "tar": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", + "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "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" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { - "has-flag": "1.0.0" + "isexe": "^2.0.0" } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true } } }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "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" + } + }, + "parse-diff": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/parse-diff/-/parse-diff-0.3.2.tgz", + "integrity": "sha1-QH1sHmzKs4e8aU6KWN38iJiamhs=" + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "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" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "optional": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "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" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "pidtree": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", + "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "pinkie": "^2.0.0" } }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "node-modules-regexp": "^1.0.0" } }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "pngjs": "^3.0.0" } }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "find-up": "^2.1.0" } }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "pkginfo": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz", + "integrity": "sha1-NJ27f/04CB/K3AhT32h/DHdEzWU=" + }, + "please-upgrade-node": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", + "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "dev": true, "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } + "semver-compare": "^1.0.0" } }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "pngjs": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz", + "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q==" + }, + "point-in-polygon": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.0.1.tgz", + "integrity": "sha1-1Ztk6P7kHElFiqyCtWcYxZV7Kvc=" + }, + "portfinder": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", + "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", + "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true } } }, - "postcss-url": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.3.1.tgz", - "integrity": "sha512-Ya5KIjGptgz0OtrVYfi2UbLxVAZ6Emc4Of+Grx4Sf1deWlRpFwLr8FrtkUxfqh+XiZIVkXbjQrddE10ESpNmdA==", - "dev": true, - "requires": { - "mime": "1.6.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "postcss": "6.0.20", - "xxhashjs": "0.2.2" - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "postcss": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz", + "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==", + "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.5.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, "requires": { - "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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^3.0.0" } } } }, + "postcss-import": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.0.tgz", + "integrity": "sha512-3KqKRZcaZAvxbY8DVLdd81tG5uKzbUQuiWIvy0o0fzEC42bKacqPYFWbfCQyw6L4LWUaqPz/idvIdbhpgQ32eQ==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", + "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "dev": true, + "requires": { + "cosmiconfig": "^4.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", @@ -13396,29 +25440,115 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "prettier": { + "version": "1.16.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", + "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", + "dev": true + }, + "pretty-format": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.0.0.tgz", + "integrity": "sha512-LszZaKG665djUcqg5ZQq+XzezHLKrxsA86ZABTozp+oNhkdqa+tG2dX4qa6ERl5c/sRDrAa3lHmwnvKoP+OG/g==", + "dev": true, + "requires": { + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "dev": true + } + } + }, + "pretty-quick": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.10.0.tgz", + "integrity": "sha512-uNvm2N3UWmnZRZrClyQI45hIbV20f5BpSyZY51Spbvn4APp9+XLyX4bCjWRGT3fGyVyQ/2/iw7dbQq1UUaq7SQ==", + "dev": true, "requires": { - "renderkid": "2.0.1", - "utila": "0.4.0" + "chalk": "^2.3.0", + "execa": "^0.8.0", + "find-up": "^2.1.0", + "ignore": "^3.3.7", + "mri": "^1.1.0", + "multimatch": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "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" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true }, "progress": { "version": "1.1.8", @@ -13431,218 +25561,104 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true }, - "promise.prototype.finally": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz", - "integrity": "sha512-7p/K2f6dI+dM8yjRQEGrTQs5hTQixUAdOGpMEA3+pVxpX5oHKRSKAXyLw9Q9HUWDTdwtoo39dSHGQtN90HcEwQ==", + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0", - "function-bind": "1.1.1" + "err-code": "^1.0.0", + "retry": "^0.10.0" } }, - "prop-types": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", - "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", + "prompts": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.0.3.tgz", + "integrity": "sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ==", + "dev": true, "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "kleur": "^3.0.2", + "sisteransi": "^1.0.0" } }, - "protractor": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.1.2.tgz", - "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=", + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", "dev": true, "requires": { - "@types/node": "6.0.60", - "@types/q": "0.0.32", - "@types/selenium-webdriver": "2.53.43", - "blocking-proxy": "0.0.5", - "chalk": "1.1.3", - "glob": "7.1.2", - "jasmine": "2.99.0", - "jasminewd2": "2.2.0", - "optimist": "0.6.1", - "q": "1.4.1", - "saucelabs": "1.3.0", - "selenium-webdriver": "3.0.1", - "source-map-support": "0.4.18", - "webdriver-js-extender": "1.0.0", - "webdriver-manager": "12.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - } - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "webdriver-manager": { - "version": "12.0.6", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.0.6.tgz", - "integrity": "sha1-PfGkgZdwELTL+MnYXHpXeCjA5ws=", - "dev": true, - "requires": { - "adm-zip": "0.4.7", - "chalk": "1.1.3", - "del": "2.2.2", - "glob": "7.1.2", - "ini": "1.3.5", - "minimist": "1.2.0", - "q": "1.4.1", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.5.0", - "xml2js": "0.4.19" - } - } + "genfun": "^5.0.0" } }, "proxy-addr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", - "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.6.0" - } - }, - "proxy-agent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz", - "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, - "optional": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "lru-cache": "2.6.5", - "pac-proxy-agent": "1.1.0", - "socks-proxy-agent": "2.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", - "integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U=", - "dev": true, - "optional": true - } + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" } }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "dev": true }, "public-encrypt": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, "requires": { - "duplexify": "3.5.4", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { @@ -13650,73 +25666,39 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, "qs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true }, "querystringify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", - "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=" - }, - "radium": { - "version": "0.19.6", - "resolved": "https://registry.npmjs.org/radium/-/radium-0.19.6.tgz", - "integrity": "sha512-IABYntqCwYelUUIwA52maSCgJbqtJjHKIoD21wgpw3dGhIUbJ5chDShDGdaFiEzdF03hN9jfQqlmn0bF4YhfrQ==", - "requires": { - "array-find": "1.0.0", - "exenv": "1.2.2", - "inline-style-prefixer": "2.0.5", - "prop-types": "15.6.1" - }, - "dependencies": { - "inline-style-prefixer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz", - "integrity": "sha1-wVPH6I/YT+9cYC6VqBaLJ3BnH+c=", - "requires": { - "bowser": "1.9.3", - "hyphenate-style-name": "1.0.2" - } - } - } + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", + "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", + "dev": true + }, + "quickselect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", + "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" }, "ramda": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=" + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", + "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "dev": true }, "randomatic": { "version": "1.1.7", @@ -13724,8 +25706,8 @@ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "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": { @@ -13734,7 +25716,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13743,269 +25725,100 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.1" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - } - }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "react": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", - "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", - "requires": { - "create-react-class": "15.6.3", - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.1" - } - }, - "react-dev-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-5.0.1.tgz", - "integrity": "sha512-+y92rG6pmXt3cpcg/NGmG4w/W309tWNSmyyPL8hCMxuCSg2UP/hUg3npACj2UZc8UKVSXexyLrCnxowizGoAsw==", - "requires": { - "address": "1.0.3", - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "cross-spawn": "5.1.0", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.5.11", - "global-modules": "1.0.0", - "gzip-size": "3.0.0", - "inquirer": "3.3.0", - "is-root": "1.0.0", - "opn": "5.2.0", - "react-error-overlay": "4.0.0", - "recursive-readdir": "2.2.1", - "shell-quote": "1.6.1", - "sockjs-client": "1.1.4", - "strip-ansi": "3.0.1", - "text-table": "0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.2", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "opn": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", - "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", - "requires": { - "is-wsl": "1.1.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "react-docgen": { - "version": "3.0.0-beta9", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-3.0.0-beta9.tgz", - "integrity": "sha512-3UqwxygAP/eZdDtOKum6vClKWUlceZ7RBVQ3Fe122l1WBYOqHcBzoUZIwN8feaLVo+s2eB/q+NkBfanLgvmt+w==", - "requires": { - "async": "2.6.0", - "babel-runtime": "6.26.0", - "babylon": "7.0.0-beta.31", - "commander": "2.15.0", - "doctrine": "2.1.0", - "node-dir": "0.1.17", - "recast": "0.12.9" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.31", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.31.tgz", - "integrity": "sha512-6lm2mV3S51yEnKmQQNnswoABL1U1H1KHoCCVwdwI3hvIv+W7ya4ki7Aw4o4KxtUHjNKkK5WpZb22rrMMOcJXJQ==" + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, - "react-dom": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", - "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", - "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.1" - } - }, - "react-error-overlay": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.0.tgz", - "integrity": "sha512-FlsPxavEyMuR6TjVbSSywovXSEyOg6ZDj5+Z8nbsRl9EkOzAhEIcS+GLoQDC5fz/t9suhUXWmUrOBrgeUvrMxw==" - }, - "react-fuzzy": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-fuzzy/-/react-fuzzy-0.5.2.tgz", - "integrity": "sha512-qIZZxaCheb/HhcBi5fABbiCFg85+K5r1TCps1D4uaL0LAMMD/1zm/x1/kNR130Tx7nnY9V7mbFyY0DquPYeLAw==", - "requires": { - "babel-runtime": "6.26.0", - "classnames": "2.2.5", - "fuse.js": "3.2.0", - "prop-types": "15.6.1" - } - }, - "react-html-attributes": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/react-html-attributes/-/react-html-attributes-1.4.1.tgz", - "integrity": "sha1-l7XscQ2miDNZjIvm+JrENiFoQKU=", - "requires": { - "html-element-attributes": "1.3.0" - } - }, - "react-icon-base": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-icon-base/-/react-icon-base-2.1.0.tgz", - "integrity": "sha1-oZbjP98eeqof2jrvu2i9rZ6Cp50=" - }, - "react-icons": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-2.2.7.tgz", - "integrity": "sha512-0n4lcGqzJFcIQLoQytLdJCE0DKSA9dkwEZRYoGrIDJZFvIT6Hbajx5mv9geqhqFiNjUgtxg8kPyDfjlhymbGFg==", + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, "requires": { - "react-icon-base": "2.1.0" + "safe-buffer": "^5.1.0" } }, - "react-inspector": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-2.3.0.tgz", - "integrity": "sha512-aIcbWb0fKFhEMB+RadoOYawlr1JoMMfrQ1oRgPUG/f/e4zERVJ6nYcIaQmrQmdHCZ63BOqe2cEkoeY0kyLBzNg==", + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "is-dom": "1.0.9" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "react-modal": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.3.2.tgz", - "integrity": "sha512-DLrmPG9PyXWSNA2ve1LttnNRE9Umy3u3awFeK+72dLOksLM+EoTg8Z2h/i/DV3O8ZGvnEhacjAVXdZuRDGvaag==", - "requires": { - "exenv": "1.2.2", - "prop-types": "15.6.1", - "warning": "3.0.0" - } + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true }, - "react-split-pane": { - "version": "0.1.77", - "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.77.tgz", - "integrity": "sha512-xq0PPsbkNI9xEd6yTrGPr7hzf6XfIgnsxuUEdRJELq+kLPHMsO3ymFCjhiYP35wlDPn9W46+rHDsJd7LFYteMw==", + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, "requires": { - "inline-style-prefixer": "3.0.8", - "prop-types": "15.6.1", - "react-style-proptype": "3.2.1" + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, - "react-style-proptype": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.1.tgz", - "integrity": "sha512-Z02QsgmdZ4wYNxJsHhNGGZsIF8+MO93fYmdPaC+ljdqX3rq8tl/fSMXOGBbofGJNzq5W/2LFcONllmV6vzyYHA==", - "requires": { - "prop-types": "15.6.1" - } + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true }, - "react-transition-group": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", - "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", + "rbush": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", + "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", "requires": { - "chain-function": "1.0.0", - "dom-helpers": "3.3.1", - "loose-envify": "1.3.1", - "prop-types": "15.6.1", - "warning": "3.0.0" + "quickselect": "^1.0.1" } }, - "react-treebeard": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-treebeard/-/react-treebeard-2.1.0.tgz", - "integrity": "sha512-unoy8IJL1NR5jgTtK+CqOCZKZylh/Tlid0oYajW9bLZCbFelxzmCsF8Y2hyS6pvHqM4W501oOm5O/jvg3VZCrg==", + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "requires": { - "babel-runtime": "6.26.0", - "deep-equal": "1.0.1", - "prop-types": "15.6.1", - "radium": "0.19.6", - "shallowequal": "0.2.2", - "velocity-react": "1.3.3" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } } }, "read-cache": { @@ -14014,7 +25827,7 @@ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.3.0" }, "dependencies": { "pify": { @@ -14025,15 +25838,23 @@ } } }, + "read-json-sync": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.1.tgz", + "integrity": "sha1-Q8ZproZKrjCN+7snIaZ+KV7I//Y=", + "requires": { + "graceful-fs": "^4.1.2" + } + }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" }, "dependencies": { "path-type": { @@ -14042,9 +25863,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -14061,8 +25882,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -14071,8 +25892,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -14081,7 +25902,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -14090,568 +25911,1339 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "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.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.5", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, - "recast": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.12.9.tgz", - "integrity": "sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A==", + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "dev": true, "requires": { - "ast-types": "0.10.1", - "core-js": "2.4.1", - "esprima": "4.0.0", - "private": "0.1.8", - "source-map": "0.6.1" - }, - "dependencies": { - "ast-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz", - "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "util.promisify": "^1.0.0" } }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, "requires": { - "resolve": "1.5.0" + "resolve": "^1.1.6" } }, - "recursive-readdir": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", - "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "optional": true, "requires": { - "minimatch": "3.0.3" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "redux": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.1.tgz", + "integrity": "sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg==", + "requires": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" }, "dependencies": { - "minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "brace-expansion": "1.1.11" + "js-tokens": "^3.0.0 || ^4.0.0" } } } }, - "redent": { + "redux-observable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redux-observable/-/redux-observable-1.0.0.tgz", + "integrity": "sha512-6bXnpqWTBeLaLQjXHyN1giXq4nLxCmv+SUkdmiwBgvmVxvDbdmydvL1Z7DGo0WItyzI/kqXQKiucUuTxnrPRkA==" + }, + "reflect-metadata": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", + "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", + "dev": true + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", + "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + }, + "dependencies": { + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + } + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "^1.0.1" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, + "request-progress": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz", + "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=", + "dev": true, + "requires": { + "throttleit": "~0.0.2" + } + }, + "request-promise-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", + "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + }, + "dependencies": { + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + } + } + }, + "request-promise-native": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", + "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "dev": true, + "requires": { + "request-promise-core": "1.1.2", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "path-parse": "^1.0.5" } }, - "redis": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", - "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, - "optional": true, "requires": { - "double-ended-queue": "2.1.0-0", - "redis-commands": "1.3.5", - "redis-parser": "2.6.0" + "resolve-from": "^3.0.0" } }, - "redis-commands": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz", - "integrity": "sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==", + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, - "optional": true + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } }, - "redis-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", - "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=", + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, - "optional": true + "requires": { + "align-text": "^0.1.1" + } }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - } + "glob": "^7.0.5" } }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, "requires": { - "balanced-match": "0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - } + "hash-base": "^2.0.0", + "inherits": "^2.0.1" } }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "robust-orientation": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.1.3.tgz", + "integrity": "sha1-2v9bANO+TmByLw6cAVbvln8cIEk=", "requires": { - "lodash": "4.17.5", - "lodash-es": "4.17.8", - "loose-envify": "1.3.1", - "symbol-observable": "1.2.0" + "robust-scale": "^1.0.2", + "robust-subtract": "^1.0.0", + "robust-sum": "^1.0.0", + "two-product": "^1.0.2" } }, - "redux-observable": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/redux-observable/-/redux-observable-0.18.0.tgz", - "integrity": "sha512-tu02n6jr6/bq/vyI9E/AHxIyIl0YsWloqvWqSBG0KqN6aQBujMBP6hlDAlQLj8hP+XQpqL293MLX6V612c0jSg==", + "robust-scale": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz", + "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=", "requires": { - "gitbook-plugin-github": "2.0.0" + "two-product": "^1.0.2", + "two-sum": "^1.0.0" } }, - "reflect-metadata": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", - "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==" + "robust-subtract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz", + "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo=" }, - "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" + "robust-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz", + "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k=" }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "is-promise": "^2.1.0" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "run-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", + "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "aproba": "^1.1.1" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "tslib": "^1.9.0" } }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } + "rxjs-compat": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.3.3.tgz", + "integrity": "sha512-caGN7ixiabHpOofginKEquuHk7GgaCrC7UpUQ9ZqGp80tMc68msadOeP/2AKy2R4YJsT1+TX5GZCtxO82qWkyA==" }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } + "ret": "~0.1.10" } }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, - "remap-istanbul": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/remap-istanbul/-/remap-istanbul-0.9.6.tgz", - "integrity": "sha512-l0WDBsVjaTzP8m3glERJO6bjlAFUahcgfcgvcX+owZw7dKeDLT3CVRpS7UO4L9LfGcMiNsqk223HopwVxlh8Hg==", - "dev": true, - "requires": { - "amdefine": "1.0.1", - "gulp-util": "3.0.7", - "istanbul": "0.4.5", - "minimatch": "3.0.4", - "source-map": "0.6.1", - "through2": "2.0.1" + "sane": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-3.1.0.tgz", + "integrity": "sha512-G5GClRRxT1cELXfdAq7UKtUsv8q/ZC5k8lQGmjEm4HcAl3HzBy68iglyNCmw4+0tiXPCBZntslHlRhbnsSws+Q==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.3", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" }, "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "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" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "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" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.3", + "bundled": true, + "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" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + } } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "readable-stream": "2.0.6", - "xtend": "4.0.1" - } - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", - "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", - "requires": { - "css-select": "1.2.0", - "dom-converter": "0.1.4", - "htmlparser2": "3.3.0", - "strip-ansi": "3.0.1", - "utila": "0.3.3" - }, - "dependencies": { - "utila": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" - } - } - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "1.0.2" - } - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - } - }, - "request-progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", - "dev": true, - "requires": { - "throttleit": "1.0.0" - } - }, - "requestretry": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.13.0.tgz", - "integrity": "sha512-Lmh9qMvnQXADGAQxsXHP4rbgO6pffCfuR8XUBdP9aitJcLQJxhp7YZK4xAVYXnPJ5E52mwrfiKQtKonPL8xsmg==", - "dev": true, - "optional": true, - "requires": { - "extend": "3.0.1", - "lodash": "4.17.5", - "request": "2.81.0", - "when": "3.7.8" - }, - "dependencies": { - "when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", - "dev": true, - "optional": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "requires": { - "path-parse": "1.0.5" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "1.2.0" - } - }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "4.0.8" - } - }, - "rxjs": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz", - "integrity": "sha512-v4Q5HDC0FHAQ7zcBX7T2IL6O5ltl1a2GX4ENjPXg6SjDY69Cmx9v4113C99a4wGF16ClPv5Z8mghuYorVkg/kg==", - "requires": { - "symbol-observable": "1.0.1" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" + "pump": "^3.0.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } } } }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "0.1.15" - } - }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -14659,32 +27251,24 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.5", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" } }, "sass-loader": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", - "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", - "dev": true, - "requires": { - "clone-deep": "2.0.2", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "neo-async": "2.5.0", - "pify": "3.0.0" - } - }, - "saucelabs": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.3.0.tgz", - "integrity": "sha1-0kDoAJ33+ocwbsRXimm6O1xCT+4=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", "dev": true, "requires": { - "https-proxy-agent": "1.0.0" + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" } }, "sax": { @@ -14694,12 +27278,14 @@ "dev": true }, "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, "requires": { - "ajv": "6.3.0", - "ajv-keywords": "3.1.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "scss-tokenizer": { @@ -14709,8 +27295,8 @@ "dev": true, "optional": true, "requires": { - "js-base64": "2.4.3", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" }, "dependencies": { "source-map": { @@ -14720,57 +27306,7 @@ "dev": true, "optional": true, "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "sdc-ui": { - "version": "1.6.29-angular5", - "resolved": "https://registry.npmjs.org/sdc-ui/-/sdc-ui-1.6.29-angular5.tgz", - "integrity": "sha1-lZEY6CCYeamY1bqZaX4bImoK/m8=", - "requires": { - "@angular/animations": "5.2.9", - "@angular/common": "5.2.0", - "@angular/core": "5.2.0", - "@angular/forms": "5.2.0", - "@angular/http": "5.2.0", - "@angular/platform-browser": "5.2.0", - "@angular/platform-browser-dynamic": "5.2.0", - "@angular/upgrade": "5.2.9", - "@storybook/react": "3.4.1", - "http-loader": "0.0.1", - "prop-types": "15.6.1", - "react": "15.6.2", - "react-dom": "15.6.2", - "reflect-metadata": "0.1.12", - "rxjs": "5.4.2", - "svg-react-loader": "0.4.5", - "zone.js": "0.8.19" - }, - "dependencies": { - "@angular/animations": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.9.tgz", - "integrity": "sha512-H/3fMs4PhYjKoA81II6D0PHifDrqlKet2u/EXzUBq3ehXby+N/0GBzqsBYwPeU5pTye7WPFfW+5sgoJpN8Ye6Q==", - "requires": { - "tslib": "1.9.0" - } - }, - "@angular/upgrade": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-5.2.9.tgz", - "integrity": "sha512-R3LwId5J8ynlzDaeD+SFe1HWuxM0Xqg6Ugl3vzxDWDKuzbFCdEsc2ZvhMpASrfs+JPdazANHoFPLrRaeXulWeQ==", - "requires": { - "tslib": "1.9.0" - } - }, - "rxjs": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.2.tgz", - "integrity": "sha1-KjI2/L8D31e64G/Wly/ZnlwI/Pc=", - "requires": { - "symbol-observable": "1.2.0" + "amdefine": ">=0.0.4" } } } @@ -14781,36 +27317,13 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, - "selenium-webdriver": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz", - "integrity": "sha1-ot6l2kqX9mcuiefKcnbO+jZRR6c=", - "dev": true, - "requires": { - "adm-zip": "0.4.7", - "rimraf": "2.6.2", - "tmp": "0.0.30", - "xml2js": "0.4.19" - }, - "dependencies": { - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - } - } - }, "selfsigned": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz", - "integrity": "sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=", + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", + "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", "dev": true, "requires": { - "node-forge": "0.7.1" + "node-forge": "0.7.5" } }, "semver": { @@ -14818,74 +27331,64 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, "semver-dsl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.3.0" } }, "semver-intersect": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.3.1.tgz", - "integrity": "sha1-j6hKnhAovSOeRTDRo+GB5pjYhLo=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.0" } }, "send": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "mime": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true } } }, "serialize-javascript": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz", - "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=" - }, - "serve-favicon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", - "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", - "requires": { - "etag": "1.8.1", - "fresh": "0.5.2", - "ms": "2.1.1", - "parseurl": "1.3.2", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.0.tgz", + "integrity": "sha512-AQxrNqu4EXWt03dJdgKXI+Au9+pvEuM5+Nk5g6+TmuxMCkEL03VhZ31HM+VKeaaZbFpDHaoSruiHq4PW9AIrOQ==", + "dev": true }, "serve-index": { "version": "1.9.1", @@ -14893,53 +27396,58 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.18", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" } }, "serve-static": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true }, "set-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -14947,20 +27455,23 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true }, "sha.js": { "version": "2.4.10", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", + "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shallow-clone": { @@ -14969,9 +27480,9 @@ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", "dev": true, "requires": { - "is-extendable": "0.1.1", - "kind-of": "5.1.0", - "mixin-object": "2.0.1" + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" }, "dependencies": { "kind-of": { @@ -14982,70 +27493,270 @@ } } }, - "shallowequal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", - "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", - "requires": { - "lodash.keys": "3.1.2" - } - }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "shell-quote": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" } }, "shelljs": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", - "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "dev": true, "requires": { - "glob": "7.1.2", - "interpret": "1.1.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, - "silent-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", - "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", - "dev": true, - "requires": { - "debug": "2.6.9" + "sisteransi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.0.tgz", + "integrity": "sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ==", + "dev": true + }, + "skmeans": { + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", + "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==" + }, + "sl-browser-agent": { + "version": "1.0.170", + "resolved": "https://registry.npmjs.org/sl-browser-agent/-/sl-browser-agent-1.0.170.tgz", + "integrity": "sha512-roB2ZAf10LuSdMUBVCfOPoFH6DGId8zuO/UW2Wl7ZlaLkhS/bfOB9vFaGR01UnT9UxK86V+H6mI/Ix0JukSXpw==", + "requires": { + "source-map": "^0.5.6" + } + }, + "sl-cia": { + "version": "2.1.274", + "resolved": "https://registry.npmjs.org/sl-cia/-/sl-cia-2.1.274.tgz", + "integrity": "sha512-UzoNc9vInZPMVpQA1Zq3/iNFZNm5sDfj/RhInAc8Xrb5VWAjxMNsOYML3go7yqxVng5yQ504uYfHpXjYKEyYdw==", + "requires": { + "ast-traverse": "^0.1.1", + "async": "^2.6.0", + "babel-generator": "^6.25.0", + "babylon": "^6.17.4", + "bunyan": "^1.8.4", + "bunyan-blackhole": "^1.1.1", + "bunyan-format": "^0.2.1", + "escodegen": "^1.9.0", + "esprima": "^4.0.0", + "fileset": "^2.0.3", + "glob": "^5.0.15", + "is-valid-path": "^0.1.1", + "istanbul-lib-instrument": "^1.9.1", + "jwt-decode": "^2.1.0", + "md5": "^2.0.0", + "mkdirp": "^0.5.1", + "nopt": "^3.0.4", + "nopt-usage": "^0.1.0", + "once": "^1.4.0", + "parse-diff": "^0.3.0", + "promise": "^7.0.4", + "read-json-sync": "^1.1.0", + "sl-esprima-ast-utils": "^0.0.7", + "sl-js-infra": "^1.0.115", + "source-map": "^0.5.7", + "util": "^0.10.3", + "uuid": "^2.0.1" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" + } } }, - "slack-node": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz", - "integrity": "sha1-3kuN3aqLeT9h29KTgQT9q/N9+jA=", - "dev": true, - "optional": true, + "sl-esprima-ast-utils": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sl-esprima-ast-utils/-/sl-esprima-ast-utils-0.0.7.tgz", + "integrity": "sha1-N76P/OEry3x/0zBBG855rz3y0mg=", "requires": { - "requestretry": "1.13.0" + "archy": "^1.0.0", + "cssauron-falafel": "^1.2.1", + "esprima": "^3.1.3" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, + "sl-js-infra": { + "version": "1.0.119", + "resolved": "https://registry.npmjs.org/sl-js-infra/-/sl-js-infra-1.0.119.tgz", + "integrity": "sha512-3MlitHbJ32cjNE4nrqhAoKRzsAxpBuuvRSs+lCi3/ry34vlndjYFE6pReqb+MChc2qvBmXVycL3wUq08DMghPg==", + "requires": { + "@types/bunyan": "0.0.36", + "@types/request": "^0.0.45", + "@types/uuid": "^3.4.3", + "bunyan": "^1.8.4", + "bunyan-format": "^0.2.1", + "find-up": "^3.0.0", + "gitignore-parser": "0.0.2", + "jwt-decode": "^2.2.0", + "request": "^2.80.0", + "source-map": "^0.6.1", + "uuid": "^3.1.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "sl-node": { + "version": "2.0.122", + "resolved": "https://registry.npmjs.org/sl-node/-/sl-node-2.0.122.tgz", + "integrity": "sha512-k9p43lfm3AwNt4L1hfedd/0wdzlFiM0Loxwi+hGcz4WBqwGBBtaPXdArAyk3FK4+s+wuo6HWmEx/1/0n3lh6zg==", + "requires": { + "async": "^2.1.4", + "bunyan": "^1.8.10", + "bunyan-format": "^0.2.1", + "commander": "^2.9.0", + "jwt-decode": "^2.2.0", + "needle": "^1.0.0", + "nopt": "^3.0.4", + "nopt-usage": "^0.1.0", + "promise": "^7.0.4", + "shell-quote": "^1.6.1" + }, + "dependencies": { + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + } + } + }, + "sl-node-mocha": { + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/sl-node-mocha/-/sl-node-mocha-1.0.27.tgz", + "integrity": "sha1-V5DbaYtbfJCZi8x1f+T9htuEIh8=" + }, + "sl-node-mocha2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/sl-node-mocha2/-/sl-node-mocha2-2.0.1.tgz", + "integrity": "sha1-kJJcQZ2vN2apwth0T06m4Ms24to=" + }, + "sl-node2": { + "version": "3.0.165", + "resolved": "https://registry.npmjs.org/sl-node2/-/sl-node2-3.0.165.tgz", + "integrity": "sha512-tStrBzldG++sMeY06/mWVmmkywwDNcy4hTrHC4x0Wnm/SGiOJ4F2kMRAB8IBn0KHrtzoG/36US7tFoB6W4xdMw==", + "requires": { + "@types/jwt-decode": "^1.4.28", + "@types/request": "^0.0.45", + "bunyan": "^1.8.8", + "bunyan-format": "^0.2.1", + "commander": "^2.9.0", + "cookie": "^0.3.1", + "jwt-decode": "^2.1.0", + "nyc": "^12.0.1", + "object-assign": "^4.1.1", + "promise": "^7.0.4", + "request": "^2.80.0", + "shell-quote": "^1.6.1", + "sl-js-infra": "^1.0.114" } }, "slash": { @@ -15060,67 +27771,95 @@ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", "dev": true }, + "slnodejs": { + "version": "2.1.124", + "resolved": "https://registry.npmjs.org/slnodejs/-/slnodejs-2.1.124.tgz", + "integrity": "sha512-qR5hhUXjVdcwVMo/WdCIvuLaEaAmhNtCkMtY7/NMaA8nDckShQt0y6sw/L8MiKQXzFbQaJNTjumUhEwZlpR2wg==", + "requires": { + "@types/sinon": "^2.3.3", + "bunyan": "^1.8.8", + "bunyan-format": "^0.2.1", + "commander": "^2.9.0", + "convert-source-map": "^1.4.0", + "esprima": "^4.0.0", + "jwt-decode": "^2.1.0", + "loader-utils": "^1.1.0", + "object-assign": "^4.1.1", + "rimraf": "^2.6.2", + "semver": "^5.3.0", + "sl-browser-agent": "1.0.170", + "sl-cia": "2.1.274", + "sl-js-infra": "^1.0.113", + "sl-node": "^2.0.122", + "sl-node-mocha": "^1.0.25", + "sl-node-mocha2": "^2.0.0", + "sl-node2": "^3.0.163", + "version-exists": "0.0.3" + }, + "dependencies": { + "@types/sinon": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-2.3.7.tgz", + "integrity": "sha512-w+LjztaZbgZWgt/y/VMP5BUAWLtSyoIJhXyW279hehLPyubDoBNwvhcj3WaSptcekuKYeTCVxrq60rdLc6ImJA==" + } + } + }, "smart-buffer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", + "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", "dev": true }, - "smtp-connection": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", - "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=", - "dev": true, - "requires": { - "httpntlm": "1.6.1", - "nodemailer-shared": "1.1.0" - } - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, "requires": { - "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.1", - "use": "3.1.0" + "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" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -15129,16 +27868,18 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -15147,16 +27888,18 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, @@ -15164,24 +27907,27 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -15189,170 +27935,121 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, - "socket.io": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", - "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", - "dev": true, - "requires": { - "debug": "2.6.9", - "engine.io": "3.1.5", - "socket.io-adapter": "1.1.1", - "socket.io-client": "2.0.4", - "socket.io-parser": "3.1.3" - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", - "dev": true - }, - "socket.io-client": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", - "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "dev": true, "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "2.6.9", - "engine.io-client": "3.1.6", - "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.1.3", - "to-array": "0.1.4" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" } }, - "socket.io-parser": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", - "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "debug": "3.1.0", - "has-binary2": "1.0.2", - "isarray": "2.0.1" + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.2.1" - } - }, - "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.2.0" - }, - "dependencies": { "faye-websocket": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, "socks": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.2.tgz", + "integrity": "sha512-g6wjBnnMOZpE0ym6e0uHSddz9p3a+WsBaaYQaBaSCJYvrC4IXykQR9MNGjLQf38e9iIIhp3b1/Zk8YZI3KGJ0Q==", "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" } }, "socks-proxy-agent": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz", - "integrity": "sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", + "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", "dev": true, "requires": { - "agent-base": "2.1.1", - "extend": "3.0.1", - "socks": "1.1.10" - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "1.1.0" + "agent-base": "~4.2.0", + "socks": "~2.2.0" } }, "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", + "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "dev": true, + "requires": { + "async": "^2.5.0", + "loader-utils": "^1.1.0" + } + }, "source-map-resolve": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, "requires": { - "atob": "2.0.3", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -15361,47 +28058,52 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "sourcemap-codec": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz", + "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==", "dev": true }, "spdx-correct": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "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.0" } }, "spdx-exceptions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true }, "spdy": { "version": "3.4.7", @@ -15409,63 +28111,72 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.0.20" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" } }, "spdy-transport": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", - "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", + "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.5", - "safe-buffer": "5.1.1", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" + } + }, + "speed-measure-webpack-plugin": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.2.3.tgz", + "integrity": "sha512-p+taQ69VkRUXYMoZOx2nxV/Tz8tt79ahctoZJyJDHWP7fEYvwFNf5Pd73k5kZ6auu0pTsPNLEUwWpM8mCk85Zw==", + "dev": true, + "requires": { + "chalk": "^2.0.1" } }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "sshpk": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", - "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "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", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, @@ -15473,41 +28184,52 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.1" } }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", + "dev": true + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "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": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -15516,16 +28238,18 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -15534,68 +28258,95 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, + "stats-webpack-plugin": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz", + "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==", + "dev": true, + "requires": { + "lodash": "^4.17.4" + } + }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true }, "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, "optional": true, "requires": { - "readable-stream": "2.3.5" + "readable-stream": "^2.0.1" } }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-blackhole": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-blackhole/-/stream-blackhole-1.0.3.tgz", + "integrity": "sha1-b8LiwunZ/ea+jGjT24jeCYAuTWM=" + }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.5" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-http": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.1.tgz", "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==", + "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.5", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.3", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true }, "stream-to-observable": { "version": "0.1.0", @@ -15603,84 +28354,83 @@ "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", "dev": true }, - "streamroller": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", - "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", "dev": true, "requires": { - "date-format": "1.2.0", - "debug": "3.1.0", - "mkdirp": "0.5.1", - "readable-stream": "2.3.5" + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ms": "2.0.0" + "ansi-regex": "^3.0.0" } } } }, - "strict-uri-encode": { + "string-similarity": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.1.0.tgz", + "integrity": "sha1-PGZJiFikZex8QMfYFzm72ZWQSRQ=", + "requires": { + "lodash": "^4.13.1" + } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string.prototype.padend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0", - "function-bind": "1.1.1" - } - }, - "string.prototype.padstart": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz", - "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" } }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -15689,234 +28439,465 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, + "optional": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", - "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "amdefine": ">=0.0.4" } + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "^2.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "optional": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "terminal-banner": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/terminal-banner/-/terminal-banner-1.1.0.tgz", + "integrity": "sha512-A70B8Io5gGOTKQuoqU6LUPLouNd9DvFLgw3cPh6bfrQjdy7HWW1t04VJfQwjTnygTVDX0xremaj1cg3SQaCGyg==", + "dev": true + }, + "terser": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.13.1.tgz", + "integrity": "sha512-ogyZye4DFqOtMzT92Y3Nxxw8OvXmL39HOALro4fc+EUYFFF9G/kk0znkvwMz6PPYgBtdKAodh3FPR70eugdaQA==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.6" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { - "ajv": "5.5.2" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } } } }, - "stylus": { - "version": "0.54.5", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", - "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", - "dev": true, - "requires": { - "css-parse": "1.7.0", - "debug": "2.6.9", - "glob": "7.0.6", - "mkdirp": "0.5.1", - "sax": "0.5.8", - "source-map": "0.1.43" + "terser-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.8.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" }, "dependencies": { + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "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.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "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" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "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" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "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" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "dev": true, "requires": { - "amdefine": "1.0.1" + "figgy-pudding": "^3.5.1" } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true } } }, - "stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "test-exclude": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.1.0.tgz", + "integrity": "sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "lodash.clonedeep": "4.5.0", - "when": "3.6.4" - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - }, - "svg-react-loader": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/svg-react-loader/-/svg-react-loader-0.4.5.tgz", - "integrity": "sha1-HzJMnHuFj1yJ+sdSu+nKP2IU+FA=", - "requires": { - "css": "2.2.1", - "loader-utils": "1.1.0", - "ramda": "0.21.0", - "rx": "4.1.0", - "traverse": "0.6.6", - "xml2js": "0.4.17" + "arrify": "^1.0.1", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^1.0.1" }, "dependencies": { - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } }, - "xml2js": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", - "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, "requires": { - "sax": "1.2.4", - "xmlbuilder": "4.2.1" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, - "xmlbuilder": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", - "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "requires": { - "lodash": "4.17.5" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } - } - } - }, - "svg-tag-names": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/svg-tag-names/-/svg-tag-names-1.1.1.tgz", - "integrity": "sha1-lkGynvcQJe4JTHBD983efZn71Qo=" - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" + "p-try": "^2.0.0" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "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" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true } } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "optional": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "terminal-banner": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/terminal-banner/-/terminal-banner-1.1.0.tgz", - "integrity": "sha512-A70B8Io5gGOTKQuoqU6LUPLouNd9DvFLgw3cPh6bfrQjdy7HWW1t04VJfQwjTnygTVDX0xremaj1cg3SQaCGyg==", + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", "dev": true }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", "dev": true }, "through": { @@ -15928,62 +28909,57 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, "requires": { - "readable-stream": "2.3.5", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", - "dev": true, - "optional": true - }, "thunky": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", - "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", + "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", "dev": true }, - "time-stamp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", - "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=" + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", + "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, - "timespan": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", - "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", - "dev": true, - "optional": true + "tinyqueue": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz", + "integrity": "sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==" }, "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.1" } }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true }, "to-fast-properties": { "version": "1.0.3", @@ -15994,58 +28970,84 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "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": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "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": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, - "toposort": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz", - "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=" + "topojson-client": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz", + "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", + "requires": { + "commander": "2" + } + }, + "topojson-server": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.0.tgz", + "integrity": "sha1-N4546Hw5cqe1vixdYENptrrmnF4=", + "requires": { + "commander": "2" + } }, "tough-cookie": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } }, "tree-kill": { "version": "1.2.0", @@ -16057,37 +29059,39 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true + "dev": true, + "optional": true }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, "optional": true, "requires": { - "glob": "6.0.4" + "glob": "^7.1.2" + } + }, + "ts-jest": { + "version": "23.1.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-23.1.4.tgz", + "integrity": "sha512-9rCSxbWfoZxxeXnSoEIzRNr9hDIQ8iEJAWmSRsWhDHDT8OeuGfURhJQUE8jtJlkyEygs6rngH8RYtHz9cfjmEA==", + "requires": { + "closest-file-data": "^0.1.4", + "fs-extra": "6.0.1", + "json5": "^0.5.0", + "lodash": "^4.17.10" }, "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "optional": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" } } }, @@ -16097,10 +29101,10 @@ "integrity": "sha512-4g8BF3gKWBHeM1jAFmMPHofuJlwTUU4iHJ0i3mwXRHwy74RU6VBOgl9kDVMGpapvGcMlVqV5G6v9XmV66Qqd7w==", "dev": true, "requires": { - "chalk": "2.4.1", - "enhanced-resolve": "3.4.1", - "loader-utils": "1.1.0", - "semver": "5.5.0" + "chalk": "^2.3.0", + "enhanced-resolve": "^3.0.0", + "loader-utils": "^1.0.2", + "semver": "^5.0.1" }, "dependencies": { "chalk": { @@ -16109,9 +29113,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -16126,38 +29130,45 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } }, + "ts-mockito": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/ts-mockito/-/ts-mockito-2.3.1.tgz", + "integrity": "sha512-chcKw0sTApwJxTyKhzbWxI4BTUJ6RStZKUVh2/mfwYqFS09PYy5pvdXZwG35QSkqT5pkdXZlYKBX196RRvEZdQ==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + }, "ts-node": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.1.0.tgz", - "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "chalk": "2.3.2", - "diff": "3.5.0", - "make-error": "1.3.4", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map-support": "0.5.4", - "tsconfig": "7.0.0", - "v8flags": "3.0.2", - "yn": "2.0.0" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz", + "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.3", + "yn": "^2.0.0" }, "dependencies": { "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "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.3.0" } }, "has-flag": { @@ -16179,99 +29190,60 @@ "dev": true }, "source-map-support": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", - "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "requires": { - "@types/strip-bom": "3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "tsickle": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.26.0.tgz", - "integrity": "sha512-eWJ2CUfttGK0LqF9iJ/Avnxbj4M+fCyJ50Zag3wm73Fut1hsasPRHKxKdrMWVj4BMHnQNx7TO+DdNmLmJTSuNw==", - "dev": true, - "requires": { - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map": "0.5.7", - "source-map-support": "0.4.18" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, "tslib": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" }, "tslint": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", - "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.3.2", - "commander": "2.15.0", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.11.0", - "minimatch": "3.0.4", - "resolve": "1.5.0", - "semver": "5.5.0", - "tslib": "1.9.0", - "tsutils": "2.22.2" + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", + "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" }, "dependencies": { "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "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.3.0" } }, "has-flag": { @@ -16281,100 +29253,111 @@ "dev": true }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } }, - "tsscmp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", - "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", - "dev": true, - "optional": true - }, "tsutils": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.2.tgz", - "integrity": "sha512-u06FUSulCJ+Y8a2ftuqZN6kIGqdP2yJjUPEngXqmdPND4UQfb04igcotH+dw+IFr417yP6muCLE8/5/Qlfnx0w==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "tslib": "1.9.0" + "tslib": "^1.8.1" } }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, + "turf-jsts": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/turf-jsts/-/turf-jsts-1.2.3.tgz", + "integrity": "sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==" + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, "optional": true }, + "two-product": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz", + "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo=" + }, + "two-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz", + "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q=" + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "typescript": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", - "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", + "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", "dev": true }, - "ua-parser-js": { - "version": "0.7.17", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", - "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" - }, - "uglify-js": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.16.tgz", - "integrity": "sha512-FMh5SRqJRGhv9BbaTffENIpDDQIoPDR8DBraunGORGhySArsXlw9++CN+BWzPBLpoI4RcSnpfGPnilTxWL3Vvg==", + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, "requires": { - "commander": "2.15.0", - "source-map": "0.6.1" + "commander": "~2.13.0", + "source-map": "~0.6.1" }, "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -16382,156 +29365,161 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, "optional": true }, "uglifyjs-webpack-plugin": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz", - "integrity": "sha512-z0IbjpW8b3O/OVn+TTZN4pI29RN1zktFBXLIzzfZ+++cUtZ1ERSlLWgpE/5OERuEUs1ijVQnpYAkSlpoVmQmSQ==", - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.5", - "serialize-javascript": "1.4.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.1.0", - "worker-farm": "1.6.0" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" }, "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" - } + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", "dev": true }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", + "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", + "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", "dev": true }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "requires": { - "macaddress": "0.2.8" - } - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, "requires": { - "unique-slug": "2.0.0" + "unique-slug": "^2.0.0" } }, "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "universalify": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", - "dev": true + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, "requires": { "isarray": "1.0.0" } @@ -16541,34 +29529,56 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, "upath": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", - "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==" + "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==", + "dev": true }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -16577,69 +29587,43 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true } } }, - "url-loader": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", - "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "url-parse": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", + "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", + "dev": true, "requires": { - "loader-utils": "1.1.0", - "mime": "1.6.0", - "schema-utils": "0.3.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "5.5.2" - } - } + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" } }, - "url-parse": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", - "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "querystringify": "1.0.0", - "requires-port": "1.0.0" - }, - "dependencies": { - "querystringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", - "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=" - } + "prepend-http": "^1.0.1" } }, "use": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -16661,209 +29645,258 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true }, "uuid": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" }, - "uws": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz", - "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==", - "dev": true, - "optional": true - }, - "v8flags": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.2.tgz", - "integrity": "sha512-6sgSKoFw1UpUPd3cFdF7QGnrH6tDeBgW1F3v9gy8gLY0mlbiBXq8soy8aQpY6xeeCjH5K+JvC62Acp7gtl7wWA==", - "dev": true, - "requires": { - "homedir-polyfill": "1.0.1" - } - }, "validate-npm-package-license": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "builtins": "^1.0.3" } }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true }, - "velocity-animate": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/velocity-animate/-/velocity-animate-1.5.1.tgz", - "integrity": "sha512-VJ3csMz5zP1ifkbBlsNYpxnoWkPHfVRQ8tUongS78W5DxSGHB68pjYHDTgUYBkVM7P/HpYdVukgVUFcxjr1gGg==" + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } }, - "velocity-react": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/velocity-react/-/velocity-react-1.3.3.tgz", - "integrity": "sha1-1tRyds/Ivip1Yjh5sgFArFjBuCs=", + "version-exists": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/version-exists/-/version-exists-0.0.3.tgz", + "integrity": "sha1-Lub+LIpTy9X5F6hSHpiyDs9668k=", "requires": { - "lodash": "3.10.1", - "prop-types": "15.6.1", - "react-transition-group": "1.2.1", - "velocity-animate": "1.5.1" + "args": "2.6.1", + "chalk": "1.1.3", + "node-fetch": "1.6.3", + "npm-name": "3.0.0" }, "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "node-fetch": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", + "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, - "vendors": { + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "w3c-hr-time": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=" + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "makeerror": "1.0.x" + } + }, + "wallaby-webpack": { + "version": "3.9.11", + "resolved": "https://registry.npmjs.org/wallaby-webpack/-/wallaby-webpack-3.9.11.tgz", + "integrity": "sha512-V96IfgtFIpt03ZAyRUD/Az63rkIwWSdID88cMKS+4S0iWfyDyxXO7FnCPqBSRZ8/5V+5f1PyT3jXXSt5eTXNdQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.3", + "lodash": "^4.17.10", + "minimatch": "3.0.3" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true + }, + "minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } } } }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", "dev": true, "requires": { - "clone": "1.0.3", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" }, "dependencies": { - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "requires": { - "indexof": "0.0.1" - } - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "1.3.1" - } - }, "watchpack": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", + "dev": true, "requires": { - "chokidar": "2.0.2", - "graceful-fs": "4.1.11", - "neo-async": "2.5.0" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, "dependencies": { "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, "requires": { - "micromatch": "3.1.9", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, "braces": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "kind-of": "6.0.2", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "kind-of": "^6.0.2", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -16872,65 +29905,71 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", + "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.1", - "fsevents": "1.1.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.4" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.0.0", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" } }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { - "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" + "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" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, @@ -16938,31 +29977,34 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -16971,19 +30013,21 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -16992,17 +30036,19 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -17011,16 +30057,18 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17029,16 +30077,18 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17046,30 +30096,34 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-glob": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17077,31 +30131,34 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "micromatch": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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.1" } } } @@ -17112,314 +30169,348 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.0" + "minimalistic-assert": "^1.0.0" } }, - "webdriver-js-extender": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz", - "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", - "dev": true, - "requires": { - "@types/selenium-webdriver": "2.53.43", - "selenium-webdriver": "2.53.3" + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.2.tgz", + "integrity": "sha512-PK3uVg3/NuNVOjPfYleFI6JF7khO7c2kIlksH7mivQm+QDcwiqV1x6+q89dDeOioh5FNxJHr3LKbDu3oSAhl9g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.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": "^0.4.4", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" }, "dependencies": { - "adm-zip": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", - "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", - "dev": true - }, - "sax": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", - "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, - "selenium-webdriver": { - "version": "2.53.3", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", - "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "adm-zip": "0.4.4", - "rimraf": "2.6.2", - "tmp": "0.0.24", - "ws": "1.1.5", - "xml2js": "0.4.4" + "acorn": "^5.0.0" } }, - "tmp": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", - "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "xml2js": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", - "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "sax": "0.6.1", - "xmlbuilder": "9.0.7" - } - } - } - }, - "webpack": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", - "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", - "requires": { - "acorn": "5.5.3", - "acorn-dynamic-import": "2.0.2", - "ajv": "6.3.0", - "ajv-keywords": "3.1.0", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.5.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { - "pify": "2.3.0" + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "kind-of": "^3.0.2" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "is-buffer": "^1.1.5" } } } }, - "strip-bom": { + "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "kind-of": "^3.0.2" }, "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "is-buffer": "^1.1.5" } } } }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" - } + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "3.2.1", - "yargs-parser": "7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - } + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } } } @@ -17430,8 +30521,8 @@ "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" }, "dependencies": { "source-list-map": { @@ -17442,70 +30533,85 @@ }, "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "webpack-dev-middleware": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", - "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "dev": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "dev": true + } } }, "webpack-dev-server": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz", - "integrity": "sha512-zrPoX97bx47vZiAXfDrkw8pe9QjJ+lunQl3dypojyWwWr1M5I2h0VSrMPfTjopHQPRNn+NqfjcMmhoLcUJe2gA==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.10.tgz", + "integrity": "sha512-RqOAVjfqZJtQcB0LmrzJ5y4Jp78lv9CK0MZ1YJDTaTmedMZ9PU9FLMQNrMCfVu8hHzaVLVOJKBlGEHMN10z+ww==", "dev": true, "requires": { "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "2.0.2", - "compression": "1.7.2", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "1.0.0", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.1", - "opn": "5.1.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.2", - "serve-index": "1.9.1", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^2.0.0", + "internal-ip": "^3.0.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "schema-utils": "^1.0.0", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.19", - "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.3.0", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" + "sockjs-client": "1.3.0", + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "webpack-dev-middleware": "3.4.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.2" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.9", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "arr-diff": { @@ -17521,23 +30627,212 @@ "dev": true }, "braces": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", - "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "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" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "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" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "requires": { + "xregexp": "4.0.0" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.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" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "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" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "kind-of": "6.0.2", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -17546,7 +30841,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -17555,163 +30850,569 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" } } } }, - "camelcase": { + "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "chokidar": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", - "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.1", - "fsevents": "1.1.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.4" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "ms": "2.0.0" + "locate-path": "^3.0.0" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, + "optional": true, "requires": { - "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" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, + "optional": true, "requires": { "ms": "2.0.0" } }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "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" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, "dev": true, + "optional": true, "requires": { - "is-descriptor": "0.1.6" + "glob": "^7.0.5" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "string_decoder": { + "version": "1.1.1", + "bundled": true, "dev": true, + "optional": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "safe-buffer": "~5.1.0" } }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "strip-ansi": { + "version": "3.0.1", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "ansi-regex": "^2.0.0" } }, - "extend-shallow": { + "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, "dev": true, + "optional": true, "requires": { - "is-extendable": "0.1.1" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "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.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, "dev": true, + "optional": true, "requires": { - "is-extendable": "0.1.1" + "string-width": "^1.0.2" } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true } } }, @@ -17721,8 +31422,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -17731,7 +31432,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -17742,13 +31443,19 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -17757,7 +31464,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17768,7 +31475,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -17777,7 +31484,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17788,13 +31495,19 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, "is-glob": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -17803,7 +31516,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -17812,7 +31525,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17829,137 +31542,271 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "mem": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", + "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" + } + }, "micromatch": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", - "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "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" + } + }, + "os-locale": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", + "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "dev": true, + "requires": { + "execa": "^0.10.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^2.0.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": "^10.1.0" } }, "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^4.1.0" } } } }, - "webpack-hot-middleware": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.22.0.tgz", - "integrity": "sha512-kmjTZ6WXZowuBfTk1/H/scmyp09eHwPpqF2mHRZ9WMCBlQ61NSkqZ25azPlPOeCIhva57PGrUyeTIW5X8Q7HEw==", + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, "requires": { - "ansi-html": "0.0.7", - "html-entities": "1.2.1", - "querystring": "0.2.0", - "strip-ansi": "3.0.1" + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } } }, "webpack-merge": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz", - "integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", + "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", "dev": true, "requires": { - "lodash": "4.17.5" + "lodash": "^4.17.5" } }, "webpack-sources": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "webpack-subresource-integrity": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.0.4.tgz", - "integrity": "sha1-j6yKfo61n8ahZ2ioXJ2U7n+dDts=", + "version": "1.1.0-rc.6", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz", + "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==", "dev": true, "requires": { - "webpack-core": "0.6.9" + "webpack-core": "^0.6.8" } }, "websocket-driver": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, "requires": { - "http-parser-js": "0.4.11", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true }, - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } }, "when": { "version": "3.6.4", @@ -17967,58 +31814,60 @@ "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", "dev": true }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" - }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true + "dev": true, + "optional": true }, "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true }, "wordwrap": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true }, "worker-farm": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -18026,82 +31875,66 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "write-file-atomic": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", + "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, - "xml-char-classes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", - "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=" - }, - "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "dev": true, "requires": { - "sax": "1.2.4", - "xmlbuilder": "9.0.7" - }, - "dependencies": { - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - } + "async-limiter": "~1.0.0" } }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", "dev": true }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", - "dev": true, - "optional": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dev": true, - "requires": { - "cuint": "0.2.2" - } + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true }, "y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true }, "yargs": { "version": "7.1.0", @@ -18110,19 +31943,19 @@ "dev": true, "optional": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" }, "dependencies": { "camelcase": { @@ -18148,7 +31981,7 @@ "dev": true, "optional": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { @@ -18161,20 +31994,15 @@ } }, "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz", + "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=", "dev": true, "requires": { - "fd-slicer": "1.0.1" + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.0.1" } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, "yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", @@ -18182,9 +32010,9 @@ "dev": true }, "zone.js": { - "version": "0.8.19", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.19.tgz", - "integrity": "sha512-l9rofaOs6a4y1W8zt4pDmnCUCnYG377dG+5SZlXNWrTWYUuXFqcJZiOarhYiRVR0NI9sH/8ooPJiz4uprB/Mkg==" + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", + "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==" } } } diff --git a/vid-webpack-master/package.cypress.json b/vid-webpack-master/package.cypress.json new file mode 100644 index 000000000..39a4008c8 --- /dev/null +++ b/vid-webpack-master/package.cypress.json @@ -0,0 +1,20 @@ +{ + "name": "vid-cli", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "cypress:open": "cypress open", + "cypress": "cypress open --config baseUrl=http://localhost:8080/vid ", + "cypress:run": "cypress run", + "cypress:headless": "cypress run --config baseUrl=http://localhost:8080/vid " + }, + "private": true, + "dependencies": {}, + "devDependencies": { + "@bahmutov/add-typescript-to-cypress": "2.0.0", + "cypress": "^3.1.0", + "typescript": "2.9.2", + "rxjs": "^6.3.3", + "rxjs-compat": "^6.3.3" + } +} diff --git a/vid-webpack-master/package.json b/vid-webpack-master/package.json index cf2835051..ff2682b46 100644 --- a/vid-webpack-master/package.json +++ b/vid-webpack-master/package.json @@ -5,85 +5,120 @@ "scripts": { "ng": "ng", "start": "ng serve --port 4201", - "build": "ng build --no-progress --no-aot", + "build": "ng build --no-progress --no-aot --output-hashing all", "build.prod": "ng build", - "test": "ng test --c --single-run", - "lint": "ng lint --type-check --fix", + "test": "jest", + "test:jest": "jest", + "test:jest:pipeline": "jest --silent --ci --reporters=default --reporters=jest-junit", + "test:jest:watch": "jest --watch", + "test:jest:coverage": "jest --ci --reporters=default --reporters=jest-junit --coverage --silent", + "test:jest:snapshot": "jest --ci --reporters=default --reporters=jest-junit --coverage -u", + "test:watch": "jest --clearCache && jest --watch", "coverage": "ng test --code-coverage", - "coverage-console": "ng test --c --single-run", + "verify": "cypress verify", "e2e": "ng e2e", "build-watch": "ng build --watch", "cypress:open": "cypress open", - "cypress:open:dev": "cypress open --config baseUrl=http://localhost:8080/vid ", - "cypress:run": "cypress run" + "cypress": "cypress open --config baseUrl=http://localhost:8080/vid ", + "cypress:run": "cypress run", + "cypress:headless": "cypress run --config baseUrl=http://localhost:8080/vid", + "format": "prettier", + "format:fix": "pretty-quick --staged", + "lint": "ng lint" }, "private": true, "dependencies": { - "@angular-redux/store": "^7.1.1", - "@angular/animations": "5.2.0", - "@angular/cdk": "2.0.0-beta.12", - "@angular/common": "5.2.0", - "@angular/compiler": "5.2.0", - "@angular/core": "5.2.0", - "@angular/forms": "5.2.0", - "@angular/http": "5.2.0", - "@angular/platform-browser": "5.2.0", - "@angular/platform-browser-dynamic": "5.2.0", - "@angular/router": "5.2.0", - "@angularclass/hmr": "2.1.3", - "@angularclass/hmr-loader": "3.0.4", + "@angular-redux/store": "^9.0.0", + "@angular/animations": "^7.1.4", + "@angular/cdk": "^7.2.2", + "@angular/common": "^7.1.4", + "@angular/compiler": "^7.1.4", + "@angular/core": "^7.1.4", + "@angular/forms": "^7.1.4", + "@angular/http": "^7.1.4", + "@angular/material": "7.2.2", + "@angular/platform-browser": "^7.1.4", + "@angular/platform-browser-dynamic": "^7.1.4", + "@angular/platform-server": "^7.1.4", + "@angular/router": "^7.1.4", "@harmowatch/ngx-redux-core": "0.2.2", "@nicky-lenaers/ngx-scroll-to": "^0.6.1", + "@turf/turf": "^5.1.6", "@types/lodash": "4.14.91", "angular-svg-icon": "^5.0.0", "angular-tree-component": "7.0.1", "angular2-datatable": "0.6.0", "angular2-multiselect-dropdown": "2.5.0", + "angular5-csv": "^0.2.10", "bootstrap": "^4.1.2", - "core-js": "2.4.1", + "core-js": "^2.6.1", "font-awesome": "^4.7.0", + "install": "^0.12.2", + "jest-image-snapshot": "2.8.1", + "jest-preset-angular": "6.0.2", "ng-multiselect-dropdown": "0.1.3", "ng2-bootstrap-modal": "1.0.1", "ngx-bootstrap": "^2.0.2", - "ngx-contextmenu": "4.1.2", + "ngx-contextmenu": "^5.1.1", "ngx-datatable": "1.0.3", "ngx-moment": "^2.0.0-rc.0", "ngx-tooltip": "0.0.9", - "redux": "^3.7.2", - "redux-observable": "^0.18.0", - "rxjs": "5.5.6", - "sdc-ui": "^1.6.29-angular5", + "npm": "^6.4.1", + "redux": "^4.0.1", + "redux-observable": "^1.0.0", + "rxjs": "^6.3.3", + "rxjs-compat": "^6.3.3", + "slnodejs": "^2.1.124", "tslib": "1.9.x", - "zone.js": "0.8.19" + "zone.js": "^0.8.26" }, "devDependencies": { - "@angular/cli": "1.7.2", - "@angular/compiler-cli": "5.2.0", - "@angular/language-service": "5.2.0", - "@bahmutov/add-typescript-to-cypress": "^2.0.0", + "@angular-builders/jest": "^7.1.2", + "@angular-devkit/build-angular": "^0.11.4", + "@angular/cli": "^7.1.4", + "@angular/compiler-cli": "^7.1.4", + "@angular/language-service": "^7.1.4", + "@babel/preset-env": "^7.2.3", + "@bahmutov/add-typescript-to-cypress": "2.0.0", "@types/chai": "^4.1.3", - "@types/cypress": "^1.1.3", - "@types/jasmine": "2.8.3", - "@types/jasminewd2": "2.0.2", - "@types/mocha": "^5.2.0", - "@types/node": "6.0.60", - "codelyzer": "4.0.1", - "cypress": "^2.1.0", - "jasmine-core": "2.5.2", - "jasmine-spec-reporter": "4.2.1", - "karma": "2.0.2", - "karma-chrome-launcher": "2.2.0", - "karma-coverage-istanbul-reporter": "2.0.1", - "karma-istanbul-threshold": "1.2.2", - "karma-jasmine": "1.1.2", - "karma-jasmine-html-reporter": "1.1.0", - "karma-junit-reporter": "^1.2.0", - "karma-phantomjs-launcher": "1.0.4", - "karma-remap-istanbul": "0.6.0", - "karma-spec-reporter": "0.0.32", - "protractor": "5.1.2", - "ts-node": "4.1.0", - "tslint": "5.9.1", - "typescript": "2.5.3" + "@types/cypress": "1.1.3", + "@types/jest": "24.0.6", + "@types/jest-each": "0.3.4", + "@types/node": "^10.12.18", + "angular2-template-loader": "^0.6.2", + "babel-jest": "24.1.0", + "codelyzer": "^4.5.0", + "cypress": "^3.1.0", + "hammerjs": "2.0.8", + "husky": "^1.3.1", + "istanbul-reports": "^2.0.1", + "jest": "24.1.0", + "jest-each": "24.0.0", + "jest-junit": "6.3.0", + "jest-sonar-reporter": "2.0.0", + "ngx-wallaby-jest": "0.0.1", + "npm-run-all": "^4.1.5", + "onap-ui-angular": "5.1.71", + "onap-ui-common": "1.0.86", + "prettier": "1.16.4", + "pretty-quick": "^1.10.0", + "ts-mockito": "2.3.1", + "ts-node": "~5.0.1", + "tslint": "^5.12.0", + "typescript": "^3.1.6", + "wallaby-webpack": "^3.9.11", + "webpack": "^4.28.2" + }, + "jest-junit": { + "outputDirectory": "./coverage", + "outputName": "./test-results-jest.xml" + }, + "jest": { + "preset": "jest-preset-angular", + "setupFilesAfterEnv": ["/src/setupJest.ts"], + "transform": { + "^.+\\.(ts|html)$": "/node_modules/jest-preset-angular/preprocessor.js", + "^.+\\.js$": "babel-jest" + } } } diff --git a/vid-webpack-master/polyfills.ts b/vid-webpack-master/polyfills.ts index 6fb2c4008..a9aee06c9 100644 --- a/vid-webpack-master/polyfills.ts +++ b/vid-webpack-master/polyfills.ts @@ -37,7 +37,7 @@ import 'core-js/es6/set'; // import 'classlist.js'; /** IE10 and IE11 requires the following to support `@angular/animation`. */ -//import 'web-animations-js'; // Run `npm install --save web-animations-js`. +/** import 'web-animations-js'; // Run `npm install --save web-animations-js`*/ /** Evergreen browsers require these. **/ @@ -46,7 +46,7 @@ import 'core-js/es7/reflect'; /** ALL Firefox browsers require the following to support `@angular/animation`. **/ -//import 'web-animations-js'; // Run `npm install --save web-animations-js`. +/** import 'web-animations-js'; // Run `npm install --save web-animations-js`.*/ @@ -63,4 +63,4 @@ import 'zone.js/dist/zone'; // Included with Angular CLI. * Date, currency, decimal and percent pipes. * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 */ -//import 'intl'; // Run `npm install --save intl`. +/** import 'intl'; // Run `npm install --save intl`.*/ diff --git a/vid-webpack-master/pom.xml b/vid-webpack-master/pom.xml index b4445dd04..3fa600f50 100644 --- a/vid-webpack-master/pom.xml +++ b/vid-webpack-master/pom.xml @@ -9,13 +9,16 @@ inherit from a parent maven module. --> org.onap.vid vid-webpack-master - 1.3.0-SNAPSHOT + 1.3.0 war VID UI VID UI UTF-8 + + + true @@ -102,7 +105,7 @@ - webpack + webpack-npm @@ -150,22 +153,12 @@ - npm run test + npm run npm - run test - - - - - npm run build - - npm - - - run build + run ${NPM_CMD} diff --git a/vid-webpack-master/processCss.js b/vid-webpack-master/processCss.js new file mode 100644 index 000000000..81953b9d5 --- /dev/null +++ b/vid-webpack-master/processCss.js @@ -0,0 +1,20 @@ +const next = require('postcss-cssnext'); +const modules = require('postcss-modules'); +const postcss = require('postcss'); + +const processCss = function(file, done) { + postcss([ + next, + modules({ + getJSON: function(filename, json) { + file.rename(file.path + '.json') + done(JSON.stringify(json)) + } + }) + ]).process(file.content, { + from: file.path, + to: file.path + }).catch(function(err) { + throw err + }) +} diff --git a/vid-webpack-master/src/app/angular-tree-component.scss b/vid-webpack-master/src/app/angular-tree-component.scss new file mode 100644 index 000000000..40333b9d1 --- /dev/null +++ b/vid-webpack-master/src/app/angular-tree-component.scss @@ -0,0 +1,83 @@ +.tree-children.tree-children-no-padding { padding-left: 0 } +.tree-children { padding-left: 20px; overflow: hidden } +.node-drop-slot { display: block; height: 2px } +.node-drop-slot.is-dragging-over { background: #ddffee; height: 20px; border: 2px dotted #888; } +.toggle-children-wrapper-expanded .toggle-children { transform: rotate(90deg) } +.toggle-children-wrapper-collapsed .toggle-children { transform: rotate(0); } +.toggle-children-wrapper { + padding: 2px 3px 5px 1px; +} +/* tslint:disable */ +.toggle-children { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC'); + height: 8px; + width: 9px; + background-size: contain; + display: inline-block; + position: relative; + top: 1px; + background-repeat: no-repeat; + background-position: center; +} +.toggle-children-placeholder { + display: inline-block; + height: 10px; + width: 10px; + position: relative; + top: 1px; + padding-right: 3px; +} +.node-content-wrapper { + display: inline-block; + padding: 2px 5px; + border-radius: 2px; + transition: background-color .15s,box-shadow .15s; +} +.node-wrapper {display: flex; align-items: flex-start;} +.node-content-wrapper-active, +.node-content-wrapper.node-content-wrapper-active:hover, +.node-content-wrapper-active.node-content-wrapper-focused { + background: #beebff; +} +.node-content-wrapper-focused { background: #e7f4f9 } +.node-content-wrapper:hover { background: #f7fbff } +.node-content-wrapper-active, .node-content-wrapper-focused, .node-content-wrapper:hover { + box-shadow: inset 0 0 1px #999; +} +.node-content-wrapper.is-dragging-over { background: #ddffee; box-shadow: inset 0 0 1px #999; } +.node-content-wrapper.is-dragging-over-disabled { opacity: 0.5 } + +tree-viewport { + height: 100%; + overflow: auto; + display: block; +} +.tree-children { padding-left: 20px } +.empty-tree-drop-slot .node-drop-slot { height: 20px; min-width: 100px } +.angular-tree-component { + width: 100%; + position:relative; + display: inline-block; + cursor: pointer; + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Chrome/Safari/Opera */ + -khtml-user-select: none; /* Konqueror */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE/Edge */ + user-select: none; /* non-prefixed version, currently not supported by any browser */ +} + +tree-root .angular-tree-component-rtl { + direction: rtl; +} +tree-root .angular-tree-component-rtl .toggle-children-wrapper-collapsed .toggle-children { + transform: rotate(180deg) !important; +} +tree-root .angular-tree-component-rtl .tree-children { + padding-right: 20px; + padding-left: 0; +} + +tree-node-checkbox { + padding: 1px; +} diff --git a/vid-webpack-master/src/app/app.component.html b/vid-webpack-master/src/app/app.component.html index 3768d0c53..a247e2f5f 100644 --- a/vid-webpack-master/src/app/app.component.html +++ b/vid-webpack-master/src/app/app.component.html @@ -1,6 +1,7 @@
+
diff --git a/vid-webpack-master/src/app/app.component.ts b/vid-webpack-master/src/app/app.component.ts index 528c7d7a4..dc4bc88c9 100644 --- a/vid-webpack-master/src/app/app.component.ts +++ b/vid-webpack-master/src/app/app.component.ts @@ -1,28 +1,17 @@ -import {Component, Inject} from '@angular/core'; - -import { ApiService } from './shared'; - -import '../style/app.scss'; +import {Component} from '@angular/core'; import {NgRedux} from "@angular-redux/store"; -import {AppState} from "./store/reducers"; -import { LogService } from './shared/utils/log/log.service'; +import {AppState} from "./shared/store/reducers"; +import '../style/app.scss'; @Component({ - selector: 'vid-app', // + selector: 'vid-app', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], }) export class AppComponent { - url = 'https://github.com/preboot/angular2-webpack'; - title: string; - - - constructor(private api: ApiService, private store: NgRedux, private _logService : LogService) { - this.title = this.api.title; + constructor(private store: NgRedux) { store.subscribe(()=>{ sessionStorage.setItem('reduxState', JSON.stringify(store.getState())); }); - - this._logService.info("testing new log service"); } } diff --git a/vid-webpack-master/src/app/app.module.ts b/vid-webpack-master/src/app/app.module.ts index a87ffb5b7..ce9b7da3b 100644 --- a/vid-webpack-master/src/app/app.module.ts +++ b/vid-webpack-master/src/app/app.module.ts @@ -1,26 +1,26 @@ -import { ApplicationRef, NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { AppComponent } from './app.component'; -import { HomeComponent } from './home/home.component'; -import { ApiService } from './shared'; -import { routing } from './app.routing'; -import { createNewHosts, removeNgStyles } from '@angularclass/hmr'; -import { BrowseSdcModule } from './browseSdc/browseSdc.module'; -import { VlanTaggingModule } from './vlanTagging/vlan-tagging.module' -import { BootstrapModalModule } from 'ng2-bootstrap-modal'; -import { HashLocationStrategy, LocationStrategy } from "@angular/common"; -import { InstantiationStatusModule } from './instantiationStatus/InstantiationStatus.module'; -import { SharedModule } from './shared/shared.module'; -import { AngularSvgIconModule } from 'angular-svg-icon'; -import { NgReduxModule } from '@angular-redux/store'; -import { StoreModule } from "./store/module"; -import { HttpInterceptorService } from './shared/utils/httpInterceptor/httpInterceptor.service'; -import { DrawingBoardModule } from './drawingBoard/drawingBoard.module'; -import { HealthStatusComponent } from './healthStatus/health-status.component'; -import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; -import { LogService } from './shared/utils/log/log.service'; +import {ApplicationRef, NgModule} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; +import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; +import {AppComponent} from './app.component'; +import {routing} from './app.routing'; +import {VlanTaggingModule} from './vlanTagging/vlan-tagging.module' +import {BootstrapModalModule} from 'ng2-bootstrap-modal'; +import {HashLocationStrategy, LocationStrategy} from "@angular/common"; +import {InstantiationStatusModule} from './instantiationStatus/InstantiationStatus.module'; +import {SharedModule} from './shared/shared.module'; +import {AngularSvgIconModule} from 'angular-svg-icon'; +import {NgReduxModule} from '@angular-redux/store'; +import {StoreModule} from "./shared/store/module"; +import {HttpInterceptorService} from './shared/utils/httpInterceptor/httpInterceptor.service'; +import {DrawingBoardModule} from './drawingBoard/drawingBoard.module'; +import {ScrollToModule} from '@nicky-lenaers/ngx-scroll-to'; +import {LogService} from './shared/utils/log/log.service'; +import {FeatureFlagsService} from "./shared/services/featureFlag/feature-flags.service"; +import {SupportComponent} from "./support/support.component"; +import {DrawingBoardGuard} from "./drawingBoard/guards/servicePlanningGuard/drawingBoardGuard"; +import {MsoService} from "./shared/services/msoService/mso.service"; +import {HealthStatusModule} from "./healthStatus/health-status.module"; @NgModule({ imports: [ @@ -31,11 +31,10 @@ import { LogService } from './shared/utils/log/log.service'; SharedModule.forRoot(), ScrollToModule.forRoot(), DrawingBoardModule, + HealthStatusModule, VlanTaggingModule, InstantiationStatusModule, - BrowseSdcModule, BootstrapModalModule, - BrowseSdcModule, AngularSvgIconModule, ReactiveFormsModule, NgReduxModule, @@ -43,37 +42,22 @@ import { LogService } from './shared/utils/log/log.service'; ], declarations: [ AppComponent, - HomeComponent, - HealthStatusComponent + SupportComponent, ], providers: [ - ApiService, LogService, + FeatureFlagsService, + DrawingBoardGuard, + MsoService, { provide: LocationStrategy, useClass: HashLocationStrategy }, { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true } ], bootstrap: [AppComponent] }) + export class AppModule { - private static CustomLoader: any; constructor(public appRef: ApplicationRef) { - //for ng2-bootstrap-modal in angualar 5 Object.defineProperty(appRef, '_rootComponents', { get: () => appRef['components'] }); } - hmrOnInit(store) { - console.log('HMR store', store); - } - hmrOnDestroy(store) { - let cmpLocation = this.appRef.components.map(cmp => cmp.location.nativeElement); - // recreate elements - store.disposeOldHosts = createNewHosts(cmpLocation); - // remove styles - removeNgStyles(); - } - hmrAfterDestroy(store) { - // display new elements - store.disposeOldHosts(); - delete store.disposeOldHosts; - } } diff --git a/vid-webpack-master/src/app/app.routing.ts b/vid-webpack-master/src/app/app.routing.ts index e6f42f9ed..779d17e3c 100644 --- a/vid-webpack-master/src/app/app.routing.ts +++ b/vid-webpack-master/src/app/app.routing.ts @@ -1,40 +1,23 @@ import {RouterModule, Routes} from '@angular/router'; - -import {HomeComponent} from './home/home.component'; -import {BrowseSdcComponent} from './browseSdc/browseSdc.component'; -import {ServicePlanningComponent, ServicePlanningEmptyComponent} from './drawingBoard/service-planning/service-planning.component'; -import {VlanTaggingComponent} from './vlanTagging/vlan-tagging.component'; -import {ServicePopupComponent} from './components/service-popup/service-popup.component'; -import { InstantiationStatusComponent } from './instantiationStatus/instantiationStatus.component'; -import {HealthStatusComponent} from "./healthStatus/health-status.component"; -import {FlagsResolve} from "./services/flags.resolve"; - +import {FlagsResolve} from "./shared/resolvers/flag/flag.resolver"; +import {DrawingBoardRoutes} from "./drawingBoard/drawingBoard.routing"; +import {GenericFormPopupComponent} from "./shared/components/genericFormPopup/generic-form-popup.component"; +import {SupportComponent} from "./support/support.component"; +import {HealthStatusRoutes} from "./healthStatus/health-status.routing"; +import {VlanTaggingRoutes} from "./vlanTagging/vlan-tagging.routing"; +import {InstantiationStatusRoutes} from "./instantiationStatus/InstantiationStatus.routing"; const routes: Routes = [ - { path: '', component: HomeComponent, pathMatch: 'full' ,resolve : { - flags : FlagsResolve, - }}, - { path: 'browseSdc', component: BrowseSdcComponent, resolve : { - flags : FlagsResolve, - }}, - { path: 'servicePlanning', component: ServicePlanningComponent, resolve : { - flags : FlagsResolve, - }}, - { path: 'servicePlanningEmpty', component: ServicePlanningEmptyComponent, resolve : { - flags : FlagsResolve, - }}, - { path: 'servicePopup', component: ServicePopupComponent, resolve : { - flags : FlagsResolve, - }}, - { path :'vlan', component : VlanTaggingComponent, resolve : { - flags : FlagsResolve, - }}, - { path: 'instantiationStatus', component: InstantiationStatusComponent, resolve : { - flags : FlagsResolve, - }}, - { path: 'healthStatus', component: HealthStatusComponent, resolve : { - flags : FlagsResolve, - }} - + ...DrawingBoardRoutes, + ...HealthStatusRoutes, + ...VlanTaggingRoutes, + ...InstantiationStatusRoutes, + { + path: 'servicePopup', + component: GenericFormPopupComponent, + resolve: { + flags: FlagsResolve + } + }, + {path: 'support', component: SupportComponent}, ]; - export const routing = RouterModule.forRoot(routes); diff --git a/vid-webpack-master/src/app/browseSdc/browseSdc.component.html b/vid-webpack-master/src/app/browseSdc/browseSdc.component.html deleted file mode 100644 index 7ffd7931c..000000000 --- a/vid-webpack-master/src/app/browseSdc/browseSdc.component.html +++ /dev/null @@ -1,26 +0,0 @@ -
- - - - - - Error: {{status}} - -

-
- -
- -

Browse SDC Service Models

-
- - - Loading table... - -
-
- - diff --git a/vid-webpack-master/src/app/browseSdc/browseSdc.component.scss b/vid-webpack-master/src/app/browseSdc/browseSdc.component.scss deleted file mode 100644 index 0d1678a94..000000000 --- a/vid-webpack-master/src/app/browseSdc/browseSdc.component.scss +++ /dev/null @@ -1,59 +0,0 @@ -div[ng-controller=ServiceModelController] .popupContents { - text-align: left; -} - -div[ng-controller=ServiceModelController] .statusLine { - vertical-align: center; -} - -div[ng-controller=ServiceModelController] .statusLine img { - width: 20px; - margin: 10px; -} - -div[ng-controller=ServiceModelController] .status { - margin-left: 5px; -} - -div[ng-controller=ServiceModelController] .feedback { - height: 35px; - vertical-align: center; -} - -div[ng-controller=ServiceModelController] .progress { - margin: 0px 10px; - font-weight: bold; -} - -div[ng-controller=ServiceModelController] .error { - width: 630px; - font-weight: bold; - font-size: 16px; - color: red; - margin: 0px 10px 0px 45px; -} - -div[ng-controller=ServiceModelController] .error img { - width: 25px; - margin: 0px 10px; -} - -div[ng-controller=ServiceModelController] .buttonRow { - text-align: center; - margin-bottom: 10px; -} - -div[ng-controller=ServiceModelController] .log { - width: 700px; - height: 500px; - border: solid black 1px; - text-align: left !important; - margin: 10px; - padding: 10px; - overflow: auto; -} - - -.previous-versions-button { - width: 113px; -} diff --git a/vid-webpack-master/src/app/browseSdc/browseSdc.component.ts b/vid-webpack-master/src/app/browseSdc/browseSdc.component.ts deleted file mode 100644 index 46f37dc2e..000000000 --- a/vid-webpack-master/src/app/browseSdc/browseSdc.component.ts +++ /dev/null @@ -1,176 +0,0 @@ -import {Component, Input, OnInit} from '@angular/core'; -import * as _ from 'lodash'; -import {SdcService} from '../services/sdc.service'; -import {DialogService} from 'ng2-bootstrap-modal'; -import {Constants} from '../shared/utils/constants'; -import {CustomTableColumnDefinition, CustomTableOptions} from './vid-table/vid-table.component'; -import {ServicePopupComponent} from "../components/service-popup/service-popup.component"; -import { PreviousVersionsComponent } from './previous-versions/previous-versions.component'; - -@Component({ - selector: 'browse-sdc', - templateUrl: './browseSdc.component.html', - styleUrls: ['./browseSdc.component.scss'] -}) - - -export class BrowseSdcComponent implements OnInit { - - isSpinnerVisible = false; - isProgressVisible = false; - error: boolean; - status: string; - // table - - private basicColumns: CustomTableColumnDefinition[]; - @Input () filterQuery = ''; - tableOptions: CustomTableOptions; - private wholeData: any[]; - - constructor(private _sdcService: SdcService, private dialogService: DialogService) {} - - initTableOptions() { - this.basicColumns = [ - { displayName: 'Action', key: 'action', type: 'button' , text: 'deploy', action: 'deploy' }, - { displayName: 'UUID', key: 'uuid', filter: 'text'}, - { displayName: 'invariantUUID', key: 'invariantUUID', filter: 'text'}, - { displayName: 'Name', key: 'name', filter: 'text'}, - { displayName: 'Version', key: 'version', filter: 'text'}, - { displayName: 'Category', key: 'category', filter: 'text'}, - { displayName: 'Distribution Status', key: 'distributionStatus', filter: 'text'}, - { displayName: 'Last Updated By', key: 'lastUpdaterUserId', filter: 'text'}, - { displayName: 'Tosca Model', key: 'toscaModelUrl', filter: 'text'} - ]; - - let columns: CustomTableColumnDefinition[] = this.basicColumns.concat( - {displayName: 'Action', key: 'actions', type: 'button', text: 'Previous Versions', - showCondition: 'hasPreviousVersion', action: 'loadPreviousData' } - ); - - this.tableOptions = { - data: [], - columns: columns, - config: { - sortBy: 'name', - sortOrder: 'asc', - pageSize: 10, - pageNumber: 1, - totalCount: 0, - totalPages: 0, - maxSize: 10, - showSelectCheckbox: true, - showSelectAll: true, - showSort: true, - clientSort: true, - clientPaging: true, - // displayPager: true, - // displayPageSize: true, - stickyHeader: true, - stickyHeaderOffset: 0, - stickyContainer: '.table1-container' - }, - }; - } - private deploy(service: any): void { - if (service) { - console.log('this row uuid:' + service.uuid); - } - - this.dialogService.addDialog(ServicePopupComponent, { - }) - } - - private filterDataWithHigherVersion(serviceData) { - let delimiter = '$$'; - let filterDataServices = {}; - for (let i = 0; i < serviceData.length; i++) { - let index = serviceData[i].invariantUUID.trim() + delimiter + serviceData[i].name.trim(); - if (!filterDataServices[index]) { - filterDataServices[index] = { - service: serviceData[i], - hasPreviousVersion: false - }; - } else { - filterDataServices[index].hasPreviousVersion = true; - if (parseFloat(serviceData[i].version.trim()) > parseFloat(filterDataServices[index].service.version.trim())) { - filterDataServices[index].service = serviceData[i]; - } - } - } - return Object.keys(filterDataServices).map(function (key) { - let service = filterDataServices[key].service; - service.hasPreviousVersion = filterDataServices[key].hasPreviousVersion; - return service; - }); - } - - private initData() { - this.isProgressVisible = true; - this.isSpinnerVisible = true; - console.log('getServicesModels: '); - this._sdcService.getServicesModels().subscribe( - // onNext() function - value => this.getServiceCallback(value), - // onError() function - error => this.getServiceOnError(error), - // onComplete() function - () => console.log('completed') - ); - } - - private getServiceCallback(responseBody: any): void { - console.log('response is ' , responseBody); - this.wholeData = responseBody.services; - this.tableOptions.data = this.filterDataWithHigherVersion(responseBody.services); - this.isSpinnerVisible = false; - this.isProgressVisible = false; - } - private getServiceOnError(error: any): void { - console.log('error is ' , error); - this.status = Constants.Status.FAILED_SERVICE_MODELS_ASDC; - this.error = true; - this.isSpinnerVisible = false; - } - - private loadPreviousVersionData(service): void { - let previousVersionData: any[] = _.filter(this.wholeData, function(item) { - return item.invariantUUID === service.invariantUUID && item.name === service.name && service.version !== item.version; - }); - - let modalTableOptions: CustomTableOptions = { - data: previousVersionData, - columns: this.basicColumns, - config: { - sortBy: 'version', - sortOrder: 'desc'} - }; - // open modal - this.dialogService.addDialog(PreviousVersionsComponent, { - title: service.name + ' - Previous Version', - tableOptions: modalTableOptions - }) - .subscribe( service => { - if (service) { - this.deploy(service); - } - }); - } - - - public clickAction(row) { - switch (row.actionName) { - case 'loadPreviousData': - this.loadPreviousVersionData(row); - break; - case 'deploy': - this.deploy(row); - break; - } - } - - ngOnInit() { - console.log('Browse SDC Service Models'); - this.initTableOptions(); - this.initData(); - } -} diff --git a/vid-webpack-master/src/app/browseSdc/browseSdc.module.ts b/vid-webpack-master/src/app/browseSdc/browseSdc.module.ts deleted file mode 100644 index b7dd78e54..000000000 --- a/vid-webpack-master/src/app/browseSdc/browseSdc.module.ts +++ /dev/null @@ -1,35 +0,0 @@ - -import { NgModule } from '@angular/core'; -import {BrowseSdcComponent} from './browseSdc.component'; -import {VidTableComponent} from './vid-table/vid-table.component'; -import {SdcService} from '../services/sdc.service'; -import {CommonModule} from '@angular/common'; -import {FormsModule, ReactiveFormsModule} from '@angular/forms'; -import {DataTableModule} from 'angular2-datatable'; -import {BootstrapModalModule} from 'ng2-bootstrap-modal'; -import {PreviousVersionsComponent} from './previous-versions/previous-versions.component'; -import {ServicePopupComponent} from '../components/service-popup/service-popup.component'; -import {ServiceInstanceDetailsComponent} from "../components/service-popup/service-instance-details/service-instance-details.component"; -import {TooltipModule} from 'ngx-tooltip'; -import {InputsModule} from "../modules/inputs.module"; -import {VnfPopupComponent} from "../components/vnf-popup/vnf-popup.components"; -import {VnfInstanceDetailsComponent} from "../components/vnf-popup/vnf-instance-details/vnf-instance-details.component"; -import { VnfInstanceDetailsService } from '../components/vnf-popup/vnf-instance-details/vnf-instance-details.service'; -import { SharedModule } from '../shared/shared.module'; -import { ServiceInstanceDetailsService } from '../components/service-popup/service-instance-details/service-instance-details.service'; -import { ServicePopupService } from '../components/service-popup/service-popup.service'; -import { DataFilterPipe } from '../shared/pipes/data-filter.pipe'; - - -@NgModule({ - imports: [CommonModule, FormsModule, ReactiveFormsModule, BootstrapModalModule, DataTableModule, TooltipModule, InputsModule, SharedModule.forRoot()], - providers: [SdcService, VnfInstanceDetailsService, ServiceInstanceDetailsService, ServicePopupService], - declarations: [BrowseSdcComponent, VidTableComponent, DataFilterPipe, PreviousVersionsComponent, - ServicePopupComponent, ServiceInstanceDetailsComponent, VnfPopupComponent, VnfInstanceDetailsComponent - ], - entryComponents: [BrowseSdcComponent, PreviousVersionsComponent, ServicePopupComponent, VnfPopupComponent], - exports: [ ] - -}) - -export class BrowseSdcModule { } diff --git a/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.component.ts b/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.component.ts deleted file mode 100644 index 8faf04d6c..000000000 --- a/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.component.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Component } from '@angular/core'; -import { DialogComponent, DialogService } from 'ng2-bootstrap-modal'; -import { CustomTableOptions } from '../vid-table/vid-table.component'; - -export interface PreviousVersionsModel { - - title: string; - tableOptions: CustomTableOptions; -} - -@Component({ - selector: 'previous-versions', - templateUrl: 'previous-versions.html', - styleUrls: ['previous-versions.css'] -}) -export class PreviousVersionsComponent extends DialogComponent implements PreviousVersionsModel { - - title: string; - tableOptions: CustomTableOptions; - - constructor(dialogService: DialogService) { - super(dialogService); - } - - public deploy(row) { - this.result = row; - this.close(); - } -} diff --git a/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.css b/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.css deleted file mode 100644 index 92bcbd100..000000000 --- a/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.css +++ /dev/null @@ -1,4 +0,0 @@ -.modal-dialog { - width: 1145px; - font-size: 11px; -} diff --git a/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.html b/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.html deleted file mode 100644 index 68209b8e8..000000000 --- a/vid-webpack-master/src/app/browseSdc/previous-versions/previous-versions.html +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.html b/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.html deleted file mode 100644 index 5650e5d35..000000000 --- a/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - -
- {{column.displayName}} -
- - {{row[column.key]}} -
- -
diff --git a/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.scss b/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.scss deleted file mode 100644 index f34887987..000000000 --- a/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.scss +++ /dev/null @@ -1,40 +0,0 @@ -table > thead > tr > th { - cursor: pointer; - position: relative; - background-image: none; - color: #fff; - background-color: #666; - a{ - color: #fff; - } -} - -.table-sortable > thead > tr > th:after, -.table-sortable > thead > tr > th.sort-false:after, -.table-sortable > thead > tr > th.sort-true:after { - font-family: FontAwesome; - padding-left: 5px; -} - -.table-sortable > thead > tr > th:after { - content: "\f0dc"; - color: #ddd; -} -.table-sortable > thead > tr > th.sort-false:after { - content: "\f0de"; - color: #767676; -} -.table-sortable > thead > tr > th.sort-true:after { - content: "\f0dd"; - color: #767676; -} -//.table-sortable > tbody > td > -.table-sortable { - tbody{ - td{ - .btn-primary{ - min-width: 100px; - } - } - } -} diff --git a/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.ts b/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.ts deleted file mode 100644 index aa2030908..000000000 --- a/vid-webpack-master/src/app/browseSdc/vid-table/vid-table.component.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Created by cp2122 on 1/2/2018. - */ -import { Component, Input, EventEmitter, Output } from '@angular/core'; -export class CustomTableColumnDefinition { - public displayName = ''; - public key = ''; - public type? = 'text'; - public text? = ''; // for button - public action? = ''; // for button - callback - public showCondition? = ''; // for button - // public binding = ''; - public filter? = ''; - // public computedClass: any; - // public isComputed = false; - // public isAnchor = false; - // public srefBinding = ''; -} - -export class CustomTableConfig { - public sortBy = ''; - public sortOrder = 'desc'; - public pageSize? = 10; - public pageNumber? = 1; - public totalCount? = 0; - public totalPages? = 0; - public maxSize? = 10; - public showSelectCheckbox? = false; - public showSelectAll? = true; - public showSort? = true; - public clientSort? = true; - public clientPaging? = true; - public stickyHeader? = true; - public stickyHeaderOffset? = 0; - public stickyContainer? = ''; -} - -export class CustomTableOptions { - public data: any[]; - public columns: Array; - public config: CustomTableConfig; - // public callbacks: any; -} -@Component({ - selector: 'vid-table', - styleUrls: ['./vid-table.component.scss'], - templateUrl: './vid-table.component.html' -}) - -export class VidTableComponent { - @Input() options: CustomTableOptions; - @Input() filterQuery = ''; - - @Output() clickEvent = new EventEmitter(); - clickBtn(row, actionName) { - row.actionName = actionName; - this.clickEvent.emit(row); - } -} diff --git a/vid-webpack-master/src/app/components/instance-popup/instance-popup.components.ts b/vid-webpack-master/src/app/components/instance-popup/instance-popup.components.ts deleted file mode 100644 index b8ce613d4..000000000 --- a/vid-webpack-master/src/app/components/instance-popup/instance-popup.components.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {ModelInformationItem} from "../../shared/components/model-information/model-information.component"; - - -export interface InstancePopup { - onCancelClick():void; - createModelInformationItems(): Array; - getModelName():string; -} - diff --git a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts b/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts deleted file mode 100644 index b6a2e3967..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts +++ /dev/null @@ -1,238 +0,0 @@ -import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core'; -import {FormControl, FormGroup, Validators} from "@angular/forms"; -import {ServicePopupDataModel} from './servicePopupDataModel'; -import {AaiService} from '../../../services/aaiService/aai.service'; -import {updateServiceInstance} from "../../../service.actions"; -import * as _ from 'lodash'; -import {ServiceModel} from "../../../shared/models/serviceModel"; -import {ModelInfo} from "../../../shared/models/modelInfo"; -import {loadProductFamiliesAction} from "../../../services/aaiService/aai.actions"; -import {Observable} from "rxjs/Observable"; -import {SelectOptionInterface} from "../../../shared/models/selectOption"; -import {NgRedux, select} from "@angular-redux/store"; -import {AppState} from "../../../store/reducers"; -import {isNullOrUndefined} from 'util'; -import {ServiceInstanceDetailsService} from './service-instance-details.service'; -import {NumbersLettersUnderscoreValidator} from '../../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator'; -import {DefaultDataGeneratorService} from '../../../shared/services/defaultDataServiceGenerator/default.data.generator.service'; - - -@Component({ - selector: 'service-instance-details', - templateUrl: 'service-instance-details.html', - styleUrls: ['service-instance-details.scss'], - providers: [AaiService] -}) - -export class ServiceInstanceDetailsComponent implements OnInit, OnChanges { - ngOnChanges(changes: SimpleChanges): void { - if (changes["serviceInstance"] !== undefined && changes["serviceInstance"].currentValue !== changes["serviceInstance"].previousValue && changes["serviceInstance"].currentValue !== null) { - this.oldServiceInstance = Object.assign({}, this.serviceInstance); - } - } - _serviceModel: ServiceModel; - @Input () serviceInstance: any; - @Input () dynamicInputs; - @Input () servicesQty: number; - @Input () - set serviceModel(serviceModel: ServiceModel) { - this._serviceModel = serviceModel; - this.updateFormGroupControlsWithServiceModel(serviceModel); - } - @ViewChild('serviceForm') serviceForm: 'ServiceForm'; - @Output() closePopup : EventEmitter = new EventEmitter(); - @Output() onDataChanged: EventEmitter = new EventEmitter(); - oldServiceInstance = {}; - - //todo: implement Epics and use @select to fetch the rest of the form's data as done with productFamilies. - //that way we can loose the updateFormData function and the subscription to store in the constructor. - @select(['service','productFamilies']) - readonly productFamilies : Observable; - serviceDetails:any = { - - }; - servicePopupDataModel: ServicePopupDataModel = new ServicePopupDataModel(); - serviceInstanceDetailsFormGroup: FormGroup; - serviceInstanceDetailsService : ServiceInstanceDetailsService; - - constructor(private _aaiService: AaiService, private store: NgRedux, private _serviceInstanceDetailsService : ServiceInstanceDetailsService, private _defaultDataGeneratorService : DefaultDataGeneratorService) { - this.store.subscribe(() => {this.updateFormData()}); - this.serviceInstanceDetailsService = this._serviceInstanceDetailsService; - this.serviceInstanceDetailsFormGroup = this.createFormGroup(); - - this.serviceInstanceDetailsFormGroup.valueChanges.subscribe(()=> { - this.onDataChanged.next(); - }) - } - - ngOnInit() { - this.subscribeToFormChanges(); - this._aaiService.getSubscribers().subscribe(); - this._aaiService.getCategoryParameters(null).subscribe(); - this._aaiService.getAicZones().subscribe(); - this.store.dispatch(loadProductFamiliesAction()); - } - - - createFormGroup(): FormGroup { - const formGroup = new FormGroup({ - globalSubscriberId: new FormControl( - Validators.compose([Validators.required]) - ), - productFamilyId: new FormControl(), - subscriptionServiceType: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])), - lcpCloudRegionId: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])), - tenantId: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])), - aicZoneId: new FormControl(), - projectName: new FormControl(), - owningEntityId: new FormControl(Validators.compose([Validators.required])), - rollbackOnFailure: new FormControl(null, Validators.required), - }); - - return formGroup; - } - - updateFormGroupControlsWithServiceModel(serviceModel: ServiceModel) { - this.serviceInstanceDetailsFormGroup.markAsUntouched(); - - if (serviceModel) { - this.serviceDetails.isUserProvidedNaming = serviceModel.isUserProvidedNaming; - if (serviceModel.isUserProvidedNaming) { - this.serviceInstanceDetailsFormGroup.addControl('instanceName', new FormControl('', Validators.compose([Validators.required, NumbersLettersUnderscoreValidator.valid]))) - }else{ - this.serviceInstanceDetailsFormGroup.removeControl('instanceName'); - } - - if (serviceModel.isMultiStepDesign) { - this.serviceInstanceDetailsFormGroup.addControl('pause', new FormControl(true)); - }else{ - this.serviceInstanceDetailsFormGroup.removeControl('pause'); - } - } - } - - updateFormData() { - let service = this.store.getState().service; - this.servicePopupDataModel.subscribers = service.subscribers; - this.servicePopupDataModel.serviceTypes = service.serviceTypes[this.servicePopupDataModel.globalCustomerId]; - this.servicePopupDataModel.lcpRegions = service.lcpRegionsAndTenants.lcpRegionList; - if (this.serviceInstance) { - this.servicePopupDataModel.tenants = service.lcpRegionsAndTenants.lcpRegionsTenantsMap[this.serviceInstance.lcpCloudRegionId]; - } - this.servicePopupDataModel.aicZones = service.aicZones; - this.servicePopupDataModel.owningEntities = _.get(service.categoryParameters, 'owningEntityList'); - this.servicePopupDataModel.projects = _.get(service.categoryParameters, 'projectList'); - this.onDataChanged.next(); - } - - subscribeToFormChanges(): void { - this.serviceInstanceDetailsFormGroup.get('globalSubscriberId').valueChanges.subscribe(val => { - this.updateServiceTypes(val); - this.setDisabledState(val, 'subscriptionServiceType'); - - }); - this.serviceInstanceDetailsFormGroup.get('subscriptionServiceType').valueChanges.subscribe(val => { - this.getTenants(val); - this.setDisabledState(val, 'lcpCloudRegionId'); - - }); - this.serviceInstanceDetailsFormGroup.get('lcpCloudRegionId').valueChanges.subscribe(val => { - this.setDisabledState(val, 'tenantId'); - this.updateTenantList(val); - - }); - - this.serviceInstanceDetailsFormGroup.get('tenantId').valueChanges.subscribe(val => { - this.serviceDetails.tenantName = this.getNameFromListById(this.servicePopupDataModel.tenants, val); - this.onDataChanged.next(); - }); - - this.serviceInstanceDetailsFormGroup.get('aicZoneId').valueChanges.subscribe(val => { - this.serviceDetails.aicZoneName = this.getNameFromListById(this.servicePopupDataModel.aicZones, val); - this.onDataChanged.next(); - }); - } - - getNameFromListById(list, id:string ) { - if(list && id) { - let filterItem = list.filter(item => { - return item.id == id; - }) - return filterItem && filterItem[0].name; - } - return null; - } - - setDisabledState(val, field: string): void { - if(val) { - this.serviceInstanceDetailsFormGroup.controls[field].enable(); - } else { - this.serviceInstanceDetailsFormGroup.controls[field].disable(); - } - } - - isShowingNotificationArea(): boolean { - return this.servicesQty > 1; - } - - updateServiceTypes(subscriberId) { - if (subscriberId) { - this.servicePopupDataModel.globalCustomerId = subscriberId; - this._aaiService.getServiceTypes(subscriberId).subscribe(() => { - this.updateFormData(); - this.onDataChanged.next(); - }, (error) => { - - }); - } - } - - updateTenantList(cloudRegionId) { - this.servicePopupDataModel.tenants = this.store.getState().service.lcpRegionsAndTenants.lcpRegionsTenantsMap[cloudRegionId]; - this.onDataChanged.next(); - } - - getTenants(serviceType) { - if (serviceType) { - this._aaiService.getLcpRegionsAndTenants(this.servicePopupDataModel.globalCustomerId, serviceType).subscribe(()=>{ - this.onDataChanged.next(); - }); - } - } - - onSubmit(formValues): void { - formValues.bulkSize = this.servicesQty; - let dynamicFields: { [dynamicField: string] : string; }; - dynamicFields = {}; - this.dynamicInputs.map(function (x) { - let dynamicField: string = x.id; - dynamicFields[dynamicField] = formValues[dynamicField]; - delete formValues[dynamicField]; - }); - formValues.instanceParams = []; - formValues.instanceParams.push(dynamicFields); - formValues.modelInfo = new ModelInfo(this._serviceModel); - Object.assign(formValues, this.serviceDetails); - this.store.dispatch(updateServiceInstance(formValues, this._serviceModel.uuid)); - if (this.store.getState().global.flags['FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD']){ - this._defaultDataGeneratorService.updateReduxOnFirstSet(this._serviceModel.uuid,formValues); - } - window.parent.postMessage( { - eventId: 'submitIframe', - data: { - serviceModelId: this._serviceModel.uuid - } - }, "*"); - this.closePopup.emit(this._serviceModel.uuid); - } - - hasApiError(controlName : string, data : Array){ - if(!isNullOrUndefined(this.servicePopupDataModel) && !isNullOrUndefined(data)){ - if(!this.serviceInstanceDetailsFormGroup.controls[controlName].disabled && data.length === 0){ - return true; - } - } - return false; - } - -} diff --git a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.html b/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.html deleted file mode 100644 index 3d632bd89..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.html +++ /dev/null @@ -1,168 +0,0 @@ - -
-
- - - - -
- - - - -
- -
- - - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - - -
- -
- - - - -
- -
- - - -
-
- - - -
-
- - -
- - - -
-
diff --git a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.scss b/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.scss deleted file mode 100644 index 928343d43..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.scss +++ /dev/null @@ -1,64 +0,0 @@ -#service-instance-details { - position: relative; - - #notification-area { - color: #959595; - font-size: 12px; - position: absolute; - top: 3px; - left: 30px; - } - - height: 100%; - overflow: auto; - padding: 30px; - - /deep/ { - .form-control { - border-radius: 2px; - box-shadow: none; - border-color: #D2D2D2; - } - - label { - font-family: OpenSans-Semibold; - font-size: 12px; - } - - select { - @extend .form-control; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background: url('../../../../assets/img/chevron.svg') 0 0 no-repeat; - background-size: 24px; - background-position-x: right; - background-position-y: center; - font-family: OpenSans-Italic; - font-size: 14px; - color: #959595; - height: 38px; - } - - input:not([type='checkbox']) { - @extend .form-control; - height: 38px; - } - - .form-control[disabled], fieldset[disabled] .form-control { - opacity: 0.5; - } - .input-text { - border: 1px solid #D2D2D2; - border-radius: 2px; - } - - .details-item { - margin-bottom: 20px; - } - } - - .checkbox-label { - font-family: OpenSans-Regular; - } -} diff --git a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.spec.ts b/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.spec.ts deleted file mode 100644 index 605653bd0..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.spec.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { getTestBed, TestBed } from '@angular/core/testing'; -import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; -import { ServiceInstanceDetailsService } from './service-instance-details.service'; -import { NgRedux } from '@angular-redux/store'; - -export class MockAppStore {} - -describe('Service instance details service', () => { - let injector; - let service: ServiceInstanceDetailsService; - let httpMock: HttpTestingController; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - providers: [ServiceInstanceDetailsService, - {provide: NgRedux, useClass: MockAppStore}] - }); - - injector = getTestBed(); - service = injector.get(ServiceInstanceDetailsService); - httpMock = injector.get(HttpTestingController); - }); -}); - - diff --git a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.ts b/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.ts deleted file mode 100644 index 99b390d2f..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.service.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Injectable } from '@angular/core'; -import { isNullOrUndefined } from 'util'; -import { FormGroup } from '@angular/forms'; -import * as _ from 'lodash'; -import { createVFModuleInstance, updateVFModuleInstance, updateVNFInstance } from '../../../service.actions'; -import { NgRedux } from '@angular-redux/store'; -import { AppState } from '../../../store/reducers'; - -@Injectable() -export class ServiceInstanceDetailsService { - static controlsFieldsStatus = {}; - - constructor(private store: NgRedux) { } - hasApiError(controlName: string, data: Array, serviceInstanceDetailsFormGroup: FormGroup) { - if (!isNullOrUndefined(data)) { - if (!serviceInstanceDetailsFormGroup.controls[controlName].disabled && data.length === 0) { - return true; - } - } - return false; - } -} diff --git a/vid-webpack-master/src/app/components/service-popup/service-instance-details/servicePopupDataModel.ts b/vid-webpack-master/src/app/components/service-popup/service-instance-details/servicePopupDataModel.ts deleted file mode 100644 index c7894e2cd..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-instance-details/servicePopupDataModel.ts +++ /dev/null @@ -1,32 +0,0 @@ -import {SelectOption, SelectOptionInterface} from "../../../shared/models/selectOption"; - -export class ServicePopupDataModel { - subscribers: SelectOptionInterface[]; - serviceTypes: SelectOptionInterface[]; - aicZones: SelectOptionInterface[]; - lcpRegions: SelectOptionInterface[]; - productFamilies: SelectOptionInterface[]; - lcpRegionsTenantsMap: object; - tenants: SelectOptionInterface[]; - projects: SelectOptionInterface[]; - owningEntities: SelectOptionInterface[]; - globalCustomerId: string; - rollbackOnFailure: SelectOptionInterface[]; - - - constructor(){ - this.subscribers = null; - this.serviceTypes = null; - this.aicZones = null; - this.lcpRegions = null; - this.lcpRegionsTenantsMap = {}; - this.tenants = null; - this.productFamilies = null; - this.projects = null; - this.owningEntities = null; - this.rollbackOnFailure = [ - new SelectOption({id: 'true', name: 'Rollback'}), - new SelectOption({id: 'false', name: 'Don\'t Rollback'}) - ]; - } -} diff --git a/vid-webpack-master/src/app/components/service-popup/service-popup.component.ts b/vid-webpack-master/src/app/components/service-popup/service-popup.component.ts deleted file mode 100644 index 908ae4adf..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-popup.component.ts +++ /dev/null @@ -1,144 +0,0 @@ -import {Component, ViewChild} from '@angular/core'; -import {DialogComponent, DialogService} from 'ng2-bootstrap-modal'; -import {ServiceModel} from '../../shared/models/serviceModel'; -import {Constants} from '../../shared/utils/constants'; -import {ServiceInstanceDetailsComponent} from './service-instance-details/service-instance-details.component'; -import {ActivatedRoute} from "@angular/router"; -import {AaiService} from "../../services/aaiService/aai.service"; -import {Utils} from "../../utils/utils"; -import {ServicePlanningService} from "../../services/service-planning.service"; -import * as _ from 'lodash'; -import {ModelInformationItem} from '../../shared/components/model-information/model-information.component'; -import {deleteServiceInstance} from '../../service.actions'; - -import {InstancePopup} from "../instance-popup/instance-popup.components"; -import {NgRedux} from "@angular-redux/store"; -import {AppState} from "../../store/reducers"; -import {ServicePopupService} from './service-popup.service'; -import {IframeService} from "../../shared/utils/iframe.service"; - -export interface ServicePopupModel { - serviceModel: ServiceModel -} - -@Component({ - selector: 'service-popup', - templateUrl: 'service-popup.html', - styleUrls: ['service-popup.scss'], - providers: [AaiService, ServicePopupService] -}) - -export class ServicePopupComponent extends DialogComponent - implements ServicePopupModel, InstancePopup{ - @ViewChild(ServiceInstanceDetailsComponent) serviceInstanceDetails: ServiceInstanceDetailsComponent; - - serviceModel: ServiceModel; - serviceModelId: string; - serviceInstance: any = { - 'rollbackOnFailure' : 'false' - }; - title: string = Constants.ServicePopup.TITLE; - dynamicInputs: any[] = null; - - maxServiceQty:number = 50; - minServiceQty:number = 1; - servicesQty = 1; //default - quantityOptions = this.getQuantityOptions(); - - modelInformationItems: Array = []; - hasGeneralApiError : boolean = false; - parentElementClassName = 'content'; - - constructor(dialogService: DialogService, private route: ActivatedRoute, private _aaiService: AaiService, - private _iframeService : IframeService, - private _servicePlanningService: ServicePlanningService, private store: NgRedux, private _servicePopupService : ServicePopupService) { - super(dialogService); - this.title = Constants.ServicePopup.TITLE; - } - - updateGeneralErrorSection() : void { - this.hasGeneralApiError = this._servicePopupService.onControlError(this.serviceInstanceDetails, this.serviceInstanceDetails.serviceInstanceDetailsFormGroup); - } - - - ngOnInit() { - this.route - .queryParams - .subscribe(params => { - this.serviceModelId = params['serviceModelId']; - if(params['isCreate']=="true") { - this.store.dispatch(deleteServiceInstance(this.serviceModelId)); - } - this.updateServiceModelById(this.serviceModelId); - this.updateInstanceFromStore(); - }); - } - - updateInstanceFromStore() { - let serviceInstance; - if (_.has(this.store.getState().service.serviceInstance, this.serviceModelId)) { - serviceInstance = Object.assign({}, this.store.getState().service.serviceInstance[this.serviceModelId]); - } - - this.serviceInstance = serviceInstance ? serviceInstance : this.serviceInstance; - this.servicesQty = serviceInstance ? serviceInstance.bulkSize : 1; - if (serviceInstance && serviceInstance.instanceParams && serviceInstance.instanceParams[0]) { - this.dynamicInputs = this.dynamicInputs.map(function (x) { - x.value = (serviceInstance.instanceParams[0][x.id]) ? serviceInstance.instanceParams[0][x.id] : x.value; - return x; - }); - } - } - - updateServiceModelById(serviceModelId) { - this._aaiService.getServiceModelById(serviceModelId).subscribe( - value => { - const convertedModel = Utils.convertModel(value); - this.serviceModel = new ServiceModel(convertedModel); - let displayInputs = Object.assign({},convertedModel.service.inputs); - this.dynamicInputs = _.isEmpty(displayInputs)? [] : this._servicePlanningService.getArbitraryInputs(displayInputs); - this.modelInformationItems = this.createModelInformationItems(); - }, - error => {console.log('error is ', error)}, - () => {console.log('completed')} - ); - } - - createModelInformationItems() : Array { - return [ - new ModelInformationItem("Model version", "modelVersion", [this.serviceModel.version], "", true), - new ModelInformationItem("Description", "description", [this.serviceModel.description]), - new ModelInformationItem("Category", "category", [this.serviceModel.category]), - new ModelInformationItem("UUID", "uuid", [this.serviceModel.uuid], Constants.ServicePopup.TOOLTIP_UUID, true), - new ModelInformationItem("Invariant UUID", "invariantUuid", [this.serviceModel.invariantUuid], Constants.ServicePopup.TOOLTIP_INVARIANT_UUID, true), - new ModelInformationItem("Service type", "serviceType", [this.serviceModel.serviceType]), - new ModelInformationItem("Service role", "serviceRole", [this.serviceModel.serviceRole]) - ]; - } - - onCancelClick() { - this._iframeService.removeClassCloseModal(this.parentElementClassName); - this.dialogService.removeDialog(this); - this.serviceInstance = this.serviceInstanceDetails.oldServiceInstance; - - this._servicePopupService.resetDynamicInputs(this.serviceInstanceDetails, this.dynamicInputs); - // Delaying the iframe close in few milliseconds. - // This should workaround a problem in Selenium tests' that - // blocks after click because the iframe goes out before - // the driver understands it was clicked. Similar bug is - // described here: - // - https://github.com/mozilla/geckodriver/issues/611 - // - https://bugzilla.mozilla.org/show_bug.cgi?id=1223277 - setTimeout(() => { - window.parent.postMessage("closeIframe", "*"); - }, 15); - } - - getModelName(): string { - return (this.serviceModel && this.serviceModel.name) || ""; - } - - getQuantityOptions(){ - return _.range(this.minServiceQty, this.maxServiceQty + 1); - } -} diff --git a/vid-webpack-master/src/app/components/service-popup/service-popup.html b/vid-webpack-master/src/app/components/service-popup/service-popup.html deleted file mode 100644 index e967daa3b..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-popup.html +++ /dev/null @@ -1,52 +0,0 @@ - diff --git a/vid-webpack-master/src/app/components/service-popup/service-popup.scss b/vid-webpack-master/src/app/components/service-popup/service-popup.scss deleted file mode 100644 index aa4552d2f..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-popup.scss +++ /dev/null @@ -1,185 +0,0 @@ -$grid-border: 1px #d2d2d2 solid; - -#service-popup { - color: #191919; - - .left-panel { - background: #f2f2f2; - border-right: $grid-border; - } - - .header-common { - height: 100%; - align-items: center; - display: flex; - font-family: OpenSans-Semibold; - font-size: 12px; - } - - .header-text { - padding-left: 30px; - @extend .header-common; - } - - .header-left { - grid-area: header-left; - @extend .header-text; - @extend .left-panel; - border-bottom: $grid-border; - - span { - font-family: OpenSans-Regular; - font-size: 14px; - }; - } - - .header-right { - grid-area: header-right; - - @extend .header-text; - border-bottom: $grid-border; - } - - .quantity-label { - grid-area: quantity-label; - @extend .header-common; - border-bottom: $grid-border; - height: 100%; - font-family: OpenSans-Regular; - } - - .quantity { - grid-area: quantity; - border-left: $grid-border; - border-bottom: $grid-border; - border-top-style: none; - font-family: OpenSans-Semibold; - text-align: start; - text-indent: 10px; - } - - .quantity-select { - width: 78px; - height: 100%; - border: 0; - background: white; - outline: none; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background: url('../../../assets/img/chevron.svg') 0 0 no-repeat; - background-size: 24px; - background-position-x: right; - background-position-y: center; - } - input[type="number"]:hover::-webkit-inner-spin-button { - height: 20px; - } - - .service-model { - grid-area: service-model; - - padding: 30px; - overflow: auto; - @extend .left-panel; - } - - .service-instance { - grid-area: service-instance; - } - - .popup-content { - display: grid; - grid-template-columns: 400px auto 30px 93px; - grid-template-rows: 50px calc(100vh - 180px); - grid-template-areas: - "header-left header-right quantity-label quantity" - "service-model service-instance service-instance service-instance"; - padding: 0; - } -} - -.modal { - background-color: #191919; - opacity: 0.8; -} - -.modal-dialog { - position: relative; - width: auto; - margin: 0; -} -@media (min-width: 1150px) { - .popup-content { - grid-template-rows: 30px 680px; - } -} - -.modal-content { - border-radius: 0; - box-shadow: none; - border: none; -} - -.modal-footer { - .cancel { - width: 120px; - height: 36px; - background: #ffffff; - border: 1px solid #009fdb; - border-radius: 2px; - span { - font-family: OpenSans-Regular; - font-size: 14px; - color: #009fdb; - line-height: 16px; - } - } - - .submit { - width: 120px; - height: 36px; - background: #009fdb; - border-radius: 2px; - border-color: #009fdb; - span { - font-family: OpenSans-Regular; - font-size: 14px; - color: #FFFFFF; - line-height: 16px; - } - } -} - -.modal-header { - background-color: #009fdb; - - padding-bottom: 13px; - padding-top: 13px; - padding-left: 29px; - padding-right: 21px; - - .close { - font-size: 32px; - font-weight: 200; - color: #d8d8d8; - text-shadow: none; - filter: none; - opacity: 1; - } - - .modal-title { - font-family: OpenSans-Regular; - font-size: 24px; - color: #fff; - line-height: 34px; - } -} -// -//@media (min-width: 1200px) { -// .service-model, -// .service-instance { -// width: 1050px; -// margin: 30px auto; -// } -//} diff --git a/vid-webpack-master/src/app/components/service-popup/service-popup.service.spec.ts b/vid-webpack-master/src/app/components/service-popup/service-popup.service.spec.ts deleted file mode 100644 index cddc6400a..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-popup.service.spec.ts +++ /dev/null @@ -1,138 +0,0 @@ - -import { TestBed, getTestBed} from '@angular/core/testing'; -import { - HttpClientTestingModule, - HttpTestingController -} from '@angular/common/http/testing'; -import { ServicePopupService } from './service-popup.service'; -import { FormControl, FormGroup, Validators } from '@angular/forms'; -import { NumbersLettersUnderscoreValidator } from '../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator'; - -describe('Service Popup Service', () => { - let injector; - let service: ServicePopupService; - let httpMock: HttpTestingController; - let form : FormGroup; - let servicePopupDataModel; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - providers: [ServicePopupService] - }); - - injector = getTestBed(); - service = injector.get(ServicePopupService); - httpMock = injector.get(HttpTestingController); - - form = generateFormGroup(); - servicePopupDataModel = generateServicePopupDataModel(); - }); - - describe('#resetDynamicInputs', () => { - it('resetDynamicInputs should reset dymanic fields',(done: DoneFn) => { - const dynamicInputs = generateDynamicInputs(); - let serviceForm = generateFormGroup(); - serviceForm.addControl(dynamicInputs[0].name, new FormControl({value: dynamicInputs[0].value, disabled: false})); - - serviceForm.controls[dynamicInputs[0].name].setValue("diffValue"); - service.resetDynamicInputs({ - serviceInstanceDetailsFormGroup : serviceForm, - dynamicInputs : dynamicInputs - }, dynamicInputs); - - expect(serviceForm.controls[dynamicInputs[0].name].value).toEqual(dynamicInputs[0].value); - done(); - }) - }); - - describe('#onControlError', () => { - - it('should return true if instanceName is illegal', (done: DoneFn) => { - form.controls['instanceName'].setValue("illegal - illegal"); - - let result : boolean = service.onControlError(servicePopupDataModel, form); - expect(result).toBeTruthy(); - done(); - }); - - it('should return false if instanceName is legal', (done: DoneFn) => { - - form.controls['instanceName'].setValue("legal"); - let result = service.onControlError(servicePopupDataModel, form); - expect(result).toBeFalsy(); - done(); - }); - - it('should return false if lcpRegions is empty and is disabled', (done: DoneFn) => { - servicePopupDataModel.servicePopupDataModel['lcpRegions'] = []; - let result = service.onControlError(servicePopupDataModel, form); - expect(result).toBeFalsy(); - done(); - }); - - it('should return true if lcpRegions is empty', (done: DoneFn) => { - servicePopupDataModel.servicePopupDataModel['lcpRegions'] = []; - form.controls['lcpCloudRegionId'].enable(); - let result = service.onControlError(servicePopupDataModel, form); - expect(result).toBeTruthy(); - done() - }); - }); - - - function generateDynamicInputs(){ - return JSON.parse('[{"id":"2017488_adiodvpe0_ASN","type":"string","name":"2017488_adiodvpe0_ASN","value":"AV_vPE","isRequired":true,"description":"AV/PE"}]'); - } - - - function generateServicePopupDataModel() { - return { - "servicePopupDataModel" : JSON.parse('{"subscribers":[{"id":"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb","name":"Mobility","isPermitted":false},{"id":"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc","name":"PACKET CORE","isPermitted":false},{"id":"e433710f-9217-458d-a79d-1c7aff376d89","name":"USP VOICE","isPermitted":true}],"serviceTypes":[{"id":"0","name":"vFlowLogic","isPermitted":false},{"id":"1","name":"VIRTUAL USP","isPermitted":true},{"id":"2","name":"Mobility","isPermitted":false},{"id":"3","name":"vBNG","isPermitted":false},{"id":"4","name":"vVoiceMail","isPermitted":false},{"id":"5","name":"Nimbus","isPermitted":false},{"id":"6","name":"vSEGW","isPermitted":false},{"id":"7","name":"vVM","isPermitted":false},{"id":"8","name":"vOTA","isPermitted":false},{"id":"9","name":"vMME","isPermitted":false},{"id":"10","name":"vMNS","isPermitted":false},{"id":"11","name":"vSCP","isPermitted":false},{"id":"12","name":"VPMS","isPermitted":false},{"id":"13","name":"vMMSC","isPermitted":false},{"id":"14","name":"SSD","isPermitted":false},{"id":"15","name":"vMOG","isPermitted":false},{"id":"16","name":"FIRSTNET","isPermitted":false},{"id":"17","name":"ACTIVE_CHARGE","isPermitted":false},{"id":"18","name":"vHSS","isPermitted":false}],"aicZones":[{"id":"NFT1","name":"NFTJSSSS-NFT1"},{"id":"JAG1","name":"YUDFJULP-JAG1"},{"id":"YYY1","name":"UUUAIAAI-YYY1"},{"id":"BAN1","name":"VSDKYUTP-BAN1"},{"id":"DKJ1","name":"DKJSJDKA-DKJ1"},{"id":"MCS1","name":"ASACMAMS-MCS1"},{"id":"UIO1","name":"uioclli1-UIO1"},{"id":"RAJ1","name":"YGBIJNLQ-RAJ1"},{"id":"OPA1","name":"opaclli1-OPA1"},{"id":"SDE1","name":"ZXCVBNMA-SDE1"},{"id":"VEN2","name":"FGHJUHIL-VEN2"},{"id":"ORL1","name":"ORLDFLMA-ORL1"},{"id":"JAD1","name":"JADECLLI-JAD1"},{"id":"ZXL1","name":"LWLWCANN-ZXL1"},{"id":"CKL1","name":"CLKSKCKK-CKL1"},{"id":"SDF1","name":"sdfclli1-SDF1"},{"id":"RAD1","name":"RADICAL1-RAD1"},{"id":"KIT1","name":"BHYJFGLN-KIT1"},{"id":"REL1","name":"INGERFGT-REL1"},{"id":"JNL1","name":"CJALSDAC-JNL1"},{"id":"OLK1","name":"OLKOLKLS-OLK1"},{"id":"CHI1","name":"CHILLIWE-CHI1"},{"id":"UUU4","name":"UUUAAAUU-UUU4"},{"id":"TUF1","name":"TUFCLLI1-TUF1"},{"id":"KJN1","name":"CKALDKSA-KJN1"},{"id":"SAM1","name":"SNDGCA64-SAN1"},{"id":"SCK1","name":"SCKSCKSK-SCK1"},{"id":"HJH1","name":"AOEEQQQD-HJH1"},{"id":"HGD1","name":"SDFQWHGD-HGD1"},{"id":"KOR1","name":"HYFLNBVT-KOR1"},{"id":"ATL43","name":"AICLOCID-ATL43"},{"id":"ATL54","name":"AICFTAAI-ATL54"},{"id":"ATL66","name":"CLLIAAII-ATL66"},{"id":"VEL1","name":"BNMLKUIK-VEL1"},{"id":"ICC1","name":"SANJITAT-ICC1"},{"id":"MNT11","name":"WSXEFBTH-MNT11"},{"id":"DEF2","name":"WSBHGTYL-DEF2"},{"id":"MAD11","name":"SDFQWGKL-MAD11"},{"id":"OLG1","name":"OLHOLHOL-OLG1"},{"id":"GAR1","name":"NGFVSJKO-GAR1"},{"id":"SAN22","name":"GNVLSCTL-SAN22"},{"id":"HRG1","name":"HRGHRGGS-HRG1"},{"id":"JCS1","name":"JCSJSCJS-JCS1"},{"id":"DHA12","name":"WSXEDECF-DHA12"},{"id":"HJE1","name":"AOEEWWWD-HJE1"},{"id":"NCA1","name":"NCANCANN-NCA1"},{"id":"IOP1","name":"iopclli1-IOP1"},{"id":"RTY1","name":"rtyclli1-RTY1"},{"id":"KAP1","name":"HIOUYTRQ-KAP1"},{"id":"ZEN1","name":"ZENCLLI1-ZEN1"},{"id":"HKA1","name":"JAKHLASS-HKA1"},{"id":"CQK1","name":"CQKSCAKK-CQK1"},{"id":"SAI1","name":"UBEKQLPD-SAI1"},{"id":"ERT1","name":"ertclli1-ERT1"},{"id":"IBB1","name":"PLMKOIJU-IBB1"},{"id":"TIR2","name":"PLKINHYI-TIR2"},{"id":"HSD1","name":"CHASKCDS-HSD1"},{"id":"SLF78","name":"SDCTLFN1-SLF78"},{"id":"SEE78","name":"SDCTEEE4-SEE78"},{"id":"SAN13","name":"TOKYJPFA-SAN13"},{"id":"SAA78","name":"SDCTAAA1-SAA78"},{"id":"LUC1","name":"ATLDFGYC-LUC1"},{"id":"AMD13","name":"MEMATLAN-AMD13"},{"id":"TOR1","name":"TOROONXN-TOR1"},{"id":"QWE1","name":"QWECLLI1-QWE1"},{"id":"ZOG1","name":"ZOGASTRO-ZOG1"},{"id":"CAL33","name":"CALIFORN-CAL33"},{"id":"SHH78","name":"SDIT1HHH-SHH78"},{"id":"DSA1","name":"LKJHGFDS-DSA1"},{"id":"CLG1","name":"CLGRABAD-CLG1"},{"id":"BNA1","name":"BNARAGBK-BNA1"},{"id":"ATL84","name":"CANTTCOC-ATL84"},{"id":"APP1","name":"WBHGTYUI-APP1"},{"id":"RJN1","name":"RJNRBZAW-RJN1"},{"id":"EHH78","name":"SDCSHHH5-EHH78"},{"id":"mac10","name":"PKGTESTF-mac10"},{"id":"SXB78","name":"SDCTGXB1-SXB78"},{"id":"SAX78","name":"SDCTAXG1-SAX78"},{"id":"SYD1","name":"SYDNAUBV-SYD1"},{"id":"TOK1","name":"TOKYJPFA-TOK1"},{"id":"KGM2","name":"KGMTNC20-KGM2"},{"id":"DCC1b","name":"POIUYTGH-DCC1b"},{"id":"SKK78","name":"SDCTKKK1-SKK78"},{"id":"SGG78","name":"SDCTGGG1-SGG78"},{"id":"SJJ78","name":"SDCTJJJ1-SJJ78"},{"id":"SBX78","name":"SDCTBXG1-SBX78"},{"id":"LAG1","name":"LARGIZON-LAG1"},{"id":"IAA1","name":"QAZXSWED-IAA1"},{"id":"POI1","name":"PLMNJKIU-POI1"},{"id":"LAG1a","name":"LARGIZON-LAG1a"},{"id":"PBL1","name":"PBLAPBAI-PBL1"},{"id":"LAG45","name":"LARGIZON-LAG1a"},{"id":"MAR1","name":"MNBVCXZM-MAR1"},{"id":"HST70","name":"HSTNTX70-HST70"},{"id":"DCC1a","name":"POIUYTGH-DCC1a"},{"id":"TOL1","name":"TOLDOH21-TOL1"},{"id":"LON1","name":"LONEENCO-LON1"},{"id":"SJU78","name":"SDIT1JUB-SJU78"},{"id":"STN27","name":"HSTNTX01-STN27"},{"id":"SSW56","name":"ss8126GT-SSW56"},{"id":"SBB78","name":"SDIT1BBB-SBB78"},{"id":"DCC3","name":"POIUYTGH-DCC3"},{"id":"GNV1","name":"GNVLSCTL-GNV1"},{"id":"WAS1","name":"WASHDCSW-WAS1"},{"id":"TOY1","name":"TORYONNZ-TOY1"},{"id":"STT1","name":"STTLWA02-STT1"},{"id":"STG1","name":"STTGGE62-STG1"},{"id":"SLL78","name":"SDCTLLL1-SLL78"},{"id":"SBU78","name":"SDIT1BUB-SBU78"},{"id":"ATL2","name":"ATLNGANW-ATL2"},{"id":"BOT1","name":"BOTHWAKY-BOT1"},{"id":"SNG1","name":"SNGPSIAU-SNG1"},{"id":"NYC1","name":"NYCMNY54-NYC1"},{"id":"LAG1b","name":"LARGIZON-LAG1b"},{"id":"AMD15","name":"AMDFAA01-AMD15"},{"id":"SNA1","name":"SNANTXCA-SNA1"},{"id":"PLT1","name":"PLTNCA60-PLT1"},{"id":"TLP1","name":"TLPNXM18-TLP1"},{"id":"SDD81","name":"SAIT1DD6-SDD81"},{"id":"DCC1","name":"POIUYTGH-DCC1"},{"id":"DCC2","name":"POIUYTGH-DCC2"},{"id":"OKC1","name":"OKCBOK55-OKC1"},{"id":"PAR1","name":"PARSFRCG-PAR1"},{"id":"TES36","name":"ABCEETES-TES36"},{"id":"COM1","name":"PLMKOPIU-COM1"},{"id":"ANI1","name":"ATLNGTRE-ANI1"},{"id":"SDG78","name":"SDIT1BDG-SDG78"},{"id":"mac20","name":"PKGTESTF-mac20"},{"id":"DSF45","name":"DSFBG123-DSF45"},{"id":"HST25","name":"HSTNTX01-HST25"},{"id":"AMD18","name":"AUDIMA01-AMD18"},{"id":"SAA80","name":"SAIT9AA3-SAA80"},{"id":"SSA56","name":"SSIT2AA7-SSA56"},{"id":"SDD82","name":"SAIT1DD9-SDD82"},{"id":"JCV1","name":"JCVLFLBW-JCV1"},{"id":"SUL2","name":"WERTYUJK-SUL2"},{"id":"PUR1","name":"purelyde-PUR1"},{"id":"FDE55","name":"FDERT555-FDE55"},{"id":"SITE","name":"LONEENCO-SITE"},{"id":"ATL1","name":"ATLNGAMA-ATL1"},{"id":"JUL1","name":"ZXCVBNMM-JUL1"},{"id":"TAT34","name":"TESAAISB-TAT34"},{"id":"XCP12","name":"CHKGH123-XCP12"},{"id":"RAI1","name":"poiuytre-RAI1"},{"id":"HPO1","name":"ATLNGAUP-HPO1"},{"id":"KJF12","name":"KJFDH123-KJF12"},{"id":"SCC80","name":"SAIT9CC3-SCC80"},{"id":"SAA12","name":"SAIT9AF8-SAA12"},{"id":"SAA14","name":"SAIT1AA9-SAA14"},{"id":"ATL35","name":"TTESSAAI-ATL35"},{"id":"CWY1","name":"CWYMOWBS-CWY1"},{"id":"ATL76","name":"TELEPAAI-ATL76"},{"id":"DSL12","name":"DSLFK242-DSL12"},{"id":"ATL53","name":"AAIATLTE-ATL53"},{"id":"SAA11","name":"SAIT9AA2-SAA11"},{"id":"ATL62","name":"TESSASCH-ATL62"},{"id":"AUG1","name":"ASDFGHJK-AUG1"},{"id":"POI22","name":"POIUY123-POI22"},{"id":"SAA13","name":"SAIT1AA9-SAA13"},{"id":"BHY17","name":"BHYTFRF3-BHY17"},{"id":"LIS1","name":"HOSTPROF-LIS1"},{"id":"SIP1","name":"ZXCVBNMK-SIP1"},{"id":"ATL99","name":"TEESTAAI-ATL43"},{"id":"ATL64","name":"FORLOAAJ-ATL64"},{"id":"TAT33","name":"TESAAISA-TAT33"},{"id":"RAD10","name":"INDIPUNE-RAD10"},{"id":"RTW5","name":"BHYTFRY4-RTW5"},{"id":"JGS1","name":"KSJKKKKK-JGS1"},{"id":"ATL98","name":"TEESTAAI-ATL43"},{"id":"WAN1","name":"LEIWANGW-WAN1"},{"id":"ATL44","name":"ATLSANAB-ATL44"},{"id":"RTD2","name":"BHYTFRk4-RTD2"},{"id":"NIR1","name":"ORFLMANA-NIR1"},{"id":"ATL75","name":"SANAAIRE-ATL75"},{"id":"NUM1","name":"QWERTYUI-NUM1"},{"id":"MTN32","name":"MDTWNJ21-MTN32"},{"id":"RTZ4","name":"BHYTFRZ6-RTZ4"},{"id":"ATL56","name":"ATLSANAC-ATL56"},{"id":"AMS1","name":"AMSTNLBW-AMS1"},{"id":"RCT1","name":"AMSTERNL-RCT1"},{"id":"JAN1","name":"ORFLMATT-JAN1"},{"id":"ABC14","name":"TESAAISA-ABC14"},{"id":"TAT37","name":"TESAAISD-TAT37"},{"id":"MIC54","name":"MICHIGAN-MIC54"},{"id":"ABC11","name":"ATLSANAI-ABC11"},{"id":"AMF11","name":"AMDOCS01-AMF11"},{"id":"ATL63","name":"ATLSANEW-ATL63"},{"id":"ABC12","name":"ATLSECIA-ABC12"},{"id":"MTN20","name":"MDTWNJ21-MTN20"},{"id":"ABC15","name":"AAITESAN-ABC15"},{"id":"AVT1","name":"AVTRFLHD-AVT1"},{"id":"ATL34","name":"ATLSANAI-ATL34"}],"lcpRegions":[{"id":"AAIAIC25","name":"AAIAIC25","isPermitted":true},{"id":"mtn6","name":"mtn6","isPermitted":true}],"lcpRegionsTenantsMap":{},"tenants":[{"id":"bae71557c5bb4d5aac6743a4e5f1d054","name":"AIN Web Tool-15-D-testgamma","isPermitted":true},{"id":"229bcdc6eaeb4ca59d55221141d01f8e","name":"AIN Web Tool-15-D-STTest2","isPermitted":true},{"id":"1178612d2b394be4834ad77f567c0af2","name":"AIN Web Tool-15-D-SSPtestcustome","isPermitted":true},{"id":"19c5ade915eb461e8af52fb2fd8cd1f2","name":"AIN Web Tool-15-D-UncheckedEcopm","isPermitted":true},{"id":"de007636e25249238447264a988a927b","name":"AIN Web Tool-15-D-dfsdf","isPermitted":true},{"id":"62f29b3613634ca6a3065cbe0e020c44","name":"AIN/SMS-16-D-Multiservices1","isPermitted":true},{"id":"649289e30d3244e0b48098114d63c2aa","name":"AIN Web Tool-15-D-SSPST66","isPermitted":true},{"id":"3f21eeea6c2c486bba31dab816c05a32","name":"AIN Web Tool-15-D-ASSPST47","isPermitted":true},{"id":"f60ce21d3ee6427586cff0d22b03b773","name":"CESAR-100-D-sspjg67246","isPermitted":true},{"id":"8774659e425f479895ae091bb5d46560","name":"CESAR-100-D-sspjg68359","isPermitted":true},{"id":"624eb554b0d147c19ff8885341760481","name":"AINWebTool-15-D-iftach","isPermitted":true},{"id":"214f55f5fc414c678059c383b03e4962","name":"CESAR-100-D-sspjg612401","isPermitted":true},{"id":"c90666c291664841bb98e4d981ff1db5","name":"CESAR-100-D-sspjg621340","isPermitted":true},{"id":"ce5b6bc5c7b348e1bf4b91ac9a174278","name":"sspjg621351cloned","isPermitted":true},{"id":"b386b768a3f24c8e953abbe0b3488c02","name":"AINWebTool-15-D-eteancomp","isPermitted":true},{"id":"dc6c4dbfd225474e9deaadd34968646c","name":"AINWebTool-15-T-SPFET","isPermitted":true},{"id":"02cb5030e9914aa4be120bd9ed1e19eb","name":"AINWebTool-15-X-eeweww","isPermitted":true},{"id":"f2f3830e4c984d45bcd00e1a04158a79","name":"CESAR-100-D-spjg61909","isPermitted":true},{"id":"05b91bd5137f4929878edd965755c06d","name":"CESAR-100-D-sspjg621512cloned","isPermitted":true},{"id":"7002fbe8482d4a989ddf445b1ce336e0","name":"AINWebTool-15-X-vdr","isPermitted":true},{"id":"4008522be43741dcb1f5422022a2aa0b","name":"AINWebTool-15-D-ssasa","isPermitted":true},{"id":"f44e2e96a1b6476abfda2fa407b00169","name":"AINWebTool-15-D-PFNPT","isPermitted":true},{"id":"b69a52bec8a84669a37a1e8b72708be7","name":"AINWebTool-15-X-vdre","isPermitted":true},{"id":"fac7d9fd56154caeb9332202dcf2969f","name":"AINWebTool-15-X-NONPODECOMP","isPermitted":true},{"id":"2d34d8396e194eb49969fd61ffbff961","name":"DN5242-Nov16-T5","isPermitted":true},{"id":"cb42a77ff45b48a8b8deb83bb64acc74","name":"ro-T11","isPermitted":true},{"id":"fa45ca53c80b492fa8be5477cd84fc2b","name":"ro-T112","isPermitted":true},{"id":"4914ab0ab3a743e58f0eefdacc1dde77","name":"DN5242-Nov21-T1","isPermitted":true},{"id":"d0a3e3f2964542259d155a81c41aadc3","name":"test-mtn6-09","isPermitted":true},{"id":"cbb99fe4ada84631b7baf046b6fd2044","name":"DN5242-Nov16-T3","isPermitted":true}],"productFamilies":null,"projects":[{"id":"DFW","name":"DFW"},{"id":"x1","name":"x1"},{"id":"yyy1","name":"yyy1"}],"owningEntities":[{"id":"aaa1","name":"aaa1"},{"id":"d61e6f2d-12fa-4cc2-91df-7c244011d6fc","name":"MetroPacketCore"},{"id":"Wireline","name":"Wireline"}],"globalCustomerId":"e433710f-9217-458d-a79d-1c7aff376d89"}')} - } - - function generateFormGroup(){ - return new FormGroup({ - globalSubscriberId: new FormControl( - Validators.compose([Validators.required]) - ), - productFamilyId: new FormControl(), - subscriptionServiceType: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])), - lcpCloudRegionId: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])), - tenantId: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])), - aicZoneId: new FormControl(), - projectName: new FormControl(), - owningEntityId: new FormControl(Validators.compose([Validators.required])), - instanceName : new FormControl({value: null}, Validators.compose([Validators.required, NumbersLettersUnderscoreValidator.valid])) - }); - } - - - function generateServiceInstanceDetails(){ - return { - servicePopupDataModel : { - "productFamilies" : [] - }, - serviceInstanceDetailsFormGroup : { - controls : { - productFamilyId : { - disabled : false - } - } - } - } - } - - function generateLegalServiceInstance(){ - return { - instanceName : "legalInstanceName" - } - } - - function generateIllegalServiceInstance(){ - return { - instanceName : "illegalInstanceName" - } - } - -}); diff --git a/vid-webpack-master/src/app/components/service-popup/service-popup.service.ts b/vid-webpack-master/src/app/components/service-popup/service-popup.service.ts deleted file mode 100644 index f6efd353b..000000000 --- a/vid-webpack-master/src/app/components/service-popup/service-popup.service.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {Injectable} from '@angular/core'; -import {isNullOrUndefined} from "util"; -import {NumbersLettersUnderscoreValidator} from '../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator'; -import {ServiceInstanceDetailsComponent} from './service-instance-details/service-instance-details.component'; -import {FormGroup} from '@angular/forms'; -import * as _ from "lodash"; - -@Injectable() -export class ServicePopupService { - onControlError(serviceInstanceDetails : ServiceInstanceDetailsComponent, serviceInstanceDetailsFormGroup : FormGroup) : boolean{ - if(!isNullOrUndefined(serviceInstanceDetailsFormGroup) && !isNullOrUndefined(serviceInstanceDetailsFormGroup.controls['instanceName']) && NumbersLettersUnderscoreValidator.valid(serviceInstanceDetailsFormGroup.controls['instanceName'].value) && serviceInstanceDetailsFormGroup.controls['instanceName'].value != null && serviceInstanceDetailsFormGroup.controls['instanceName'].value.length > 0){ - return true; - } - - const controlName : Array = ['productFamilyId', 'lcpCloudRegionId', 'tenantId', 'owningEntityId', 'projectName', 'aicZoneId', 'subscriptionServiceType', 'globalSubscriberId', 'rollbackOnFailure']; - const selectDataName : Array = ['productFamilies', 'lcpRegions', 'tenants', 'owningEntities', 'projects', 'aicZones', 'serviceTypes', 'subscribers', 'rollbackOnFailure']; - for(let i = 0 ; i < controlName.length ; i++){ - if (!isNullOrUndefined(serviceInstanceDetails.servicePopupDataModel) && !isNullOrUndefined(serviceInstanceDetails.servicePopupDataModel[selectDataName[i]])) { - if (!serviceInstanceDetailsFormGroup.controls[controlName[i]].disabled && serviceInstanceDetails.servicePopupDataModel[selectDataName[i]].length === 0) { - return true; - } - } - } - return false; - } - - resetDynamicInputs(serviceInstance : any, defaultDynamicInputs : any) : void { - for(let dynamicInput of serviceInstance.dynamicInputs){ - const defaultDymanicInput = _.find(defaultDynamicInputs, {name:dynamicInput.name}); - serviceInstance.serviceInstanceDetailsFormGroup.controls[dynamicInput.name].setValue(defaultDymanicInput.value); - } - } -} diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.component.ts b/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.component.ts deleted file mode 100644 index 725e44293..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.component.ts +++ /dev/null @@ -1,275 +0,0 @@ -import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core'; -import {FormControl, FormGroup, Validators} from "@angular/forms"; -import {VNFPopupDataModel} from './vnfPopupDataModel'; -import {AaiService} from '../../../services/aaiService/aai.service'; -import { createVFModuleInstance, updateVFModuleInstance, updateVNFInstance } from '../../../service.actions'; -import {VnfInstance} from "../../../shared/models/vnfInstance"; -import {ServiceInstance} from "../../../shared/models/serviceInstance"; -import {VNFModel} from "../../../shared/models/vnfModel"; -import {InputType} from "../../../shared/models/inputTypes"; -import {ModelInfo} from "../../../shared/models/modelInfo"; -import {VfModuleInstance} from "../../../shared/models/vfModuleInstance"; -import {NgRedux, select} from "@angular-redux/store"; -import {AppState} from "../../../store/reducers"; -import {SelectOptionInterface} from "../../../shared/models/selectOption"; -import {Observable} from "rxjs/Observable"; -import {loadProductFamiliesAction} from "../../../services/aaiService/aai.actions"; -import {VnfInstanceDetailsService} from "./vnf-instance-details.service"; -import {isNullOrUndefined} from 'util'; -import {NumbersLettersUnderscoreValidator} from '../../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator'; -import * as _ from "lodash"; -import {ServiceNodeTypes} from "../../../shared/models/ServiceNodeTypes"; - -@Component({ - selector: 'vnf-instance-details', - templateUrl: 'vnf-instance-details.html', - styleUrls: ['vnf-instance-details.scss'], - providers: [AaiService] -}) - -export class VnfInstanceDetailsComponent implements OnInit { - @ViewChild('vnfForm') vnfForm: 'VnfForm'; - _vnfModel: VNFModel; - @Input () - set vnfModel(vnfModel: VNFModel) { - this._vnfModel = vnfModel; - this.updateFormGroupControlsFromVNFModel(); - } - @Input() vnfInstance: any; - @Input() serviceInstance: ServiceInstance; - @Input() dynamicInputs; - @Input() modelName: string; - @Input() serviceUuid: string; - @Input() userProvidedNaming: boolean; - _modelType: string; - @Input() - set modelType(modelType: string) { - this._modelType = modelType; - this.updateFormGroupControlsFromVNFModel(); - } - - @Input() parentModelName: string; - @Input() isNewVfModule : boolean; - - - @Output() onSubmitClick: EventEmitter = new EventEmitter(); - @Output() onServiceInstanceNameChanged : EventEmitter = new EventEmitter(); - @Output() onVolumeGroupNameChanged : EventEmitter = new EventEmitter(); - -@Output() onDataChanged: EventEmitter = new EventEmitter(); - @select(['service','productFamilies']) - readonly productFamilies : Observable; - - vnfPopupDataModel: VNFPopupDataModel = new VNFPopupDataModel(); - lcpRegionsThatEnableLegacyRegionField = ['AAIAIC25', 'rdm3', 'rdm5a']; - shouldShowLegacyRegion: boolean; - instanceFormGroup: FormGroup = null; - inputType = InputType; - isNotUniqueInstanceName : boolean = false; - isNotUniqueVolumeGroupName : boolean = false; - - constructor(private _aaiService: AaiService, private store: NgRedux, - private _vnfInstanceDetailsService : VnfInstanceDetailsService) { - this.store.subscribe(() => { - this.updateFormData() - }); - } - - ngOnInit() { - this.updateFormGroup(); - this.subscribeToFormChanges(); - this._aaiService.getCategoryParameters(null).subscribe(); - this._aaiService.getLcpRegionsAndTenants(this.serviceInstance.globalSubscriberId, this.serviceInstance.subscriptionServiceType).subscribe(); - this.updateLegacyRegionVisibility(); - this.store.dispatch(loadProductFamiliesAction()); - } - - isInputShouldBeShown(inputType: any) { - let vnfInputs = [InputType.LCP_REGION, InputType.LOB, InputType.TENANT, InputType.PRODUCT_FAMILY, InputType.PLATFORM, InputType.ROLLBACK]; - let vfInputs = [InputType.VG]; - let exist = false; - if (this._modelType === 'VF') { - exist = vnfInputs.indexOf(inputType) > -1; - } - else { - exist = vfInputs.indexOf(inputType) > -1; - } - return exist; - } - - updateFormGroupControlsFromVNFModel() { - if (this._vnfModel && this._modelType) { - if (this._modelType === ServiceNodeTypes.VF) { - const vnfInstance = this.vnfInstance; - if (this.instanceFormGroup && this.userProvidedNaming - && !this.instanceFormGroup.get('instanceName')) { - const initialInstanceName = vnfInstance.instanceName || (!isNullOrUndefined(this._vnfModel.name) ? this._vnfModel.name.replace(/[-]/g, "") : this._vnfModel.name); - this.instanceFormGroup.addControl('instanceName', new FormControl(initialInstanceName, Validators.compose([Validators.required, NumbersLettersUnderscoreValidator.valid]))) - } - } - else if (this._modelType === ServiceNodeTypes.VFmodule) { - const vfInstance = this.vnfInstance; - if (this.instanceFormGroup && this.userProvidedNaming && !this.instanceFormGroup.get('instanceName')) { - this.instanceFormGroup.addControl('instanceName', new FormControl(vfInstance.instanceName, Validators.required)); - - let vfModule = this.extractVfAccordingToVfModuleUuid(this.store.getState(), this._vnfModel.uuid); - if (vfModule.volumeGroupAllowed && !this.instanceFormGroup.get('volumeGroupName')) { - this.instanceFormGroup.addControl('volumeGroupName', new FormControl(vfInstance.volumeGroupName)); - } - } - } - } - } - - updateFormGroup() { - const tenantDisabled = !this.vnfInstance.lcpCloudRegionId; - - if (this._modelType === ServiceNodeTypes.VF) { - const vnfInstance = this.vnfInstance; - this.instanceFormGroup = new FormGroup({ - productFamilyId: new FormControl(vnfInstance.productFamilyId), - lcpCloudRegionId: new FormControl(vnfInstance.lcpCloudRegionId, Validators.required), - tenantId: new FormControl({value: vnfInstance.tenantId, disabled: tenantDisabled}, Validators.required), - legacyRegion: new FormControl(vnfInstance.legacyRegion), - lineOfBusiness: new FormControl(vnfInstance.lineOfBusiness), - platformName: new FormControl(vnfInstance.platformName, Validators.required), - }); - } - else if (this._modelType === ServiceNodeTypes.VFmodule) { - const vfInstance = this.vnfInstance; - this.instanceFormGroup = new FormGroup({ - }); - } - - this.instanceFormGroup.valueChanges.subscribe(()=> { - this.checkForUniqueInstanceName(); - this.onDataChanged.next(); - }); - - this.updateFormGroupControlsFromVNFModel(); - } - - private getParentVnfModel(): VNFModel { - const rawModel = _.get(this.store.getState().service.serviceHierarchy[this.serviceUuid], ['vnfs', this.parentModelName]); - return new VNFModel(rawModel); - } - - extractVfAccordingToVfModuleUuid(state : any,vfModuleUuid : string) { - const vnfs = this.store.getState().service.serviceHierarchy[this.serviceUuid].vnfs; - const vnfsArray = Object.values(vnfs); - for (let i = 0; i { - this.setDisabledState(val, 'tenantId'); - this.updateTenantList(val); - this.updateLegacyRegionVisibility(); - this.onDataChanged.next(); - }); - } - } - - setDisabledState(val, field: string): void { - if (val) { - this.instanceFormGroup.controls[field].enable(); - } - } - - updateLegacyRegionVisibility() { - if (this.instanceFormGroup.get('lcpCloudRegionId') !== null) { - this.shouldShowLegacyRegion = this.lcpRegionsThatEnableLegacyRegionField.indexOf(this.instanceFormGroup.get('lcpCloudRegionId').value) > -1; - if (!this.shouldShowLegacyRegion) { - this.instanceFormGroup.controls.legacyRegion.setValue(undefined); - } - } - } - - updateTenantList(cloudRegionId) { - this.resetTenantSelection(); - const tenantsForCloudRegionId = this.store.getState().service.lcpRegionsAndTenants.lcpRegionsTenantsMap[cloudRegionId]; - console.log('tenants for selected cloud region id: ' + JSON.stringify(tenantsForCloudRegionId)); - this.vnfPopupDataModel.tenants = tenantsForCloudRegionId; - } - - resetTenantSelection() { - this.instanceFormGroup.controls.tenantId.setValue(undefined); - } - - checkForUniqueInstanceName() { - let currentName = !isNullOrUndefined(this.instanceFormGroup.get('instanceName')) ? this.instanceFormGroup.get('instanceName').value : null; - - if(currentName && !this._vnfInstanceDetailsService.isUnique(this.store.getState().service.serviceInstance, this.serviceUuid, currentName, currentName === this.serviceInstance.instanceName) && this.userProvidedNaming){ - this.isNotUniqueInstanceName = true; - this.onServiceInstanceNameChanged.emit(true); - }else { - this.isNotUniqueInstanceName = false; - this.onServiceInstanceNameChanged.emit(false); - } - } - - checkForUniqueGroupName(){ - let currentName = this.instanceFormGroup.get('volumeGroupName').value; - if( !this._vnfInstanceDetailsService.isUnique(this.store.getState().service.serviceInstance, this.serviceUuid, currentName, currentName === this.serviceInstance['volumeGroupName'])){ - this.isNotUniqueVolumeGroupName = true; - this.onVolumeGroupNameChanged.emit(true); - }else { - this.isNotUniqueVolumeGroupName = false; - this.onVolumeGroupNameChanged.emit(false); - } - } - - onSubmit(formValues): void { - formValues.modelInfo = new ModelInfo(this._vnfModel); - if (this._modelType === 'VFmodule') { - let dynamicFields: { [dynamicField: string]: string; }; - dynamicFields = {}; - if(!_.isEmpty(this.dynamicInputs)) { - this.dynamicInputs.map(function (x) { - let dynamicField: string = x.id; - dynamicFields[dynamicField] = formValues[dynamicField]; - delete formValues[dynamicField]; - }); - } - formValues.instanceParams = []; - formValues.instanceParams.push(dynamicFields); - if(this.isNewVfModule){ - this.store.dispatch(createVFModuleInstance(formValues, this.modelName, this.serviceUuid)); - }else { - this.store.dispatch(updateVFModuleInstance(formValues, this.modelName, this.serviceUuid)); - } - - } - else { - formValues.isUserProvidedNaming = this.userProvidedNaming; - this.store.dispatch(updateVNFInstance(formValues, this.modelName, this.serviceUuid)); - } - window.parent.postMessage({ - eventId: 'submitIframe', - data: { - serviceModelId: this.serviceUuid - } - }, "*"); - this.onSubmitClick.emit(this.serviceUuid); - } -} diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.html b/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.html deleted file mode 100644 index ccdaac53b..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.html +++ /dev/null @@ -1,114 +0,0 @@ - -
-
- -
- - - - -
- -
- - - -
- -
- - - -
- -
- - -
- -
- - - -
- -
- - - -
- -
- - - -
- - -
- - - -
- - -
-
diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.spec.ts b/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.spec.ts deleted file mode 100644 index 41ddb4372..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.spec.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { TestBed, getTestBed } from '@angular/core/testing'; -import { - HttpClientTestingModule, - HttpTestingController -} from '@angular/common/http/testing'; -import { VnfInstanceDetailsService } from './vnf-instance-details.service'; -import { FormControl, FormGroup, Validators } from '@angular/forms'; -import { NumbersLettersUnderscoreValidator } from '../../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator'; - -describe('Vnf Instance Details Service', () => { - let injector; - let service: VnfInstanceDetailsService; - let httpMock: HttpTestingController; - - let SERVICE_ID: string = '1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'; - let serviceHierarchy; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - providers: [VnfInstanceDetailsService] - }); - - injector = getTestBed(); - service = injector.get(VnfInstanceDetailsService); - httpMock = injector.get(HttpTestingController); - serviceHierarchy = getServiceServiceHierarchy(); - }); - - - describe('#hasInstanceNameError', ()=> { - it('hasInstanceNameError should return true if instanceName is illegal and enabled', (done: DoneFn) => { - let form = generateFormGroup(); - form.controls['instanceName'].setValue('----'); - form.controls['instanceName'].setErrors({ - pattern : true - }); - form.controls['instanceName'].markAsTouched(); - let result = service.hasInstanceNameError(form); - expect(result).toBeTruthy(); - done(); - }); - - it('hasInstanceNameError should return false if instanceName is illegal and enabled and pattern is ok', (done: DoneFn) => { - let form = generateFormGroup(); - form.controls['instanceName'].setValue('----'); - form.controls['instanceName'].setErrors({ - otherError : true - }); - form.controls['instanceName'].markAsTouched(); - let result = service.hasInstanceNameError(form); - expect(result).toBeFalsy(); - done(); - }); - }); - - describe('#isUnique', () => { - it('Create Mode: should return false if instanceName exist', (done: DoneFn) => { - serviceHierarchy = getServiceServiceHierarchy(); - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'uniqueInstanceName', false); - expect(result).toBeFalsy(); - done(); - }); - - it('Update Mode: should return true if instanceName exist once', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'uniqueInstanceName', true); - expect(result).toBeTruthy() - done(); - }); - - it('Create Mode: should return true if instanceName not exist', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'uniqueInstanceNameNotExist', false); - expect(result).toBeTruthy(); - done(); - }); - - it('Create Mode: should return false if instanceName exist inside vf modules', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'uniqueInstanceNameVfModule', false); - expect(result).toBeFalsy(); - done(); - }); - - it('Update Mode: should return true if instanceName exist once inside vf modules', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'uniqueInstanceNameVfModule', true); - expect(result).toBeTruthy(); - done(); - }); - - it('Create Mode: should return true if instanceName is not exist at vf modules and vnfs', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'uniqueInstanceNameVfModuleNotExist', false); - expect(result).toBeTruthy(); - done(); - }); - - it('Create Mode: should return false if instanceName exist service name', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'Instance-Name', false); - expect(result).toBeFalsy(); - done(); - }); - - it('Create Mode: should return false if volumeGroupName exist service name', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'volumeGroupNameExist', false); - expect(result).toBeFalsy(); - done(); - }); - - it('Create Mode: should return true if volumeGroupName not exist service name', (done: DoneFn) => { - let result = service.isUnique(serviceHierarchy, SERVICE_ID, 'volumeGroupNameNotExist', false); - expect(result).toBeTruthy(); - done(); - }); - }); - - function getServiceServiceHierarchy() { - return JSON.parse(JSON.stringify( - { - "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { - "vnfs": { - "2017-388_ADIOD-vPE 1": { - "rollbackOnFailure": "true", - "vfModules": {}, - "instanceParams": [ - {} - ], - "productFamilyId": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", - "lcpCloudRegionId": "AAIAIC25", - "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", - "lineOfBusiness": "zzz1", - "platformName": "platform", - "instanceName": "uniqueInstanceName", - "modelInfo": { - "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d", - "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413", - "modelName": "2017-388_ADIOD-vPE", - "modelVersion": "1.0", - "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a", - "modelCustomizationName": "2017-388_ADIOD-vPE 1" - }, - "isUserProvidedNaming": true - }, - "2017-388_ADIOD-vPE 0": { - "rollbackOnFailure": "true", - "vfModules": {}, - "instanceParams": [ - {} - ], - "productFamilyId": null, - "lcpCloudRegionId": "mtn6", - "tenantId": "1178612d2b394be4834ad77f567c0af2", - "lineOfBusiness": "ECOMP", - "platformName": "xxx1", - "instanceName": "blaaa", - "modelInfo": { - "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", - "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168", - "modelName": "2017-388_ADIOD-vPE", - "modelVersion": "4.0", - "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", - "modelCustomizationName": "2017-388_ADIOD-vPE 0" - }, - "isUserProvidedNaming": true - }, - "2017488_ADIODvPE 0": { - "rollbackOnFailure": "true", - "vfModules": { - "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { - "rollbackOnFailure": "true", - "instanceName": "uniqueInstanceNameVfModule", - "volumeGroupName": "volumeGroupNameExist", - "modelInfo": { - "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", - "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5", - "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", - "modelVersion": "6" - } - } - } - }, - "instanceParams": [ - {} - ], - "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", - "lcpCloudRegionId": "mtn6", - "tenantId": "19c5ade915eb461e8af52fb2fd8cd1f2", - "lineOfBusiness": "zzz1", - "platformName": "platform", - "instanceName": "2017488_ADIODvPE", - "modelInfo": { - "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", - "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", - "modelName": "2017488_ADIODvPE", - "modelVersion": "5.0", - "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", - "modelCustomizationName": "2017488_ADIODvPE 0" - }, - "isUserProvidedNaming": true - } - }, - "instanceParams": [ - {} - ], - "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", - "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77", - "subscriptionServiceType": "VIRTUAL USP", - "lcpCloudRegionId": "AAIAIC25", - "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", - "aicZoneId": "DKJ1", - "projectName": "DFW", - "owningEntityId": "aaa1", - "instanceName": "Instance-Name", - "bulkSize": 1, - "modelInfo": { - "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", - "modelVersionId": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", - "modelName": "action-data", - "modelVersion": "1.0" - }, - "tenantName": "USP-SIP-IC-24335-T-01", - "aicZoneName": "DKJSJDKA-DKJ1", - "isUserProvidedNaming": true - } - } - )); - } - - function generateFormGroup() { - return new FormGroup({ - productFamilyId: new FormControl(), - lcpCloudRegionId: new FormControl(Validators.required), - tenantId: new FormControl({value: null, disabled: false}, Validators.required), - legacyRegion: new FormControl(), - lineOfBusiness: new FormControl(), - platformName: new FormControl(Validators.required), - rollbackOnFailure: new FormControl(Validators.required), - instanceName: new FormControl({value: null}, Validators.compose([Validators.required, NumbersLettersUnderscoreValidator.valid])) - - }); - } - -}); diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.ts b/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.ts deleted file mode 100644 index 677895e72..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnf-instance-details.service.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Injectable } from '@angular/core'; -import { isNullOrUndefined } from "util"; -import { FormGroup } from '@angular/forms'; -@Injectable() -export class VnfInstanceDetailsService { - isUnique(serviceInstance : any, serviceId : string, name: string, isEqualToOriginalInstanceName : boolean) : boolean { - const service = serviceInstance[serviceId]; - let countInstanceName = 0; - let countVolumeGroupName = 0; - if(service){ - if(service.instanceName === name) return false; - if(service.vnfs){ - for(let key in service.vnfs){ - if(service.vnfs[key].instanceName === name) { - countInstanceName++; - if((isEqualToOriginalInstanceName && countInstanceName > 1) || (!isEqualToOriginalInstanceName)) return false; - } - if(service.vnfs[key].vfModules){ - for(let vfModule in service.vnfs[key].vfModules){ - if(service.vnfs[key].vfModules[vfModule]) { - for(let module in service.vnfs[key].vfModules[vfModule]){ - if(service.vnfs[key].vfModules[vfModule][module].instanceName === name ) { - countInstanceName++; - if((isEqualToOriginalInstanceName && countInstanceName > 1) || (!isEqualToOriginalInstanceName)) return false; - } - - if(service.vnfs[key].vfModules[vfModule][module].volumeGroupName === name ) { - countVolumeGroupName++; - if((isEqualToOriginalInstanceName && countVolumeGroupName > 1) || (!isEqualToOriginalInstanceName)) return false; - } - } - } - } - } - - } - } - } - return true; - } - - hasApiError(controlName: string, data: Array, form: FormGroup) { - if (!isNullOrUndefined(data)) { - if (!form.controls[controlName].disabled && data.length === 0) { - return true; - } - } - return false; - } - - hasInstanceNameError(form : FormGroup) : boolean { - if(!isNullOrUndefined(form) && !isNullOrUndefined(form.controls['instanceName'])){ - if (form.controls['instanceName'].touched && form.controls['instanceName'].errors && form.controls['instanceName'].errors.pattern) { - return true; - } - } - return false; - } - - hasUniqueError(isNotUniqueInstanceName) : boolean { - return isNotUniqueInstanceName; - } - -} diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnfPopupDataModel.ts b/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnfPopupDataModel.ts deleted file mode 100644 index 9a2694c70..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-instance-details/vnfPopupDataModel.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {Project} from "../../../shared/models/project"; -import {LcpRegion} from "../../../shared/models/lcpRegion"; -import {Tenant} from "../../../shared/models/tenant"; -import {ProductFamily} from "../../../shared/models/productFamily"; -import {SelectOption, SelectOptionInterface} from "../../../shared/models/selectOption"; - -export class VNFPopupDataModel { - productFamilies: ProductFamily[]; - lcpRegions: LcpRegion[]; - lcpRegionsTenantsMap: any; - tenants: Tenant[]; - projects: Project[]; - lineOfBusinesses: SelectOption[]; - platforms: SelectOptionInterface[]; - globalCustomerId: string; - - - constructor(){ - this.lcpRegions = []; - this.lcpRegionsTenantsMap = {}; - this.tenants = []; - this.productFamilies = []; - this.lineOfBusinesses = []; - this.platforms = []; - } -} diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts b/vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts deleted file mode 100644 index 7dbe9b11b..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-popup-service.ts +++ /dev/null @@ -1,55 +0,0 @@ -import {Injectable} from "@angular/core"; -import {ServiceNodeTypeToModelKeyMapper} from "../../shared/models/serviceNodeTypeToModelKeyMapper"; -import {ServiceNodeTypes} from "../../shared/models/ServiceNodeTypes"; -import {VfModule} from "../../shared/models/vfModule"; -import {ServicePlanningService} from "../../services/service-planning.service"; -import {VNFModel} from "../../shared/models/vnfModel"; -import * as _ from 'lodash'; -import {isNullOrUndefined} from "util"; -import {NumbersLettersUnderscoreValidator} from '../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator'; -import {FormGroup} from '@angular/forms'; -import {VnfInstanceDetailsComponent} from './vnf-instance-details/vnf-instance-details.component'; -import {VnfInstanceDetailsService} from './vnf-instance-details/vnf-instance-details.service'; - -@Injectable() -export class VnfPopupService { - - constructor(private _servicePlanningService : ServicePlanningService, private _vnfInstanceDetailsService : VnfInstanceDetailsService) { - } - - public getModelFromResponse(result : any, modelType : string, modelName:string) { - let model = null; - let rawModel = _.get(result, [ServiceNodeTypeToModelKeyMapper[modelType], modelName]); - if (!rawModel) return; - - if (modelType === ServiceNodeTypes.VFmodule) { - model = new VfModule(rawModel); - } - else { - model = new VNFModel(rawModel); - } - return model; - } - - onControlError(servicePopupDataModel : VnfInstanceDetailsComponent, serviceInstanceDetailsFormGroup : FormGroup, isNotUniqueInstanceName : boolean, isNotUniqueVolumeGroupName : boolean) : boolean{ - if(this._vnfInstanceDetailsService.hasUniqueError(isNotUniqueInstanceName) || isNotUniqueVolumeGroupName){ - return true; - } - if(!isNullOrUndefined(serviceInstanceDetailsFormGroup.controls['instanceName']) && NumbersLettersUnderscoreValidator.valid(serviceInstanceDetailsFormGroup.controls['instanceName'].value) && serviceInstanceDetailsFormGroup.controls['instanceName'].value != null && serviceInstanceDetailsFormGroup.controls['instanceName'].value.length > 0){ - return true; - } - - const controlName : Array = ['lcpCloudRegionId', 'tenantId', 'lineOfBusiness', 'platformName']; - const selectDataName : Array = ['lcpRegions', 'tenants', 'lineOfBusinesses', 'platforms', 'projects']; - - for(let i = 0 ; i < controlName.length ; i++){ - if (!isNullOrUndefined(servicePopupDataModel.vnfPopupDataModel) && !isNullOrUndefined(servicePopupDataModel.vnfPopupDataModel[selectDataName[i]])) { - if (!isNullOrUndefined(serviceInstanceDetailsFormGroup.controls[controlName[i]]) && !serviceInstanceDetailsFormGroup.controls[controlName[i]].disabled && servicePopupDataModel.vnfPopupDataModel[selectDataName[i]].length === 0) { - return true; - } - } - } - return false; - } - -} diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-popup.components.ts b/vid-webpack-master/src/app/components/vnf-popup/vnf-popup.components.ts deleted file mode 100644 index 26e667d4c..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-popup.components.ts +++ /dev/null @@ -1,190 +0,0 @@ -import {Component, OnInit, ViewChild} from "@angular/core"; -import {AaiService} from "../../services/aaiService/aai.service"; -import {ModelInformationItem} from "../../shared/components/model-information/model-information.component"; -import {ActivatedRoute} from "@angular/router"; -import {DialogComponent, DialogService} from "ng2-bootstrap-modal"; -import {InstancePopup} from "../instance-popup/instance-popup.components"; -import {ServiceModel} from "../../shared/models/serviceModel"; -import {Constants} from "../../shared/utils/constants"; -import * as _ from "lodash"; -import {VnfInstance} from "../../shared/models/vnfInstance"; -import {ServiceInstance} from "../../shared/models/serviceInstance"; -import {VnfInstanceDetailsComponent} from "./vnf-instance-details/vnf-instance-details.component"; -import {Subscriber} from "../../shared/models/subscriber"; -import {ServiceNodeTypes} from "../../shared/models/ServiceNodeTypes"; -import {AppState} from "../../store/reducers"; -import {NgRedux} from "@angular-redux/store"; -import {VfModuleInstance} from "../../shared/models/vfModuleInstance"; -import {VnfPopupService} from './vnf-popup-service'; -import {IframeService} from "../../shared/utils/iframe.service"; - -export interface VnfPopupModel { - serviceModelId: string; - modelName: string; - parentModelName: string; - modelType: string; - dynamicInputs: any; - userProvidedNaming: boolean; - isNewVfModule : boolean; -} - -@Component({ - selector: 'vnf-popup', - templateUrl: 'vnf-popup.html', - styleUrls: ['vnf-popup.scss'], - providers: [AaiService, VnfPopupService] -}) - -export class VnfPopupComponent extends DialogComponent implements VnfPopupModel, InstancePopup, OnInit { - - @ViewChild(VnfInstanceDetailsComponent) vnfInstanceDetails: VnfInstanceDetailsComponent; - - serviceModelId: string; - modelName: string; - parentModelName: string; - modelType: string; - isNewVfModule : boolean; - model: any; - serviceModel: ServiceModel; - popupTypeName: string; - serviceInstance: ServiceInstance; - vnfInstance: VnfInstance; - dynamicInputs; - userProvidedNaming: boolean; - typeMapperForTitle = { - VF: "VNF", - VFmodule: "Module (Heat stack)" - }; - - modelInformationItems: Array = []; - isNotUniqueInstanceName : boolean = false; - isNotUniqueVolumeGroupName : boolean = false; - hasGeneralApiError : boolean = false; - - parentElementClassName = 'content'; - - constructor(dialogService: DialogService, protected route: ActivatedRoute, protected _aaiService: AaiService, - private store: NgRedux, - private _iframeService : IframeService, - private _vnfPopupService: VnfPopupService) { - super(dialogService); - this.vnfInstance = new VnfInstance(); - } - - updateGeneralErrorSection() : void { - this.hasGeneralApiError = this._vnfPopupService.onControlError( - this.vnfInstanceDetails, - this.vnfInstanceDetails.instanceFormGroup, - this.vnfInstanceDetails.isNotUniqueInstanceName, - this.vnfInstanceDetails.isNotUniqueVolumeGroupName); - } - - ngOnInit(): void { - this.updateServiceModelById(); - this.popupTypeName = this.getModelTypeForPopupTitle(); - this.updateServiceModelById(); - this.updateInstanceFromStore(); - } - - onCancelClick() { - this._iframeService.removeClassCloseModal(this.parentElementClassName); - super.close(); - } - - onServiceInstanceNameChanged(isNotUniqueInstanceName: boolean) : void { - this.isNotUniqueInstanceName = isNotUniqueInstanceName; - } - - onVolumeGroupNameChanged(isNotUniqueVolumeGroupName: boolean) : void { - this.isNotUniqueVolumeGroupName = isNotUniqueVolumeGroupName; - } - - onSetClick() { - this._iframeService.removeClassCloseModal(this.parentElementClassName); - this.result = true; - super.close(); - } - - updateServiceModelById() { - this._aaiService.getServiceModelById(this.serviceModelId).subscribe( - result => { - this.serviceModel = new ServiceModel(result); - this.model = this._vnfPopupService.getModelFromResponse(result, this.modelType, this.modelName); - this.modelInformationItems = this.createModelInformationItems(); - }, - error => { - console.log('error is ', error) - } - ); - } - - updateInstanceFromStore() { - let instance; - const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId]; - if (this.modelType === ServiceNodeTypes.VF) { - instance = serviceInstance.vnfs[this.modelName] || new VnfInstance(); - } else { - instance = new VfModuleInstance(); - } - - if (instance.instanceParams && instance.instanceParams[0]) { - this.dynamicInputs = this.dynamicInputs.map(x => { - x.value = (instance.instanceParams[0][x.id]) ? instance.instanceParams[0][x.id] : x.value; - return x; - }); - } - this.vnfInstance = instance; - } - - getModelName(): string { - return this.modelName; - } - - getModelTypeForPopupTitle(): string { - if (_.has(this.typeMapperForTitle, this.modelType)) { - return this.typeMapperForTitle[this.modelType]; - } - return this.modelType; - } - - extractSubscriberNameBySubscriberId(subsriberId: string) { - var result: string = null; - var filteredArray: any = _.filter(this.store.getState().service.subscribers, function (o: Subscriber) { - return o.id === subsriberId - }) - if (filteredArray.length > 0) { - result = filteredArray[0].name; - } - return result; - } - - createModelInformationItems(): Array { - var serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId]; - - let items = [ - new ModelInformationItem("Subscriber Name", "subscriberName", [this.extractSubscriberNameBySubscriberId(serviceInstance.globalSubscriberId)], "", true), - new ModelInformationItem("Service Name", "serviceModelName", [this.serviceModel.name], "", true), - - new ModelInformationItem("Service Instance Name", "serviceName", [serviceInstance.instanceName], "", false), - new ModelInformationItem("Model Name", "modelName", [this.model.name], "", true), - new ModelInformationItem("Model version", "modelVersion", [this.model.version], "", true), - new ModelInformationItem("Description", "description", [this.model.description]), - new ModelInformationItem("Category", "category", [this.model.category]), - new ModelInformationItem("Sub Category", "subCategory",[this.model.subCategory]), - new ModelInformationItem("UUID", "uuid", [this.model.uuid], Constants.ServicePopup.TOOLTIP_UUID, true), - new ModelInformationItem("Invariant UUID", "invariantUuid", [this.model.invariantUuid], Constants.ServicePopup.TOOLTIP_INVARIANT_UUID, true), - new ModelInformationItem("Service type", "serviceType", [this.serviceModel.serviceType]), - new ModelInformationItem("Service role", "serviceRole", [this.serviceModel.serviceRole]), - - - ]; - if (this.modelType === 'VFmodule') { - items.push(new ModelInformationItem("Minimum to instantiate", "min", [this.model.min], "", true), - new ModelInformationItem("Maximum to instantiate", "max", this.model.max == undefined ? [1] : [this.model.max], "", true), - new ModelInformationItem("Recommended to instantiate", "initial", [this.model.initial])); - - } - - return items; - } -} diff --git a/vid-webpack-master/src/app/components/vnf-popup/vnf-popup.html b/vid-webpack-master/src/app/components/vnf-popup/vnf-popup.html deleted file mode 100644 index d2e043b18..000000000 --- a/vid-webpack-master/src/app/components/vnf-popup/vnf-popup.html +++ /dev/null @@ -1,54 +0,0 @@ - diff --git a/vid-webpack-master/src/app/configuration/vid.configuration.ts b/vid-webpack-master/src/app/configuration/vid.configuration.ts deleted file mode 100644 index 2430d3ba5..000000000 --- a/vid-webpack-master/src/app/configuration/vid.configuration.ts +++ /dev/null @@ -1,98 +0,0 @@ -export class VidConfiguration { - - public static VNF_STATUS_CHECK_ENABLED = false; - - /* - * UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED: Determines the Property to Govern Presence of - * Upload Supplementary File on Volume Group Screen. - * Set to false, to disable the check. - */ - public static UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED = false; - - /* - * List of valid VNF status combinations - */ - public static VNF_VALID_STATUS_LIST = [ - { - 'provStatus': 'preprov', - 'orchestrationStatus': 'pending-create', - 'inMaint': false, - 'operationalStatus': null - }, - { - 'provStatus': 'preprov', - 'orchestrationStatus': 'created', - 'inMaint': false, - 'operationalStatus': null - }, - { - 'provStatus': 'preprov', - 'orchestrationStatus': 'active', - 'inMaint': false, - 'operationalStatus': null - }, - { - 'provStatus': 'nvtprov', - 'orchestrationStatus': 'active', - 'inMaint': false, - 'operationalStatus': null - }, - { - 'provStatus': 'prov', - 'orchestrationStatus': 'active', - 'inMaint': false, - 'operationalStatus': 'out-of-service-path' - }, - { - 'provStatus': 'prov', - 'orchestrationStatus': 'activated', - 'inMaint': false, - 'operationalStatus': 'out-of-service-path' - } - ]; - - /* - * The model status VID uses to query SDC for a list of models. The possible values are: - * DISTRIBUTION_NOT_APPROVED, - * DISTRIBUTION_APPROVED, - * DISTRIBUTED, - * DISTRIBUTION_REJECTED, - * ALL, - * In the production env, this should always be set to DISTRIBUTED - */ - public static ASDC_MODEL_STATUS = 'DISTRIBUTED'; - - /* - * Max number of times that VID will poll MSO for a given request status - */ - public static MSO_MAX_POLLS = 10; - - /* - * Number of msecs that VID will wait between MSO polls. - */ - public static MSO_POLLING_INTERVAL_MSECS = 10000; - - public static SCHEDULER_POLLING_INTERVAL_MSECS = 10000; - - public static SCHEDULER_MAX_POLLS = 10; - - public static COMPONENT_LIST_NAMED_QUERY_ID = '0367193e-c785-4d5f-9cb8-7bc89dc9ddb7'; - - /* - * List of all service model invariant UUIDs that need macro instantiation. - * Example: - * MACRO_SERVICES : ['3cf30cbb-5fe7-4fb3-b049-559a4997b221', 'b135a703-bab5-4295-a37f-580a4f2d0961'] - * - */ - public static MACRO_SERVICES = ['c9514b73-3dfe-4d7e-9146-b318d48655d9', '93150ffa-00c6-4ea0-85f2-3536ca46ebd2', - '2b54297f-72e7-4a94-b451-72df88d0be0b', - 'd27e42cf-087e-4d31-88ac-6c4b7585f800', - 'ec0c4bab-c272-4dab-b087-875031bb0c9f', '0311f998-9268-4fd6-bbba-afff15087b72', - '43596836-ae36-4608-a987-6608ede10dac', '306caa85-74c7-48a9-aa22-7e3a564b957a', - 'e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0']; - - public static SCHEDULER_CALLBACK_URL = 'https://vid-web-ete.ecomp.cci.att.com:8000/vid/change-management/workflow/'; - - public static SCHEDULER_PORTAL_URL = 'http://www.ecomp.att.com'; - -} diff --git a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.html b/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.html deleted file mode 100644 index 5eb977325..000000000 --- a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.html +++ /dev/null @@ -1,35 +0,0 @@ -
-
- SERVICE MODEL: - {{service | serviceInfo: _store: serviceModelId : 'name'}} -
-
-
- - -
- - - -
- {{node.data.type.substring(0,1)}} - - - - {{getNodeCount(node)}} - - - - - - - - - - -
-
-
- -
-
diff --git a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.scss b/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.scss deleted file mode 100644 index 44f94109a..000000000 --- a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.scss +++ /dev/null @@ -1,398 +0,0 @@ -available-models-tree { - .available-models-tree { - height: 100%; - display: flex; - flex-direction: column; - line-height: 14px; - border-right: #D2D2D2 1.5px solid; - min-width: 340px; - h5 { - font-family: OpenSans-Semibold; - color: #5A5A5A; - background-color: #F2F2F2; - margin: 0; - padding: 15px; - padding-left: 20px; - span { - vertical-align: middle; - &:first-child { - font-size: 12px; - color: #191919; - } - } - } - .available-models-content-wrapper { - flex: 1; - display: flex; - flex-direction: column; - padding: 20px; - background-color: #F2F2F2; - .search-container { - margin-bottom: 30px; - width: 100%; - display: flex; - background: #FFFFFF; - border: 1px solid #D2D2D2; - border-radius: 2px; - height: 40px; - min-width: 40px; - font-family: OpenSans-Italic; - color: #959595; - input { - flex: 1; - border: 0; - padding-left: 10px; - outline: 0; - } - .icon-search { - display: flex; - width: 40px; - &:after { - content: "\e92e"; - cursor: pointer; - font-size: 20px; - font-weight: 600; - text-align: center; - display: inline-block; - flex: auto; - align-self: center; - } - } - } - tree-root { - flex: 1; - display: flex; - } - tree-viewport { - flex: 1; - height: auto; - overflow: auto; - padding-top: 5px; - .tree-node { - color: #5A5A5A; - font-size: 13px; - white-space: normal; - word-break: break-all; - tree-node-drop-slot { - .node-drop-slot { - display: none; - } - } - &.tree-node-disabled { - color: #D2D2D2; - cursor: default; - pointer-events: none; - } - &:not(.tree-node-disabled) { - >tree-node-wrapper { - .node-wrapper:hover { - color: #009FDB; - .node-content-wrapper { - tree-node-content { - > div { - span.actions { - .number-button { - span { - //background-color: #009FDB; - } - } - .icon-plus span:before { - display: inline-block; - color: #5A5A5A; - } - } - } - } - } - } - } - } - &.tree-node-focused:not(.tree-node-disabled) { - & > tree-node-wrapper { - .node-wrapper { - color: #009FDB; - .node-content-wrapper-focused, - .node-content-wrapper:hover { - background: none; - box-shadow: none; - tree-node-content { - > div { - span.actions { - .number-button { - span { - //background-color: #009FDB; - } - } - } - } - } - } - } - } - } - tree-node-wrapper { - .node-wrapper { - height: 36px; - tree-node-expander { - font-family: 'icomoon' !important; - height: 100%; - .toggle-children-wrapper { - padding: 0; - display: block; - height: 100%; - span.toggle-children { - display: flex; - width: 20px; - top: 0; - height: inherit; - background-image: none; - &:before { - content: "\e900"; - font-weight: 600; - text-align: center; - display: inline-block; - flex: auto; - align-self: center; - font-size: 20px; - } - } - } - .toggle-children-wrapper-expanded { - span.toggle-children { - transform: none; - &:before { - content: "\e930"; - } - } - } - .toggle-children-placeholder { - width: 20px; - } - } - .node-content-wrapper { - padding: 0; - background: none; - box-shadow: none; - height: 100%; - flex: 1; - min-width: 0; - border-left: 1px solid #D2D2D2; - tree-node-content { - > div { - height: 100%; - display: flex; - align-items: center; - justify-content: space-between; - padding-left: 10px; - span { - &.actions { - height: 100%; - display: flex; - justify-content: space-between; - align-items: center; - >span { - width: 45px; - max-width: 45px; - text-align: center; - } - .number-button { - width: 30px; - padding-left: 0; - text-align: center; - span { - display: block; - font-size: 11px; - } - } - .icon-v { - width: 45px; - span:before { - content: "\e932"; - color: #5A5A5A; - font-size: 16px; - text-align: center; - display: inline-block; - vertical-align: baseline; - } - } - .icon-plus { - width: 45px; - span { - &:before { - //content: "\e901"; - //fill:#009FDB; - //color: #009FDB; - //font-size: 16px; - //text-align: center; - //display: none; - //vertical-align: baseline; - } - &:hover:before { - //color: #009FDB !important; - - } - } - } - } - } - } - } - } - - } - } - tree-node-children { - .tree-children { - padding-left: 20px; - } - } - } - } - - } - } -} -.highlight { - background-color: #9DD9EF; -} - -#drawing-board-tree{ - .tree-node.tree-node-expanded.tree-node-focused { - border: 1px solid #009FDB; - } - -} - -available-models-tree { - - .tree-root { - margin-top: 35px; - } - - tree-node-expander { - background: #FFFFFF; - border: 1px solid #D2D2D2; - border-right: none; - width: 45px; - padding-left: 12px; - } - - .node-content-wrapper { - border: none; - } - - tree-node-wrapper tree-node-expander{ - background: none !important; - border: none !important; - } - - tree-node-content div { - background: white; - } - - .node-wrapper { - height: 45px !important; - background: #FFFFFF; - border: 1px solid #D2D2D2; - } - - tree-node-collection div { - margin-top: 0px; - } - - .tree-node-leaf .node-wrapper tree-node-expander { - display: none; - } - - .tree-children { - padding: 20px; - } - - .tree-node.tree-node-expanded.tree-node-focused { - border: 1px solid #009FDB; - } - - .tree-node.tree-node-expanded { - border: 1px solid rgba(128, 128, 128, 0.72); - margin-bottom: 10px; - } - - .tree-children { - padding-left: 0; - } - - tree-node-content .actions .number-button { - height: 45px; - padding-top: 14px; - border: 1px solid #D2D2D2; - padding-left: 0; - span { - background: none; - font-size: 11px; - color: #5A5A5A; - } - } - - - - .node-content-wrapper.node-content-wrapper-focused tree-node-content div{ - background: #009FDB !important; - color: white; - - .isParent { - border-left: 1px solid #009FDB; - } - - .number-button span{ - color: white !important; - } - - .icon-v span:before{ - color: white !important; - } - } - - .vf-type { - width: 20px; - height: 45px; - padding-top: 16px; - border-right: 1px solid #D2D2D2; - - } - - .isParent { - width: 100%; - padding-left: 5px; - } - - .tree-node-expanded .isChild .vf-type { - display: none; - } - - .isParent .span-name { - width: 100%; - padding-left: 10px; - } - - .toggle-children-wrapper.toggle-children-wrapper-expanded { - .toggle-children:before { - color: #009FDB; - } - } - - .tree-node.tree-node-expanded .tree-children { - border: 1px solid rgba(128, 128, 128, 0.72); - } - - .tree-node.tree-node-expanded.tree-node-focused .tree-children { - border: 1px solid #009fdb; - } - - .tree-node-leaf .node-wrapper{ - margin-left: 45px; - border-left: none; - } -} - - - diff --git a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.ts deleted file mode 100644 index 4e5819e4c..000000000 --- a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.component.ts +++ /dev/null @@ -1,166 +0,0 @@ -import {Component, EventEmitter, Output, ViewChild} from '@angular/core'; -import {ITreeOptions, TreeComponent} from 'angular-tree-component'; -import '../../../../node_modules/angular-tree-component/dist/angular-tree-component.css'; -import {IDType, ITreeNode} from 'angular-tree-component/dist/defs/api'; -import {DialogService} from 'ng2-bootstrap-modal'; -import {AvailableModelsTreeService} from './available-models-tree.service'; -import {NgRedux} from "@angular-redux/store"; -import {ActivatedRoute} from '@angular/router'; -import {AppState} from '../../store/reducers'; -import {AaiService} from '../../services/aaiService/aai.service'; -import {ServicePlanningService} from '../../services/service-planning.service'; -import {VnfPopupComponent} from '../../components/vnf-popup/vnf-popup.components'; -import {ServiceNodeTypes} from '../../shared/models/ServiceNodeTypes'; -import {VfModuleMap} from '../../shared/models/vfModulesMap'; -import {IframeService} from "../../shared/utils/iframe.service"; -import {createVFModuleInstance} from "../../service.actions"; -import {DefaultDataGeneratorService} from "../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; - - -@Component({ - selector: 'available-models-tree', - templateUrl: './available-models-tree.component.html', - styleUrls: ['./available-models-tree.component.scss'] -}) - - -export class AvailableModelsTreeComponent{ - - serviceModelId: string; - serviceHierarchy; - parentElementClassName = 'content'; - _store : NgRedux; - constructor(private _servicePlanningService: ServicePlanningService, - private _iframeService: IframeService, - private _aaiService: AaiService, - private route: ActivatedRoute, - private dialogService: DialogService, - private _availableModelsTreeService: AvailableModelsTreeService, - private _defaultDataGeneratorService: DefaultDataGeneratorService, - private store: NgRedux) { - this._store = store; - this.route - .queryParams - .subscribe(params => { - this.serviceModelId = params['serviceModelId']; - this._aaiService.getServiceModelById(this.serviceModelId).subscribe( - value => { - this.serviceHierarchy = value; - this.nodes = this._servicePlanningService.convertServiceModelToTreeNodes(this.serviceHierarchy); - }, - error => { - console.log('error is ', error) - } - ); - }); - - } - - @Output() - highlightInstances: EventEmitter = new EventEmitter(); - @ViewChild('tree') tree: TreeComponent; - - nodes = []; - service = {name: ''}; - isFilterEnabled: boolean = false; - - options: ITreeOptions = { - nodeHeight: 36, - dropSlotHeight: 0, - nodeClass: (node: ITreeNode) => { - if(node.data.type === ServiceNodeTypes.VFmodule && !this.getNodeCount(node.parent)) - { - node.data.disabled = true; - return 'tree-node tree-node-disabled'; - } - node.data.disabled = false; - return 'tree-node'; - } - }; - - expandParentByNodeId(id: IDType): void { - this.tree.treeModel.getNodeById(id).parent.expand(); - } - - searchTree(searchText: string, event: KeyboardEvent): void { - if (searchText === '') { - return; - } - this.isFilterEnabled = event.key === 'Delete' || event.key === 'Backspace' || searchText.length > 1; - if (this.isFilterEnabled) { - let __this = this; - let results: ITreeNode[] = []; - this.nodes.forEach(function (node) { - __this.searchTreeNode(node, searchText, results); - }); - results.forEach(function (result) { - __this.expandParentByNodeId(result.id) - }); - } - } - - searchTreeNode(node, searchText: string, results): void { - if (node.name.toLowerCase().indexOf(searchText.toLowerCase()) != -1) { - results.push(node); - } - if (node.children != null) { - for (let i = 0; i < node.children.length; i++) { - this.searchTreeNode(node.children[i], searchText, results); - } - } - } - - selectNode(node: ITreeNode): void { - node.expand(); - this.highlightInstances.emit(node.data.id); - } - - onClickAdd(e: MouseEvent, node: ITreeNode): void { - let data = node.data; - let dynamicInputs = data.dynamicInputs; - let userProvidedNaming:boolean = data.userProvidedNaming; - let type:string = data.type; - if(!this.store.getState().global.flags['FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD']|| node.data.type === ServiceNodeTypes.VF || this._availableModelsTreeService.shouldOpenDialog(type, dynamicInputs, userProvidedNaming)) { - this._iframeService.addClassOpenModal(this.parentElementClassName); - this.dialogService.addDialog(VnfPopupComponent, { - serviceModelId: this.serviceModelId, - parentModelName: node.parent && node.parent.data.name, - modelName: data.name, - modelType: type, - dynamicInputs: dynamicInputs, - userProvidedNaming: userProvidedNaming, - isNewVfModule : true - }); - } - else { - let vfModule = this._defaultDataGeneratorService.generateVFModule(this.serviceHierarchy, node.parent.data.name, node.data.name); - this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId)); - } - e.preventDefault(); - e.stopPropagation(); - } - - getNodeCount(node: ITreeNode): number { - let modelName: string = node.data.name; - if (ServicePlanningService.isVfModule(node)) { - let parentVnfModelName = node.parent.data.name; - let vfModuleMap: VfModuleMap = this._servicePlanningService.getVfModuleMap(this.serviceModelId, parentVnfModelName, modelName); - return vfModuleMap ? Object.keys(vfModuleMap).length : 0; - } else if (ServicePlanningService.isVnf(node)) { - let vnfInstance = this._servicePlanningService.getVnfInstance(this.serviceModelId, modelName); - return vnfInstance ? 1 : 0; - } - } - - isShowIconV(node: ITreeNode): boolean { - return this.getNodeCount(node) > 0; - } - - isShowNodeCount(node: ITreeNode): boolean { - return this.getNodeCount(node) > 0; - } - - isShowIconAdd(node: ITreeNode): boolean { - return this._availableModelsTreeService.shouldShowAddIcon(node, this.store.getState().service.serviceHierarchy, this.serviceModelId, this.getNodeCount(node)); - } -} diff --git a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.ts b/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.ts deleted file mode 100644 index 57dc4b409..000000000 --- a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.ts +++ /dev/null @@ -1,36 +0,0 @@ -import {Injectable} from '@angular/core'; -import * as _ from "lodash"; -import {ServicePlanningService} from "../../services/service-planning.service"; - -@Injectable() -export class AvailableModelsTreeService { - constructor(private _servicePlanningService: ServicePlanningService) { - } - - shouldShowAddIcon(node: any, serviceHierarchy: any, serviceModelId: string, currentNodeCount: number): boolean { - let maxNodes: number = 1; - if (node.data.children !== null && node.data.children.length == 0) { - let vnfModules = serviceHierarchy[serviceModelId].vfModules; - if (vnfModules[node.data.name]) { - maxNodes = vnfModules[node.data.name].properties.maxCountInstances || 1; - } - } - return !node.data.disabled && currentNodeCount < maxNodes - } - - shouldOpenDialog(type: string, dynamicInputs: any, userProvidedNaming: boolean): boolean { - if (userProvidedNaming || this._servicePlanningService.requiredFields[type].length > 0) { - return true; - } - - if (dynamicInputs) { - for(let input of dynamicInputs) { - if (input.isRequired && _.isEmpty(input.value)) { - return true; - } - } - } - return false; - } - -} diff --git a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.html b/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.html deleted file mode 100644 index 7d0f7f456..000000000 --- a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.html +++ /dev/null @@ -1,33 +0,0 @@ -
-
- - Service instance: - {{serviceName}} - - Scale Times: - {{numServicesToDeploy}} - - status: - {{status}} -
-
- - - - -
- - Edit -
-
- -
- - Delete -
-
-
-
- -
-
diff --git a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.scss b/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.scss deleted file mode 100644 index 29b7711bc..000000000 --- a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.scss +++ /dev/null @@ -1,95 +0,0 @@ -.drawing-board-header { - height: 56px; - margin-bottom: 4px; - position: relative; - font-family: OpenSans-Regular; - display: flex; - justify-content: space-between; - font-size: 14px; - box-shadow: 2px 2px 6px #D2D2D2; - color: #191919; - [class^="icon-"] { - height: 56px; - width: 56px; - display: flex; - align-items: center; - text-align: center; - color: #5A5A5A; - cursor: pointer; - &:before { - font-size: 18px; - width: 100%; - } - &:hover:before { - color: #009FDB; - } - } - .left-header { - display: flex; - align-items: center; - .icon-back { - border-right: 1px solid #EAEAEA; - &:before { - content: "\e906"; - font-size: 24px; - } - } - .service-instance-label { - padding: 0 5px; - font-family: OpenSans-Regular; - font-size: 13px; - color: #191919; - } - .service-instance-name { - padding-right: 20px; - color: #191919; - font-family: OpenSans-Semibold; - background-color: white; - font-size: 16px - } - .status { - font-family: OpenSans-Semibold; - line-height: 14px; - font-size: 14px; - } - } - .right-header { - display: flex; - align-items: center; - .quantity-container { - .quantity-label { - padding-left: 10px; - font-family: OpenSans-Semibold; - font-size: 12px; - } - .quantity { - padding: 5px 10px 5px 0; - font-family: OpenSans-Semibold; - font-size: 18px; - } - } - [class^="icon-"] { - border-left: 1px solid #EAEAEA; - } - .menu-container { - height: 100%; - display: flex; - background: none; - border: none; - padding: 0; - outline: none; - } - .icon-browse:before { - content: '\e924'; - display: inline-block; - font-size: 24px; - } - .deploy-btn { - color: #FFFFFF ; - background: #009fdb; - width: 128px; - height: 100%; - border: none; - } - } -} diff --git a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.ts b/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.ts deleted file mode 100644 index 38284e214..000000000 --- a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/drawing-board-header.component.ts +++ /dev/null @@ -1,119 +0,0 @@ -import {Component, ViewChild} from '@angular/core'; -import {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu'; -import {DialogService} from 'ng2-bootstrap-modal'; -import {ServicePopupComponent} from '../../components/service-popup/service-popup.component'; -import {MsoService} from '../../services/msoService/mso.service' -import * as _ from 'lodash'; -import {ActivatedRoute} from '@angular/router'; -import {ServiceInstance} from "../../shared/models/serviceInstance"; -import {OwningEntity} from "../../shared/models/owningEntity"; -import {MessageBoxData, ModalSize, ModalType} from "../../shared/components/messageBox/messageBox.data"; -import {MessageBoxService} from "../../shared/components/messageBox/messageBox.service"; -import {NgRedux} from "@angular-redux/store"; -import {AppState} from "../../store/reducers"; -import {IframeService} from "../../shared/utils/iframe.service"; - -@Component({ - selector: 'drawing-board-header', - providers: [MsoService], - templateUrl: './drawing-board-header.component.html', - styleUrls: ['./drawing-board-header.component.scss'] -}) - -export class DrawingBoardHeader { - serviceName: string; - numServicesToDeploy: number; - status: string = 'Designing a new service'; - serviceModelId: string; - parentElementClassName = 'content'; - - constructor(private _contextMenuService: ContextMenuService, private dialogService: DialogService, - private _iframeService : IframeService, - private route: ActivatedRoute, private msoService: MsoService, - private store: NgRedux) { - this.route - .queryParams - .subscribe(params => { - this.serviceModelId = params['serviceModelId']; - if (_.has(this.store.getState().service.serviceHierarchy, this.serviceModelId)) { - this.setValuesFromStore(); - this.store.subscribe(() => { - this.setValuesFromStore(); - }); - } - }); - } - - - @ViewChild(ContextMenuComponent) public contextMenu: ContextMenuComponent; - - public onContextMenu($event: MouseEvent, item: any): void { - this._contextMenuService.show.next({ - contextMenu: this.contextMenu, - event: $event, - item: item, - }); - $event.preventDefault(); - $event.stopPropagation(); - } - - private setValuesFromStore() { - const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId]; - this.numServicesToDeploy = serviceInstance.bulkSize; - this.serviceName = serviceInstance.instanceName || ''; - - } - - public editService(): void { - this._iframeService.addClassOpenModal(this.parentElementClassName); - this.dialogService.addDialog(ServicePopupComponent, {}) - - } - - - extractOwningEntityNameAccordingtoId(id:String): string { - let owningEntityName; - _.forEach(this.store.getState().service.categoryParameters.owningEntityList,function(owningEntity: OwningEntity) { - if (owningEntity.id === id) { - owningEntityName = owningEntity.name; - - }}) - - return owningEntityName; - } - - extractServiceFields(): any { - let instanceFields : ServiceInstance; - instanceFields = this.store.getState().service.serviceInstance[Object.keys(this.store.getState().service.serviceInstance)[0]]; - instanceFields.subscriberName = this.store.getState().service.subscribers.find(sub => sub.id === instanceFields.globalSubscriberId).name; - instanceFields.owningEntityName = this.extractOwningEntityNameAccordingtoId(instanceFields.owningEntityId); - return instanceFields; - } - - public deployMacroservice(): void { - var instanceFields = this.extractServiceFields(); - instanceFields.rollbackOnFailure = instanceFields.rollbackOnFailure === 'true'; - this.msoService.submitMsoTask(instanceFields).subscribe((result) => { - window.parent.postMessage("navigateToInstantiationStatus", '*'); - }) - } - - closePage() { - let messageBoxData : MessageBoxData = new MessageBoxData( - "Delete Instantiation", // modal title - "You are about to stop the instantiation process of this service. \nAll data will be lost. Are you sure you want to stop?", - - ModalType.alert, - ModalSize.medium, - [ - {text:"Stop Instantiation", size:"large", callback: this.navigate.bind(this), closeModal:true}, - {text:"Cancel", size:"medium", closeModal:true} - ]); - - MessageBoxService.openModal.next(messageBoxData); - } - - navigate(){ - window.parent.postMessage("navigateTo", "*"); - } -} diff --git a/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.component.ts deleted file mode 100644 index 6b717a930..000000000 --- a/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.component.ts +++ /dev/null @@ -1,133 +0,0 @@ -import {AfterViewInit, Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core'; -import { ContextMenuService } from 'ngx-contextmenu'; -import { Constants } from '../../shared/utils/constants'; -import {ServicePlanningService} from "../../services/service-planning.service"; -import {ITreeNode} from "angular-tree-component/dist/defs/api"; -import {ITreeOptions, TreeComponent} from "angular-tree-component"; -import {VnfPopupComponent} from "../../components/vnf-popup/vnf-popup.components"; -import {DialogService} from "ng2-bootstrap-modal"; -import {ActivatedRoute} from "@angular/router"; -import {NgRedux} from "@angular-redux/store"; -import {AppState} from "../../store/reducers"; -import { MessageBoxData, ModalSize, ModalType } from '../../shared/components/messageBox/messageBox.data'; -import { MessageBoxService } from '../../shared/components/messageBox/messageBox.service'; -import { deleteVnfInstance, deleteVfModuleInstance } from '../../service.actions'; -import { isNullOrUndefined } from 'util'; -import {IframeService} from "../../shared/utils/iframe.service"; - - -@Component({ - selector: 'drawing-board-tree', - templateUrl: './drawing-board-tree.html', - styleUrls : ['./drawing-board-tree.scss'] -}) - - -export class DrawingBoardTreeComponent implements OnInit, AfterViewInit { - constructor(private _contextMenuService: ContextMenuService, - private _servicePlanningService: ServicePlanningService, - private _iframeService : IframeService, - private dialogService: DialogService, - private store: NgRedux, - private route: ActivatedRoute) { - this.route - .queryParams - .subscribe(params => { - this.serviceModelId = params['serviceModelId']; - }); - } - - @Output() - highlightNode : EventEmitter = new EventEmitter(); - - @ViewChild('tree') tree: TreeComponent; - missingDataTooltip: string = Constants.Error.MISSING_VNF_DETAILS; - currentNode: ITreeNode = null; // - nodes = []; - serviceModelId: string; - options: ITreeOptions = { - nodeHeight: 45, - dropSlotHeight: 1 - }; - parentElementClassName = 'content'; - - ngOnInit(): void { - this.store.subscribe(() => {this.updateTree()}); - this.updateTree() - } - - updateTree() { - const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId]; - this.nodes = this._servicePlanningService.convertServiceInstanceToTreeData(serviceInstance, this.serviceModelId); - } - - ngAfterViewInit():void { - // Expand drawing tree on init. - this.tree.treeModel.expandAll(); - } - - public onContextMenu($event: MouseEvent, node: ITreeNode): void { - this.currentNode = node; - node.focus(); - node.setActiveAndVisible(false); - this.selectNode(node); - this._contextMenuService.show.next({ - event: $event, - item: node, - }); - $event.preventDefault(); - $event.stopPropagation(); - } - - public editItem(node: ITreeNode): void { - node = this.currentNode; - this._iframeService.addClassOpenModal(this.parentElementClassName); - this.dialogService.addDialog(VnfPopupComponent, { - serviceModelId: this.serviceModelId, - modelName: node.data.modelName, - modelType: node.data.type, - parentModelName: node.parent.data.modelName, - isNewVfModule : false - }) - } - - public deleteItem(node: ITreeNode): void { - if(this.currentNode.data.type === 'VF'){ - if(!isNullOrUndefined(this.currentNode.data.children) && this.currentNode.data.children.length === 0){ - this.store.dispatch(deleteVnfInstance(this.currentNode.data.modelName, this.serviceModelId)); - }else { - let messageBoxData : MessageBoxData = new MessageBoxData( - "Remove VNF", // modal title - "You are about to remove this VNF and all its children from this service. Are you sure you want to remove it?", - - ModalType.alert, - ModalSize.medium, - [ - {text:"Remove VNF", size:"large", callback: this.removeVnf.bind(this), closeModal:true}, - {text:"Don’t Remove", size:"medium", closeModal:true} - ]); - - MessageBoxService.openModal.next(messageBoxData); - } - }else { - this.store.dispatch(deleteVfModuleInstance(this.currentNode.data.modelName, this.serviceModelId, node.parent.data.modelName)); - } - } - - removeVnf() { - this.store.dispatch(deleteVnfInstance(this.currentNode.data.modelName, this.serviceModelId)); - } - - public selectNode(node: ITreeNode): void { - node.expand(); - this.highlightNode.emit(node.data.modelId); - } - - isDataMissing(node: ITreeNode) { - //todo: currently not showing the alert icon. will be implemented in upcoming story. - return false; - } - -} - - diff --git a/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.html b/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.html deleted file mode 100644 index c4061db9e..000000000 --- a/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.html +++ /dev/null @@ -1,42 +0,0 @@ -
-
- -
- - -
-
- - {{node.data.type}}{{node.data.name ? ': ': ''}}{{node.data.name? node.data.name: ''}} - -
-
- - - -
- - Edit -
-
- -
- - Remove -
-
-
-
- -
-
- -
-
-
- - diff --git a/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts b/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts index 41efbe0e8..6a3574f23 100644 --- a/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts +++ b/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts @@ -1,41 +1,86 @@ -import { AvailableModelsTreeService } from './available-models-tree/available-models-tree.service'; -import { NgModule } from '@angular/core'; -import { HighlightPipe } from '../shared/pipes/highlight-filter.pipe'; -import { TreeModule } from 'angular-tree-component'; -import { BrowserModule } from '@angular/platform-browser'; -import { TooltipModule } from 'ngx-tooltip'; -import { AvailableModelsTreeComponent } from './available-models-tree/available-models-tree.component'; -import { ServicePlanningService } from '../services/service-planning.service'; -import { AaiService } from '../services/aaiService/aai.service'; -import { DrawingBoardTreeComponent } from './drawing-board-tree/drawing-board-tree.component'; -import { SharedModule } from '../shared/shared.module'; -import { ContextMenuModule, ContextMenuService } from 'ngx-contextmenu'; -import { CommonModule } from '@angular/common'; -import { DrawingBoardHeader } from './drawing-board-header/drawing-board-header.component'; -import { ServicePlanningComponent, ServicePlanningEmptyComponent } from './service-planning/service-planning.component'; +import {AvailableModelsTreeService} from './service-planning/available-models-tree/available-models-tree.service'; +import {HighlightPipe} from '../shared/pipes/highlight/highlight-filter.pipe'; +import {TreeModule} from 'angular-tree-component'; +import {BrowserModule} from '@angular/platform-browser'; +import {TooltipModule} from 'ngx-tooltip'; +import {AvailableModelsTreeComponent} from './service-planning/available-models-tree/available-models-tree.component'; +import {AaiService} from '../shared/services/aaiService/aai.service'; +import {DrawingBoardTreeComponent} from './service-planning/drawing-board-tree/drawing-board-tree.component'; +import {SharedModule} from '../shared/shared.module'; +import {ContextMenuModule, ContextMenuService} from 'ngx-contextmenu'; +import {CommonModule} from '@angular/common'; +import {DrawingBoardHeader} from './service-planning/drawing-board-header/drawing-board-header.component'; +import {ServicePlanningComponent, ServicePlanningEmptyComponent} from './service-planning/service-planning.component'; +import {DuplicateVnfComponent} from './service-planning/duplicate/duplicate-vnf.component'; +import {DuplicateService} from './service-planning/duplicate/duplicate.service'; +import {FormsModule} from '@angular/forms'; +import {DrawingBoardTreeService} from "./service-planning/drawing-board-tree/drawing-board-tree.service"; +import {DrawingBoardHeaderService} from "./service-planning/drawing-board-header/drawing-board-header.service"; +import {TreeNodeHeaderPropertiesComponent} from "./service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component"; +import {SafePipe} from "../shared/pipes/safe/safe.pipe"; +import {FeatureFlagModule} from "../featureFlag/featureFlag.module"; +import {DynamicInputsService} from "./service-planning/objectsToTree/dynamicInputs.service"; +import {InstanceTreeGenerator} from "./service-planning/drawing-board-tree/instance.tree.generator"; +import {SharedTreeService} from "./service-planning/objectsToTree/shared.tree.service"; +import {ObjectToModelTreeService} from "./service-planning/objectsToTree/objectToModelTree/objectToModelTree.service"; +import {ObjectToInstanceTreeService} from "./service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service"; +import {ObjectToTreeService} from "./service-planning/objectsToTree/objectToTree.service"; +import {SearchComponent} from "./service-planning/search/search.component"; +import {SdcUiComponentsModule} from "onap-ui-angular"; +import {DrawingBoardPermissions} from "./guards/servicePlanningGuard/drawingBoardGuard"; +import {NgModule} from '@angular/core'; +import {DragAndDropService} from "./service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service"; +import {SdcUiServices} from "onap-ui-angular/dist"; +import {CreateDynamicComponentService} from "onap-ui-angular/dist/utils/create-dynamic-component.service"; +import {ComponentInfoComponent} from './service-planning/component-info/component-info.component'; +import {ComponentInfoService} from "./service-planning/component-info/component-info.service"; + @NgModule({ imports: [ TreeModule, BrowserModule, ContextMenuModule, + FormsModule, TooltipModule, CommonModule, - SharedModule.forRoot()], + SdcUiComponentsModule, + SharedModule.forRoot(), + FeatureFlagModule.forRoot()], providers: [ - ServicePlanningService, AaiService, - AvailableModelsTreeService , + ObjectToTreeService, + AvailableModelsTreeService, ContextMenuService, - ServicePlanningService], + DuplicateService, + DrawingBoardTreeService, + DrawingBoardHeaderService, + DrawingBoardPermissions, + SafePipe, + ObjectToInstanceTreeService, + ObjectToModelTreeService, + DynamicInputsService, + InstanceTreeGenerator, + SharedTreeService, + SdcUiServices.ModalService, + SdcUiServices.LoaderService, + CreateDynamicComponentService, + ComponentInfoService, + DragAndDropService], declarations: [ AvailableModelsTreeComponent, HighlightPipe, DrawingBoardTreeComponent, DrawingBoardHeader, ServicePlanningComponent, - ServicePlanningEmptyComponent], - exports: [ AvailableModelsTreeComponent, DrawingBoardTreeComponent, DrawingBoardHeader] + ServicePlanningEmptyComponent, + DuplicateVnfComponent, + TreeNodeHeaderPropertiesComponent, + SearchComponent, + ComponentInfoComponent], + entryComponents: [DuplicateVnfComponent], + exports: [AvailableModelsTreeComponent, DrawingBoardTreeComponent, DrawingBoardHeader, TreeNodeHeaderPropertiesComponent, SearchComponent] }) -export class DrawingBoardModule { } +export class DrawingBoardModule { +} diff --git a/vid-webpack-master/src/app/drawingBoard/drawingBoard.routing.ts b/vid-webpack-master/src/app/drawingBoard/drawingBoard.routing.ts new file mode 100644 index 000000000..0c1fa700c --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/drawingBoard.routing.ts @@ -0,0 +1,63 @@ +import {Route} from '@angular/router'; +import {ServicePlanningComponent, ServicePlanningEmptyComponent} from "./service-planning/service-planning.component"; +import {FlagsResolve} from "../shared/resolvers/flag/flag.resolver"; +import {ViewEditResolver} from "../shared/resolvers/viewEdit/viewEdit.resolver"; +import {DrawingBoardGuard} from "./guards/servicePlanningGuard/drawingBoardGuard"; +import {RetryResolver} from "../shared/resolvers/retry/retry.resolver"; + +export const DrawingBoardRoutes: Route[] = [ + { + path: 'servicePlanning', + children: [ + { + path: 'EDIT', + component: ServicePlanningComponent, + resolve: { + flags: FlagsResolve, + viewEditResolver: ViewEditResolver + }, + canActivate: [DrawingBoardGuard] + }, + { + path: 'VIEW', + component: ServicePlanningComponent, + resolve: { + flags: FlagsResolve, + viewEditResolver: ViewEditResolver + } + }, + { + path: 'RETRY_EDIT', + component: ServicePlanningComponent, + resolve: { + flags: FlagsResolve, + viewEditResolver: RetryResolver + }, + canActivate: [DrawingBoardGuard] + }, + { + path: 'RETRY', + component: ServicePlanningComponent, + resolve: { + flags: FlagsResolve, + viewEditResolver: RetryResolver + } + }, + { + path: '', + component: ServicePlanningComponent, + resolve: { + flags: FlagsResolve + }, + } + ] + }, + { + path: 'servicePlanningEmpty', + component: ServicePlanningEmptyComponent, + resolve: { + flags: FlagsResolve, + } + }, +]; + diff --git a/vid-webpack-master/src/app/drawingBoard/guards/servicePlanningGuard/drawingBoardGuard.ts b/vid-webpack-master/src/app/drawingBoard/guards/servicePlanningGuard/drawingBoardGuard.ts new file mode 100644 index 000000000..4a305b193 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/guards/servicePlanningGuard/drawingBoardGuard.ts @@ -0,0 +1,56 @@ +import {Injectable} from "@angular/core"; +import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router} from "@angular/router"; +import {NgRedux} from "@angular-redux/store"; +import {Observable} from "rxjs"; +import {HttpClient} from "@angular/common/http"; +import {AppState} from "../../../shared/store/reducers"; +import {updateDrawingBoardStatus} from "../../../shared/storeUtil/utils/global/global.actions"; +import {DrawingBoardModes} from "../../service-planning/drawing-board.modes"; +import {of} from "rxjs"; + +@Injectable() +export class DrawingBoardGuard implements CanActivate { + constructor(private store: NgRedux, private _http: HttpClient, private _router : Router) { } + canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + let url : string = `/vid/roles/service_permissions?subscriberId=${next.queryParams['subscriberId']}&serviceType=${next.queryParams['serviceType']}`; + const viewMode = state.url.includes(DrawingBoardModes.RETRY_EDIT)? DrawingBoardModes.RETRY: DrawingBoardModes.VIEW; + return this._http.get(url) + .map((result : DrawingBoardPermissions) => { + if(!result.isEditPermitted){ + this.navigateToNewViewEdit(next.queryParams, viewMode); + return false; + }else { + return true; + } + }).catch(err => { + this.navigateToNewViewEdit(next.queryParams, viewMode); + return of(false); + }); + } + + navigateToNewViewEdit(queryParams: any, mode: DrawingBoardModes): void{ + this.store.dispatch(updateDrawingBoardStatus(mode)); + const viewEditUrlTree = this.getNewViewEditUrlTree(queryParams, mode); + this._router.navigateByUrl(viewEditUrlTree); + window.parent.location.assign('../../serviceModels.htm#'+viewEditUrlTree.toString()); + } + + getNewViewEditUrlTree(queryParams: any, mode: DrawingBoardModes) { + return this._router.createUrlTree( + ['/servicePlanning/' + mode], + { + queryParams: + { + serviceModelId: queryParams['serviceModelId'], + serviceInstanceId: queryParams['serviceInstanceId'], + serviceType : queryParams['serviceType'], + subscriberId : queryParams['subscriberId'], + jobId : queryParams['jobId'], + } + }); + } +} + +export class DrawingBoardPermissions { + isEditPermitted : boolean +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html new file mode 100644 index 000000000..91acca0d1 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html @@ -0,0 +1,47 @@ +
+
+
+ MODEL (from SDC): + {{service | serviceInfo: _store: serviceModelId : 'name'}} +
+ +
+
+ + +
+ {{node?.data?.typeName}} +
+ + + + + +
+ + + {{node.data.getNodeCount(node, this.serviceModelId)}} + + + + + + + + + + + +
+
+
+
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss new file mode 100644 index 000000000..90c2cd878 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss @@ -0,0 +1,506 @@ +.tree-children.tree-children-no-padding { padding-left: 0 } +.tree-children { padding-left: 20px; overflow: hidden } +.node-drop-slot { display: block; height: 2px } +.node-drop-slot.is-dragging-over { background: #ddffee; height: 20px; border: 2px dotted #888; } +.toggle-children-wrapper-expanded .toggle-children { transform: rotate(90deg) } +.toggle-children-wrapper-collapsed .toggle-children { transform: rotate(0); } +.toggle-children-wrapper { + padding: 2px 3px 5px 1px; +} +/* tslint:disable */ +.toggle-children { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC'); + height: 8px; + width: 9px; + background-size: contain; + display: inline-block; + position: relative; + top: 1px; + background-repeat: no-repeat; + background-position: center; +} +.toggle-children-placeholder { + display: inline-block; + height: 10px; + width: 10px; + position: relative; + top: 1px; + padding-right: 3px; +} +.node-content-wrapper { + display: inline-block; + padding: 2px 5px; + border-radius: 2px; + transition: background-color .15s,box-shadow .15s; +} +.node-wrapper {display: flex; align-items: flex-start;} +.node-content-wrapper-active, +.node-content-wrapper.node-content-wrapper-active:hover, +.node-content-wrapper-active.node-content-wrapper-focused { + background: #beebff; +} +.node-content-wrapper-focused { background: #e7f4f9 } +.node-content-wrapper:hover { background: #f7fbff } +.node-content-wrapper-active, .node-content-wrapper-focused, .node-content-wrapper:hover { + box-shadow: inset 0 0 1px #999; +} +.node-content-wrapper.is-dragging-over { background: #ddffee; box-shadow: inset 0 0 1px #999; } +.node-content-wrapper.is-dragging-over-disabled { opacity: 0.5 } + +tree-viewport { + height: 100%; + overflow: auto; + display: block; +} +.tree-children { padding-left: 20px } +.empty-tree-drop-slot .node-drop-slot { height: 20px; min-width: 100px } +.angular-tree-component { + width: 100%; + position:relative; + display: inline-block; + cursor: pointer; + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Chrome/Safari/Opera */ + -khtml-user-select: none; /* Konqueror */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE/Edge */ + user-select: none; /* non-prefixed version, currently not supported by any browser */ +} + +tree-root .angular-tree-component-rtl { + direction: rtl; +} +tree-root .angular-tree-component-rtl .toggle-children-wrapper-collapsed .toggle-children { + transform: rotate(180deg) !important; +} +tree-root .angular-tree-component-rtl .tree-children { + padding-right: 20px; + padding-left: 0; +} + +tree-node-checkbox { + padding: 1px; +} + + +available-models-tree { + height: 100%; + &.left-side{ + background: #F2F2F2; + padding: 0; + border-right: #D2D2D2 1px solid; + max-width: 690px; + } + + .available-models-tree { + display: flex; + flex-direction: column; + line-height: 14px; + min-width: 340px; + padding: 30px; + height: 100%; + .models-tree-header { + display: flex; + justify-content: space-between; + + h5 { + margin: 0; + font-family: OpenSans-Semibold; + color: #191919; + font-size: 16px; + + span { + vertical-align: middle; + display: inline-block; + font-size: 16px; + color: #191919; + line-height: 16px; + &.sub-title { + font-family: OpenSans-Regular; + font-size: 14px; + color: #0D0D0D; + } + } + + #service-model-name { + padding-top: 5px; + display: block; + font-size: 14px; + } + } + + .search-container { + width: 275px; + } + } + .available-models-content-wrapper { + flex: 1; + display: flex; + flex-direction: column; + margin-top: 20px; + + + tree-root { + flex: 1; + display: flex; + } + tree-viewport { + flex: 1; + .tree-node { + color: #5A5A5A; + font-size: 13px; + white-space: normal; + word-break: break-all; + tree-node-drop-slot { + .node-drop-slot { + display: none; + } + } + &.tree-node-disabled { + color: #D2D2D2; + cursor: default; + pointer-events: none; + } + &:not(.tree-node-disabled) { + >tree-node-wrapper { + .node-wrapper:hover { + color: #191919; + .node-content-wrapper.node-content-wrapper-focused { + tree-node-content { + > div { + background: #009FDB; + color: white; + } + } + } + .node-content-wrapper { + tree-node-content { + > div { + background: #F2F2F2; + &.tree-node-focused:not(.tree-node-disabled) { + background: #009FDB; + color: white; + } + span.actions { + .icon-plus{ + display: block; + color: #009FDB; + span:before { + display: inline-block; + color: #5A5A5A; + } + } + } + } + } + } + } + } + } + &.tree-node-focused:not(.tree-node-disabled) { + & > tree-node-wrapper { + .node-wrapper { + border-color: #1EB9F3; + .node-content-wrapper{ + background: #009FDB; + border-color: #1EB9F3; + } + .node-content-wrapper-focused{ + box-shadow: none; + tree-node-content { + + .vf-type{ + color: #ffffff; + border-color: #1EB9F3; + } + > div { + span.actions { + .icon-plus { + color: #ffffff; + } + } + } + } + } + } + } + } + tree-node-wrapper { + .node-wrapper { + height: 36px; + tree-node-expander { + font-family: 'icomoon' !important; + height: 100%; + .toggle-children-wrapper { + padding: 0; + display: block; + height: 100%; + span.toggle-children { + display: flex; + width: 20px; + top: 0; + height: inherit; + background-image: none; + &:before { + content: "\e900"; + font-weight: 600; + text-align: center; + display: inline-block; + flex: auto; + align-self: center; + font-size: 20px; + } + } + } + .toggle-children-wrapper-expanded { + span.toggle-children { + transform: none; + &:before { + content: "\e930"; + } + } + } + .toggle-children-placeholder { + width: 20px; + } + } + .node-content-wrapper { + padding: 0; + background: none; + box-shadow: none; + height: 100%; + flex: 1; + min-width: 0; + border-left: 1px solid #D2D2D2; + tree-node-content { + > div { + height: 100%; + display: flex; + align-items: center; + justify-content: space-between; + span { + &.actions { + height: 100%; + display: flex; + justify-content: space-between; + align-items: center; + >span { + width: 45px; + max-width: 45px; + text-align: center; + } + .number-button { + width: 30px; + padding-left: 0; + text-align: center; + span { + display: block; + font-family: OpenSans-SemiBold; + font-size: 13px; + color: #5A5A5A; + line-height: 16px; + } + } + .icon-plus { + display: none; + width: 45px; + font-size: 22px; + } + } + } + } + } + } + + } + } + } + & > tree-node-collection > tree-node > .node-wrapper{ + //border-top: 1px solid #D2D2D2; + } + } + + } + } +} +.highlight { + background-color: #9DD9EF; +} + +#drawing-board-tree{ + .tree-node.tree-node-expanded.tree-node-focused { + } +} + +available-models-tree { + + .tree-root { + margin-top: 35px; + } + + tree-node-expander { + background: #FFFFFF; + border: 1px solid #D2D2D2; + border-right: none; + width: 45px; + padding-left: 12px; + } + + .node-content-wrapper { + border: none; + } + + tree-node-wrapper tree-node-expander{ + background: none !important; + border: none !important; + } + + + .node-wrapper { + height: 45px !important; + background: #FFFFFF; + border: 1px solid #D2D2D2; + } + + tree-node-collection div { + margin-top: 0px; + } + + .tree-node-leaf .node-wrapper tree-node-expander { + display: none; + } + + .tree-node.tree-node-expanded { + margin-bottom: 10px; + } + .tree-node-collapsed { + margin-bottom: 10px; + } + .tree-children { + padding-left: 0; + } + + tree-node-content .actions .number-button { + height: 45px; + padding-top: 14px; + border-right: 1px solid #D2D2D2; + border-left: 1px solid #D2D2D2; + padding-left: 0; + span { + background: none; + font-size: 11px; + color: #5A5A5A; + } + } + + .node-content-wrapper.node-content-wrapper-focused{ + border-color:#1EB9F3 ; + tree-node-content > div{ + .vf-type,.model-info,.model-info .property-name { + color: white; + } + .number-button{ + border-color: #1EB9F3 ; + span{ + color: white !important; + } + } + + } + } + + + + .vf-type { + width: 40px; + height: 45px; + padding-top: 16px; + border-right: 1px solid #D2D2D2; + color: #959595; + font-size: 13px; + font-family: OpenSans-SemiBold; + text-transform: uppercase; + text-align: center; + flex-basis: 40px; + flex-grow: 0; + flex-shrink: 0; + } + + .isParent { + width: 100%; + padding-left: 0 !important; + } + .model-info { + padding-left: 16px; + width: 100%; + .property-name { + font-family: OpenSans-Regular; + font-size: 12px; + line-height: 12px; + color: #191919; + //text-transform: capitalize; problematic with search + .auto-name{ + display: inline-flex;//required for search more then one sub highlight + } + } + + tree-node-header-properties { + display: none; + } + } + + .span-name { + margin-right: auto; + padding-left: 10px; + } + + .toggle-children-wrapper.toggle-children-wrapper-expanded { + .toggle-children:before { + color: #009FDB; + } + } + + .tree-node.tree-node-expanded .tree-children { + } + + .tree-node.tree-node-expanded.tree-node-focused .tree-children { + + } + + .tree-node.tree-node-expanded > tree-node-wrapper{ + box-shadow: 0 2px 2px 0 rgba(0,0,0,.1); + position: relative; + z-index: 1; + display: block; + } + + .tree-node-leaf .node-wrapper{ + margin-left: 46px; + border-left: none; + } + .tree-children .tree-node-leaf .node-wrapper{ + margin-left: 86px; + } +} + +@media (max-width: 992px) { + available-models-tree{ + //width: 40%; + max-width: 690px; + } + drawing-board-tree{ + //width: 60%; + } +} + +@media (min-width: 992px) { + available-models-tree{ + //width: 50%; + max-width: 650px; + } + drawing-board-tree{ + //width: 50%; + } +} + + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts new file mode 100644 index 000000000..31d7b03b8 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts @@ -0,0 +1,167 @@ +import {Component, EventEmitter, Output, ViewChild} from '@angular/core'; +import {ITreeOptions, TreeComponent} from 'angular-tree-component'; +import {IDType, ITreeNode} from 'angular-tree-component/dist/defs/api'; +import {DialogService} from 'ng2-bootstrap-modal'; +import {AvailableModelsTreeService} from './available-models-tree.service'; +import {NgRedux} from "@angular-redux/store"; +import {ActivatedRoute} from '@angular/router'; +import {AppState} from '../../../shared/store/reducers'; +import {AaiService} from '../../../shared/services/aaiService/aai.service'; +import {ServiceNodeTypes} from '../../../shared/models/ServiceNodeTypes'; +import {IframeService} from "../../../shared/utils/iframe.service"; +import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {VfModulePopuopService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {NetworkPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import {createVFModuleInstance} from "../../../shared/storeUtil/utils/vfModule/vfModule.actions"; +import {VnfPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {DrawingBoardModes} from "../drawing-board.modes"; +import {DrawingBoardTreeService} from "../drawing-board-tree/drawing-board-tree.service"; +import {ObjectToModelTreeService} from "../objectsToTree/objectToModelTree/objectToModelTree.service"; +import {VnfGroupPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import {SharedTreeService} from "../objectsToTree/shared.tree.service"; +import {changeInstanceCounter} from "../../../shared/storeUtil/utils/general/general.actions"; +import {createVnfGroupInstance} from "../../../shared/storeUtil/utils/vnfGroup/vnfGroup.actions"; +import {VnfGroupControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator"; +import {HighlightPipe} from "../../../shared/pipes/highlight/highlight-filter.pipe"; +import * as _ from 'lodash'; +import {DrawingBoardTreeComponent} from "../drawing-board-tree/drawing-board-tree.component"; + + +@Component({ + selector: 'available-models-tree', + templateUrl: './available-models-tree.component.html', + styleUrls: ['./available-models-tree.component.scss'], + providers : [HighlightPipe] +}) + +export class AvailableModelsTreeComponent { + filterValue : string = ''; + serviceModelId: string; + serviceHierarchy; + parentElementClassName = 'content'; + _store: NgRedux; + isNewObject: boolean; + availableModelsTreeService: AvailableModelsTreeService; + drawingBoardTreeService: DrawingBoardTreeService; + + constructor(private _iframeService: IframeService, + private _aaiService: AaiService, + private route: ActivatedRoute, + private dialogService: DialogService, + private _availableModelsTreeService: AvailableModelsTreeService, + private _drawingBoardTreeService: DrawingBoardTreeService, + private _defaultDataGeneratorService: DefaultDataGeneratorService, + private _vnfGroupControlGenerator: VnfGroupControlGenerator, + private _vfModulePopuopService: VfModulePopuopService, + private _vnfGroupPopupService: VnfGroupPopupService, + private _vnfPopupService: VnfPopupService, + private _networkPopupService: NetworkPopupService, + private store: NgRedux, + private _objectToModelTreeService : ObjectToModelTreeService, + private _sharedTreeService : SharedTreeService, + private _highlightPipe : HighlightPipe) { + this.availableModelsTreeService = _availableModelsTreeService; + this.drawingBoardTreeService = _drawingBoardTreeService; + + this._store = store; + this.route + .queryParams + .subscribe(params => { + this.serviceModelId = params['serviceModelId']; + this._aaiService.getServiceModelById(this.serviceModelId).subscribe( + value => { + this.serviceHierarchy = value; + this.nodes = this._objectToModelTreeService.convertServiceHierarchyModelToTreeNodes(this.serviceHierarchy); + }, + error => { + console.log('error is ', error) + } + ); + }); + + } + + @Output() + highlightInstances: EventEmitter = new EventEmitter(); + @ViewChild('tree') tree: TreeComponent; + + nodes = []; + service = {name: ''}; + + options: ITreeOptions = { + nodeHeight: 36, + dropSlotHeight: 0, + nodeClass: (node: ITreeNode) => { + if (node.data.type === ServiceNodeTypes.VFmodule && ! node.parent.data['getNodeCount'](node.parent, this.serviceModelId) && this.store.getState().global.drawingBoardStatus !== DrawingBoardModes.VIEW) { + node.data.disabled = true; + return 'tree-node tree-node-disabled'; + } + node.data.disabled = false; + return 'tree-node'; + } + }; + + + getNodeName(node : ITreeNode, filter : string) { + return this._highlightPipe.transform(node.data.name ,filter ? filter : ''); + } + + expandParentByNodeId(id: IDType): void { + this.tree.treeModel.getNodeById(id).parent.expand(); + } + + updateNodes(updateData : {nodes : any, filterValue : string}) : void { + this.nodes = updateData.nodes; + this.filterValue = updateData.filterValue; + } + + selectNode(node: ITreeNode): void { + node.expand(); + this._sharedTreeService.setSelectedVNF(null); + this.highlightInstances.emit(node.data.modelUniqueId); + } + + + + onClickAdd(node: ITreeNode, serviceId: string , isNewObject: boolean = false): void { + this.isNewObject = isNewObject; + let data = node.data; + let dynamicInputs = data.dynamicInputs; + let isAlaCarte: boolean = this.serviceHierarchy.service.instantiationType == "A-La-Carte"; + let isEcompGeneratedNaming: boolean = data.isEcompGeneratedNaming; + let type: string = data.type; + if (!this.store.getState().global.flags['FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD'] || node.data.type === ServiceNodeTypes.VF || + this._availableModelsTreeService.shouldOpenDialog(type, dynamicInputs, isEcompGeneratedNaming)) { + this._iframeService.addClassOpenModal(this.parentElementClassName); + node.data.onAddClick(node, serviceId); + } else { + if (node.data.type === ServiceNodeTypes.VnfGroup) { + let instanceName = this._vnfGroupControlGenerator.getDefaultInstanceName(null, serviceId, node.data.name); + let vnfGroup = this._defaultDataGeneratorService.generateVnfGroupInstance(this.serviceHierarchy.vnfGroups[node.data.name], isEcompGeneratedNaming, isAlaCarte, instanceName); + this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceId, 1 , {data: {type: 'VnfGroup'}})); + this._store.dispatch(createVnfGroupInstance(vnfGroup, node.data.name, serviceId, node.data.name)); + DrawingBoardTreeComponent.triggerreCalculateIsDirty.next(this.serviceModelId); + } else { + let vfModule = this._defaultDataGeneratorService.generateVFModule(this.serviceHierarchy.vnfs[node.parent.data.name].vfModules[node.data.name], dynamicInputs, isEcompGeneratedNaming, isAlaCarte); + if (this._sharedTreeService.selectedVNF) { + this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, null, this._sharedTreeService.selectedVNF)); + DrawingBoardTreeComponent.triggerreCalculateIsDirty.next(this.serviceModelId); + } else if (this._availableModelsTreeService.getOptionalVNFs(this.serviceModelId, node.parent.data.name).length === 1) { + let existVnf = this._store.getState().service.serviceInstance[this.serviceModelId].vnfs; + if(!_.isNil(existVnf)){ + for(let vnfKey in existVnf){ + if(existVnf[vnfKey]['modelInfo'].modelUniqueId === node.parent.data.id){ + this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, null, vnfKey)); + DrawingBoardTreeComponent.triggerreCalculateIsDirty.next(this.serviceModelId); + } + } + } + + + } else { + this._availableModelsTreeService.addingAlertAddingNewVfModuleModal(); + } + } + } + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts similarity index 83% rename from vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.spec.ts rename to vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts index 10cbb0d8f..cf9d04aae 100644 --- a/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.spec.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts @@ -3,85 +3,62 @@ import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; -import {AvailableModelsTreeService} from './available-models-tree.service'; -import {ServicePlanningService} from "../../services/service-planning.service"; -import {ServiceNodeTypes} from "../../shared/models/ServiceNodeTypes"; -import {NgRedux} from "@angular-redux/store"; -import {MockAppStore} from "../../services/service-planning.service.spec"; +import {AvailableModelsTreeService, AvailableNodeIcons} from './available-models-tree.service'; +import {ServiceNodeTypes} from "../../../shared/models/ServiceNodeTypes"; +import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service"; +import {MessageBoxData} from "../../../shared/components/messageBox/messageBox.data"; +import {SdcUiCommon} from "onap-ui-angular"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {SharedTreeService} from "../objectsToTree/shared.tree.service"; describe('Available Models Tree Service', () => { + let injector; let service: AvailableModelsTreeService; let httpMock: HttpTestingController; - beforeEach(() => { - + beforeAll(done => (async () => { TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], + imports: [HttpClientTestingModule, NgReduxTestingModule], providers: [AvailableModelsTreeService, - ServicePlanningService, - {provide: NgRedux, useClass: MockAppStore}] + DefaultDataGeneratorService, + SharedTreeService, + MockNgRedux] }); + await TestBed.compileComponents(); + injector = getTestBed(); + service = injector.get(AvailableModelsTreeService); + httpMock = injector.get(HttpTestingController); + })().then(done).catch(done.fail)); - injector = getTestBed(); - service = injector.get(AvailableModelsTreeService); - httpMock = injector.get(HttpTestingController); - }); - - describe('#shouldShowAddIcon', () => { - it('should return true if number of current vnf modules is under the max', (done: DoneFn) => { - let treeNode = { - data: { - children: [], - name: 'vf_vmee0..VfVmee..base_vmme..module-0' - } - }; - let serviceHierarchy = getSericeServiceHierarchy(); - let result = service.shouldShowAddIcon(treeNode, serviceHierarchy, '6e59c5de-f052-46fa-aa7e-2fca9d674c44', 0); - expect(result).toBeTruthy(); - done(); - }); - - it('should return false if number of current vnf modules are more than max', (done: DoneFn) => { - let treeNode = { - data: { - children: [], - name: 'vf_vmee0..VfVmee..base_vmme..module-0' - } - }; + test('addingAlertAddingNewVfModuleModal should open message modal', () => { + jest.spyOn(MessageBoxService.openModal, 'next'); + service.addingAlertAddingNewVfModuleModal(); - let serviceHierarchy = getSericeServiceHierarchy(); - let result = service.shouldShowAddIcon(treeNode, serviceHierarchy, '6e59c5de-f052-46fa-aa7e-2fca9d674c44', 2); - expect(result).toBeFalsy(); - done(); - }); + expect(MessageBoxService.openModal.next).toHaveBeenCalledWith(new MessageBoxData( + "Select a parent", // modal title + "There are multiple instances on the right side that can contain this vf-module Please select the VNF instance, to add this vf-module to, on the right side and then click the + sign", + SdcUiCommon.ModalType.warning, + SdcUiCommon.ModalSize.medium, + [ + {text: "Close", size: "medium", closeModal: true} + ])); + }); - it('should return true if number of current vnf modules are more than max and max is null', (done: DoneFn) => { - let treeNode = { - data: { - children: [], - name: 'vf_vmee0..VfVmee..base_vmme..module-0' - } - }; - let serviceHierarchy = getSericeServiceHierarchy(); - let result = service.shouldShowAddIcon(treeNode, serviceHierarchy, '6e59c5de-f052-46fa-aa7e-2fca9d674c44', 0); - expect(result).toBeTruthy(); - done(); - }); - }); describe('#shouldOpenModalDialogOnAddInstance', () => { - let serviceHierarchy = getSericeServiceHierarchy(); + let serviceHierarchy = getServiceServiceHierarchy(); - it('should open popup on add instance', (done: DoneFn) => { + test('should open popup on add instance', () => { // add vnf should return true - let result = service.shouldOpenDialog(ServiceNodeTypes.VF, [], false); + let result = service.shouldOpenDialog(ServiceNodeTypes.VF, [], true); expect(result).toBeTruthy(); // add vfModule with user provided naming should return true - result = service.shouldOpenDialog(ServiceNodeTypes.VFmodule, [], true); + result = service.shouldOpenDialog(ServiceNodeTypes.VFmodule, [], false); expect(result).toBeTruthy(); // add vfModule with dynamicInputs without defaultValues should return true @@ -91,7 +68,7 @@ describe('Available Models Tree Service', () => { name: '2017488_adiodvpe0_vnf_config_template_version', isRequired: true, description: 'VPE Software Version' - }], false); + }], true); expect(result).toBeTruthy(); // add vfModule with dynamicInputs with defaultValues should return false @@ -102,13 +79,12 @@ describe('Available Models Tree Service', () => { value: '17.2', isRequired: true, description: 'VPE Software Version' - }], false); + }], true); expect(result).toBeFalsy(); - done(); }); }); - function getSericeServiceHierarchy() { + function getServiceServiceHierarchy() { return JSON.parse(JSON.stringify( { '6e59c5de-f052-46fa-aa7e-2fca9d674c44': { @@ -118,7 +94,7 @@ describe('Available Models Tree Service', () => { 'name': 'ComplexService', 'version': '1.0', 'toscaModelURL': null, - 'category': 'Mobility', + 'category': 'Emanuel', 'serviceType': '', 'serviceRole': '', 'description': 'ComplexService', @@ -137,7 +113,9 @@ describe('Available Models Tree Service', () => { 'inputs': {}, 'commands': {}, 'properties': { - 'gpb2_Internal2_mac': '00:80:37:0E:02:22', + 'max_instances': '3', + 'min_instances': '1', + 'gpb2_Internal2_mac': '00:11:22:EF:AC:DF', 'sctp-b-ipv6-egress_src_start_port': '0', 'sctp-a-ipv6-egress_rule_application': 'any', 'Internal2_allow_transit': 'true', @@ -145,9 +123,9 @@ describe('Available Models Tree Service', () => { 'sctp-a-egress_rule_application': 'any', 'sctp-b-ingress_action': 'pass', 'sctp-b-ingress_rule_protocol': 'icmp', - 'ncb2_Internal1_mac': '00:80:37:0E:0F:12', + 'ncb2_Internal1_mac': '00:11:22:EF:AC:DF', 'sctp-b-ipv6-ingress-src_start_port': '0.0', - 'ncb1_Internal2_mac': '00:80:37:0E:09:12', + 'ncb1_Internal2_mac': '00:11:22:EF:AC:DF', 'fsb_volume_size_0': '320.0', 'sctp-b-egress_src_addresses': 'local', 'sctp-a-ipv6-ingress_ethertype': 'IPv4', @@ -166,12 +144,12 @@ describe('Available Models Tree Service', () => { 'sctp-a-ipv6-ingress_src_subnet_prefix': '0.0.0.0', 'sctp-b-egress-dst_start_port': '0.0', 'ncb_flavor_name': 'nv.c20r64d1', - 'gpb1_Internal1_mac': '00:80:37:0E:01:22', + 'gpb1_Internal1_mac': '00:11:22:EF:AC:DF', 'sctp-b-egress_dst_subnet_prefix_len': '0.0', - 'Internal2_net_cidr': '169.255.0.0', + 'Internal2_net_cidr': '10.0.0.10', 'sctp-a-ingress-dst_start_port': '0.0', 'sctp-a-egress-dst_start_port': '0.0', - 'fsb1_Internal2_mac': '00:80:37:0E:0B:12', + 'fsb1_Internal2_mac': '00:11:22:EF:AC:DF', 'sctp-a-egress_ethertype': 'IPv4', 'vlc_st_service_mode': 'in-network-nat', 'sctp-a-ipv6-egress_ethertype': 'IPv4', @@ -181,17 +159,17 @@ describe('Available Models Tree Service', () => { 'sctp-a-ingress-src_subnet_prefix_len': '0.0', 'sctp-b-ipv6-ingress-src_end_port': '65535.0', 'sctp-b-name': 'epc-sctp-b-ipv4v6-sec-group', - 'fsb2_Internal1_mac': '00:80:37:0E:0D:12', + 'fsb2_Internal1_mac': '00:11:22:EF:AC:DF', 'sctp-a-ipv6-ingress-src_start_port': '0.0', 'sctp-b-ipv6-egress_ethertype': 'IPv4', - 'Internal1_net_cidr': '169.253.0.0', + 'Internal1_net_cidr': '10.0.0.10', 'sctp-a-egress_dst_subnet_prefix': '0.0.0.0', 'fsb_flavor_name': 'nv.c20r64d1', 'sctp_rule_protocol': '132', 'sctp-b-ipv6-ingress_src_subnet_prefix_len': '0', 'sctp-a-ipv6-ingress_rule_application': 'any', 'sctp-a-IPv6_ethertype': 'IPv6', - 'vlc2_Internal1_mac': '00:80:37:0E:02:12', + 'vlc2_Internal1_mac': '00:11:22:EF:AC:DF', 'vlc_st_virtualization_type': 'virtual-machine', 'sctp-b-ingress-dst_start_port': '0.0', 'sctp-b-ingress-dst_end_port': '65535.0', @@ -209,7 +187,7 @@ describe('Available Models Tree Service', () => { 'Internal2_shared': 'false', 'sctp-a-ipv6-egress_dst_subnet_prefix_len': '0', 'Internal2_rpf': 'disable', - 'vlc1_Internal1_mac': '00:80:37:0E:01:12', + 'vlc1_Internal1_mac': '00:11:22:EF:AC:DF', 'sctp-b-ipv6-egress_src_end_port': '65535', 'sctp-a-ipv6-egress_src_addresses': 'local', 'sctp-a-ingress-dst_end_port': '65535.0', @@ -219,41 +197,41 @@ describe('Available Models Tree Service', () => { 'sctp-a-dst_subnet_prefix_v6': '::', 'pxe_image_name': 'MME_PXE-Boot_16ACP04_GA.qcow2', 'vlc_st_interface_type_gtp': 'other0', - 'ncb1_Internal1_mac': '00:80:37:0E:09:12', + 'ncb1_Internal1_mac': '00:11:22:EF:AC:DF', 'sctp-b-src_subnet_prefix_v6': '::', 'sctp-a-egress_dst_subnet_prefix_len': '0.0', 'int1_sec_group_name': 'int1-sec-group', 'Internal1_dhcp': 'false', 'sctp-a-ipv6-egress_dst_end_port': '65535', 'Internal2_forwarding_mode': 'l2', - 'fsb2_Internal2_mac': '00:80:37:0E:0D:12', + 'fsb2_Internal2_mac': '00:11:22:EF:AC:DF', 'sctp-b-egress_dst_subnet_prefix': '0.0.0.0', 'Internal1_net_cidr_len': '17', - 'gpb2_Internal1_mac': '00:80:37:0E:02:22', + 'gpb2_Internal1_mac': '00:11:22:EF:AC:DF', 'sctp-b-ingress-src_subnet_prefix_len': '0.0', 'sctp-a-ingress_dst_addresses': 'local', 'sctp-a-egress_action': 'pass', 'fsb_volume_type_0': 'SF-Default-SSD', - 'ncb2_Internal2_mac': '00:80:37:0E:0F:12', + 'ncb2_Internal2_mac': '00:11:22:EF:AC:DF', 'vlc_st_interface_type_sctp_a': 'left', 'vlc_st_interface_type_sctp_b': 'right', 'sctp-a-src_subnet_prefix_v6': '::', 'vlc_st_version': '2', 'sctp-b-egress_ethertype': 'IPv4', 'sctp-a-ingress_rule_application': 'any', - 'gpb1_Internal2_mac': '00:80:37:0E:01:22', + 'gpb1_Internal2_mac': '00:11:22:EF:AC:DF', 'instance_ip_family_v6': 'v6', 'sctp-a-ipv6-egress_src_start_port': '0', 'sctp-b-ingress-src_start_port': '0.0', 'sctp-b-ingress_dst_addresses': 'local', - 'fsb1_Internal1_mac': '00:80:37:0E:0B:12', + 'fsb1_Internal1_mac': '00:11:22:EF:AC:DF', 'vlc_st_interface_type_oam': 'management', 'multi_stage_design': 'false', 'oam_sec_group_name': 'oam-sec-group', - 'Internal2_net_gateway': '169.255.0.3', + 'Internal2_net_gateway': '10.0.0.10', 'sctp-a-ipv6-ingress-dst_end_port': '65535', 'sctp-b-ipv6-egress-dst_start_port': '0', - 'Internal1_net_gateway': '169.253.0.3', + 'Internal1_net_gateway': '10.0.0.10', 'sctp-b-ipv6-egress_rule_protocol': 'any', 'gtp_sec_group_name': 'gtp-sec-group', 'sctp-a-ipv6-egress_dst_subnet_prefix': '0.0.0.0', @@ -275,7 +253,7 @@ describe('Available Models Tree Service', () => { 'vlc_st_service_type': 'firewall', 'sctp-b-ipv6-egress_dst_end_port': '65535', 'sctp-b-ipv6-ingress-dst_start_port': '0', - 'vlc2_Internal2_mac': '00:80:37:0E:02:12', + 'vlc2_Internal2_mac': '00:11:22:EF:AC:DF', 'vlc_st_availability_zone': 'true', 'fsb_volume_image_name_1': 'MME_FSB2_16ACP04_GA.qcow2', 'sctp-b-ingress-src_subnet_prefix': '0.0.0.0', @@ -287,7 +265,7 @@ describe('Available Models Tree Service', () => { 'sctp-b-ipv6-ingress_dst_addresses': 'local', 'sctp-b-ipv6-egress_dst_subnet_prefix': '0.0.0.0', 'sctp-b-ipv6-ingress_ethertype': 'IPv4', - 'vlc1_Internal2_mac': '00:80:37:0E:01:12', + 'vlc1_Internal2_mac': '00:11:22:EF:AC:DF', 'sctp-a-ingress-src_subnet_prefix': '0.0.0.0', 'sctp-a-ipv6-ingress_action': 'pass', 'Internal1_rpf': 'disable', @@ -446,5 +424,4 @@ describe('Available Models Tree Service', () => { } )); } - }); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts new file mode 100644 index 000000000..dc72f8f12 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts @@ -0,0 +1,76 @@ +import {Injectable} from '@angular/core'; +import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {MessageBoxData} from "../../../shared/components/messageBox/messageBox.data"; +import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service"; +import * as _ from "lodash"; +import { SdcUiCommon} from "onap-ui-angular"; +import {SharedTreeService} from "../objectsToTree/shared.tree.service"; + +export class AvailableNodeIcons { + addIcon: boolean; + vIcon: boolean; + + constructor(addIcon: boolean, vIcon: boolean) { + this.addIcon = addIcon; + this.vIcon = vIcon; + } +} + +@Injectable() +export class AvailableModelsTreeService { + constructor(private _defaultDataGeneratorService: DefaultDataGeneratorService, + private store: NgRedux, + public _shareTreeService : SharedTreeService) { + } + + + + shouldOpenDialog(type: string, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean { + if (!isEcompGeneratedNaming || this._defaultDataGeneratorService.requiredFields[type].length > 0) { + return true; + } + + if (dynamicInputs) { + for(let input of dynamicInputs) { + if (input.isRequired && _.isEmpty(input.value)) { + return true; + } + } + } + return false; + } + + getOptionalVNFs(serviceUUID: string, vnfOriginalModelName : string) : any[] { + let result = []; + if(!_.isNil(this.store.getState().service.serviceInstance) && !_.isNil(this.store.getState().service.serviceInstance[serviceUUID])){ + const serviceVNFsInstances = this.store.getState().service.serviceInstance[serviceUUID].vnfs; + for(let vnfKey in serviceVNFsInstances){ + if(serviceVNFsInstances[vnfKey].originalName === vnfOriginalModelName){ + serviceVNFsInstances[vnfKey].vnfStoreKey = vnfKey; + result.push(serviceVNFsInstances[vnfKey]); + } + } + } + + + return result; + } + + + + addingAlertAddingNewVfModuleModal() : void { + let messageBoxData : MessageBoxData = new MessageBoxData( + "Select a parent", // modal title + "There are multiple instances on the right side that can contain this vf-module Please select the VNF instance, to add this vf-module to, on the right side and then click the + sign", + SdcUiCommon.ModalType.warning, + SdcUiCommon.ModalSize.medium, + [ + {text:"Close", size:"medium", closeModal:true} + ]); + + MessageBoxService.openModal.next(messageBoxData); + } + +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts new file mode 100644 index 000000000..4c5bf6747 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts @@ -0,0 +1,26 @@ +import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component"; + +export class ComponentInfoModel { + type: ComponentInfoType; + modelInfoItems: ModelInformationItem[]; + additionalInfoItems: ModelInformationItem[]; + title: string; + + + constructor(type: ComponentInfoType, modelInfoItems: ModelInformationItem[], additionalInfoItems: ModelInformationItem[], isInstance:boolean=true) { + this.type = type; + this.modelInfoItems = modelInfoItems; + this.additionalInfoItems = additionalInfoItems; + this.title=this.type+(isInstance ? " Instance" : ""); + } +} + + +export enum ComponentInfoType { + SERVICE = "Service", + VNF = "VNF", + NETWORK = "Network", + VFMODULE = "VFModule", + VNFGROUP = "Group", + VNFMEMBER = "VNF" +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.html new file mode 100644 index 000000000..8f08de076 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.html @@ -0,0 +1,20 @@ +
+
+
+
{{componentInfoModel?.title}} INFO
+
+ +
+
+
+ + + + + + + + +
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss new file mode 100644 index 000000000..2d7735678 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss @@ -0,0 +1,40 @@ +.component-info-wrapper { + + &:first-child { + border-bottom: 1px solid #D2D2D2; + } + .component-info-section { + margin: 15px 25px 0 25px; + + .title { + font-family: OpenSans-SemiBold; + font-size: 14px; + color: #191919; + text-transform: uppercase; + margin-bottom: 15px; + } + } + +} + +:host ::ng-deep .componentInfoItem { + border-top: 1px solid #D2D2D2; + padding-top: 10px; + margin-bottom: 10px; + + label { + font-family: OpenSans-Regular; + font-size: 12px; + color: #5A5A5A; + text-transform: capitalize; + } + + .model-item-value { + font-family: OpenSans-SemiBold; + font-size: 14px; + color: #191919; + line-height: 16px; + } +} + + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts new file mode 100644 index 000000000..c69ab52e1 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts @@ -0,0 +1,40 @@ +import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core'; +import {ComponentInfoService} from "./component-info.service"; +import {ComponentInfoModel, ComponentInfoType} from "./component-info-model"; +import {ActivatedRoute} from "@angular/router"; + + +@Component({ + selector: 'component-info', + templateUrl: './component-info.component.html', + styleUrls: ['./component-info.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ComponentInfoComponent implements OnInit { + componentInfoModel: ComponentInfoModel = null; + + constructor(private _componentInfoService:ComponentInfoService, private route: ActivatedRoute) {} + + ngOnInit() { + ComponentInfoService.triggerComponentInfoChange.subscribe((input : ComponentInfoModel) => { + if(input.type === ComponentInfoType.SERVICE){ + this.getServiceInformation(); + }else { + this.componentInfoModel = input; + } + }); + + this.getServiceInformation(); + } + + + + getServiceInformation() : void { + this.route + .queryParams + .subscribe(params => { + let serviceModelId = params['serviceModelId']; + this.componentInfoModel = this._componentInfoService.getInfoForService(serviceModelId); + }); + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts new file mode 100644 index 000000000..8b0da409b --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts @@ -0,0 +1,93 @@ +import {ComponentInfoService} from './component-info.service'; +import {getTestBed, TestBed} from '@angular/core/testing'; +import {MockNgRedux, NgReduxTestingModule} from '@angular-redux/store/testing'; +import {NgRedux} from '@angular-redux/store'; +import {AaiService} from '../../../shared/services/aaiService/aai.service'; +import {HttpClient, HttpHandler} from '@angular/common/http'; +import {FeatureFlagsService} from '../../../shared/services/featureFlag/feature-flags.service'; +import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component"; +import {ComponentInfoModel, ComponentInfoType} from "./component-info-model"; + +class MockAppStore { + getState() { + return { + global: { + }, + service : { + serviceHierarchy : { + '1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd' : { + service:{ + serviceRole: 'Testing', + serviceType: 'pnf', + uuid: '1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd', + version: '1.0', + customizationUuid: '' + } + } + }, + serviceInstance : { + '1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd' : { + globalSubscriberId: 'e433710f-9217-458d-a79d-1c7aff376d89', + subscriptionServiceType:'TYLER SILVIA', + instanceId: '2f7130e8-27d6-4c01-8988-60ca67e8dae4' + } + }, + subscribers: [ + { + 'id': 'CAR_2020_ER', + 'name': 'CAR_2020_ER', + 'isPermitted': true + }, + { + 'id': 'e433710f-9217-458d-a79d-1c7aff376d89', + 'name': 'SILVIA ROBBINS', + 'isPermitted': true + } + ] + } + } + } +} + +beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [NgReduxTestingModule], + providers: [ + AaiService, + HttpClient, + HttpHandler, + FeatureFlagsService, + ComponentInfoService, + {provide: NgRedux, useClass: MockAppStore}, + MockNgRedux] + }); + await TestBed.compileComponents(); + let injector = getTestBed(); + service = injector.get(ComponentInfoService); + })().then(done).catch(done.fail)); + +let service: ComponentInfoService; +describe('Service Info Data', () => { + + test('ComponentInfoService should be defined', () => { + expect(service).toBeDefined(); + }); + + test('Info for service should be correct', () => { + let actualServiceInfo = service.getInfoForService('1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + let expectedServiceInfo = [ + ModelInformationItem.createInstance('Type', 'pnf'), + ModelInformationItem.createInstance('Model Version', '1.0'), + ModelInformationItem.createInstance('Model Customization ID', ''), + ModelInformationItem.createInstance('Instance ID', '2f7130e8-27d6-4c01-8988-60ca67e8dae4'), + ModelInformationItem.createInstance('Subscriber Name', 'SILVIA ROBBINS'), + ModelInformationItem.createInstance('Service Type', 'TYLER SILVIA'), + ModelInformationItem.createInstance('Service Role', 'Testing'), + ]; + expect(actualServiceInfo).toEqual(new ComponentInfoModel(ComponentInfoType.SERVICE, expectedServiceInfo, [])); + + + }); + +}); + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts new file mode 100644 index 000000000..9318b3aa7 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts @@ -0,0 +1,41 @@ +import {Injectable} from "@angular/core"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {AaiService} from "../../../shared/services/aaiService/aai.service"; +import {Subject} from "rxjs"; +import {ComponentInfoModel, ComponentInfoType} from "./component-info-model"; +import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component"; +import * as _ from 'lodash'; +@Injectable() +export class ComponentInfoService { + static triggerComponentInfoChange: Subject = new Subject(); + constructor( private _store: NgRedux, private _aaiService : AaiService){ } + + getInfoForService(serviceModelId):ComponentInfoModel { + if(_.isNil(this._store.getState().service.serviceHierarchy[serviceModelId])) return null; + + let serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId].service; + const serviceInstance = this._store.getState().service.serviceInstance[serviceModelId]; + const modelInfoItems: ModelInformationItem[] = [ + ModelInformationItem.createInstance("Subscriber Name",this._aaiService.extractSubscriberNameBySubscriberId(serviceInstance.globalSubscriberId)), + ModelInformationItem.createInstance("Service Type",serviceInstance.subscriptionServiceType), + ModelInformationItem.createInstance("Service Role",serviceHierarchy.serviceRole), + ]; + serviceHierarchy.type = serviceHierarchy.serviceType; + return this.addGeneralInfoItems(modelInfoItems, ComponentInfoType.SERVICE, serviceHierarchy, serviceInstance ); + } + + + addGeneralInfoItems(modelInfoSpecificItems: ModelInformationItem[], type: ComponentInfoType, model, instance) { + let modelInfoItems: ModelInformationItem[] = [ + ModelInformationItem.createInstance("Type", (model && model.type) ? model.type : ((instance && instance.modelInfo) ? instance.modelInfo.modelType : null)), + ModelInformationItem.createInstance("Model Version", model ? model.version : null), + ModelInformationItem.createInstance("Model Customization ID", model ? model.customizationUuid : null), + ModelInformationItem.createInstance("Instance ID", instance ? instance.instanceId : null), + ModelInformationItem.createInstance("In Maintenance", instance? instance.inMaint : null), + ]; + modelInfoItems = modelInfoItems.concat(modelInfoSpecificItems); + const modelInfoItemsWithoutEmpty = _.filter(modelInfoItems, function(item){ return !item.values.every(_.isNil)}); + return new ComponentInfoModel(type, modelInfoItemsWithoutEmpty, []); + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html new file mode 100644 index 000000000..f02ed6293 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html @@ -0,0 +1,78 @@ +
+
+ + + + + + +
+ + Failed + +
+
+ Service instance: + {{serviceName}} +
+
+ Orch Status: + {{serviceOrchStatus}} +
+
+ Scale Times: + {{numServicesToDeploy}} +
+ + + {{getModeName()}} +
+ + +
+ + + + +
+ Edit
+
+ +
{{isDeleted ? 'Undo delete': 'Delete'}}
+
+ +
+ +
+
Show Audit Info
+
+
+
+ + + + +
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss new file mode 100644 index 000000000..1242f9429 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss @@ -0,0 +1,176 @@ +.drawing-board-header { + height: 60px; + font-family: OpenSans-Regular; + display: flex; + justify-content: space-between; + font-size: 14px; + box-shadow: 2px 2px 6px #D2D2D2; + color: #191919; + z-index: 1; + position: relative; + [class^="icon-"] { + height: 60px; + width: 60px; + display: flex; + align-items: center; + text-align: center; + color: #5A5A5A; + cursor: pointer; + &:before { + font-size: 18px; + width: 100%; + } + &:hover:before { + color: #009FDB; + } + } + .left-header { + display: flex; + align-items: center; + .icon-back { + justify-content: center; + border-right: 1px solid #EAEAEA; + } + .vid-logo-small{ + background: url('../../../../assets/img/vid-logo.jpg') no-repeat; + width: 60px; + height: 60px; + } + .status{ + background: url('../../../../assets/img/indesign.svg') no-repeat center; + width: 24px; + height: 24px; + margin-left: 20px; + } + .header-col { + border-right: 1px solid #d2d2d2; + padding-right: 15px; + margin-left: 15px; + span{ + display: block; + } + &:after{ + content: ""; + background: #D2D2D2; + height: 35px; + width: 1px; + } + } + .service-instance-label { + font-family: OpenSans-Semibold; + font-size: 13px; + color: #5A5A5A; + } + .quantity-instance-label { + font-family: OpenSans-Regular; + font-size: 13px; + color: #5A5A5A; + } + + .labelPosition { + margin-top: 4px; + margin-bottom: 6px; + font-size: 12px; + } + .service-instance-name { + font-family: OpenSans-Semibold; + color: #191919; + background-color: white; + font-size: 14px; + &.deleted{ + text-decoration: line-through; + } + } + .orch-status-value { + font-family: OpenSans-Regular; + font-size: 14px; + color: #191919; + } + .scale-value { + font-family: OpenSans-Regular; + font-size: 14px; + color: #191919; + } + .status { + font-family: OpenSans-Semibold; + line-height: 14px; + font-size: 14px; + text-align: center; + width: 30px; + margin-left: 13px; + margin-right: 3px; + } + + .purple { + color: #9063CD; + } + + .middleDetails { + border-right: 1px solid #EAEAEA; + margin-left: 0; + height: 45px; + } + } + .right-header { + display: flex; + align-items: center; + .quantity-container { + .quantity-label { + padding-left: 10px; + font-family: OpenSans-Semibold; + font-size: 12px; + } + .quantity { + padding: 5px 10px 5px 0; + font-family: OpenSans-Semibold; + font-size: 18px; + } + } + .scale-container { + .scale-label { + padding-left: 10px; + font-family: OpenSans-Semibold; + font-size: 12px; + } + .scale { + padding: 5px 10px 5px 0; + font-family: OpenSans-Semibold; + font-size: 18px; + } + } + [class^="icon-"] { + border-left: 1px solid #EAEAEA; + } + .menu-container { + height: 100%; + display: flex; + background: none; + border: none; + padding: 0; + outline: none; + justify-content: center; + flex-direction: column; + text-align: center; + cursor: pointer; + } + .icon-browse:before { + content: '\e924'; + display: inline-block; + font-size: 24px; + } + .deploy-btn { + color: #FFFFFF ; + background: #009fdb; + width: 128px; + height: 100%; + border: none; + &[disabled] { + cursor: not-allowed; + opacity: .65; + color: #99d6ec; + } + } + } + } + + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts new file mode 100644 index 000000000..6e4391572 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts @@ -0,0 +1,187 @@ +import {Component, ViewChild} from '@angular/core'; +import {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu'; +import {DialogService} from 'ng2-bootstrap-modal'; +import {MsoService} from '../../../shared/services/msoService/mso.service' +import * as _ from 'lodash'; +import {ActivatedRoute} from '@angular/router'; +import {ServiceInstance} from "../../../shared/models/serviceInstance"; +import {OwningEntity} from "../../../shared/models/owningEntity"; +import {MessageBoxData} from "../../../shared/components/messageBox/messageBox.data"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {IframeService} from "../../../shared/utils/iframe.service"; +import { + GenericFormPopupComponent, + PopupType +} from "../../../shared/components/genericFormPopup/generic-form-popup.component"; +import {ServicePopupService} from "../../../shared/components/genericFormPopup/genericFormServices/service/service.popup.service"; +import {SdcUiCommon} from "onap-ui-angular"; +import {DrawingBoardModes} from "../drawing-board.modes"; +import {DrawingBoardHeaderService} from "./drawing-board-header.service"; +import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions"; +import {DrawingBoardPermissions} from "../../guards/servicePlanningGuard/drawingBoardGuard"; +import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service"; + +@Component({ + selector: 'drawing-board-header', + providers: [MsoService], + templateUrl: './drawing-board-header.component.html', + styleUrls: ['./drawing-board-header.component.scss'] +}) + +export class DrawingBoardHeader { + serviceName: string; + numServicesToDeploy: number; + status: string = 'Designing a new service'; + serviceModelId: string; + jobId: string; + parentElementClassName = 'content'; + mode : DrawingBoardModes = DrawingBoardModes.CREATE; + serviceOrchStatus: string; + isDeleted: boolean = false; + store : NgRedux; + drawingBoardPermissions : DrawingBoardPermissions; + drawingBoardHeaderService : DrawingBoardHeaderService; + isServiceFailed: boolean; + serviceStatusMessage: string; + constructor(private _contextMenuService: ContextMenuService, private dialogService: DialogService, + private _iframeService : IframeService, + private route: ActivatedRoute, private msoService: MsoService, + private _servicePopupService : ServicePopupService, + private _drawingBoardHeaderService : DrawingBoardHeaderService, + private _store: NgRedux, + private _drawingBoardPermissions : DrawingBoardPermissions) { + this.store = _store; + this.drawingBoardPermissions = _drawingBoardPermissions; + this.drawingBoardHeaderService = _drawingBoardHeaderService; + this.mode = (!_.isNil(this.route.routeConfig.path) && this.route.routeConfig.path !== "") ? this.route.routeConfig.path as DrawingBoardModes : DrawingBoardModes.CREATE; + this.route + .queryParams + .subscribe((params) => { + this.serviceModelId = params['serviceModelId']; + this.jobId = params['jobId']; + if (_.has(this.store.getState().service.serviceHierarchy, this.serviceModelId)) { + this.setValuesFromStore(); + this.store.subscribe(() => { + this.setValuesFromStore(); + }); + } + }); + } + + + @ViewChild(ContextMenuComponent) public contextMenu: ContextMenuComponent; + + editViewEdit(): void { + window.parent.location.assign(this._drawingBoardHeaderService.generateOldViewEditPath()); + } + + isPermitted() : boolean { + return this.drawingBoardPermissions.isEditPermitted; +} + + getModeName():string { + switch (this.mode) { + case DrawingBoardModes.CREATE: + return 'IN DESIGN'; + case DrawingBoardModes.VIEW: + case DrawingBoardModes.RETRY: + return 'VIEW ONLY'; + case DrawingBoardModes.EDIT: + case DrawingBoardModes.RETRY_EDIT: + return 'IN EDITING'; + default: + return 'IN DESIGN'; + } + + } + public onContextMenu($event: MouseEvent, item: any): void { + this._contextMenuService.show.next({ + contextMenu: this.contextMenu, + event: $event, + item: item, + }); + $event.preventDefault(); + $event.stopPropagation(); + } + + private setValuesFromStore() { + if(!_.isNil(this.store.getState().service.serviceInstance) && !_.isNil(this.store.getState().service.serviceInstance[this.serviceModelId])){ + const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId]; + this.numServicesToDeploy = serviceInstance.bulkSize; + this.serviceName = serviceInstance.instanceName || ''; + this.serviceOrchStatus = serviceInstance.orchStatus || ""; + this.isServiceFailed = serviceInstance.isFailed; + this.serviceStatusMessage = serviceInstance.statusMessage; + } + } + + public editService(): void { + this._iframeService.addClassOpenModal(this.parentElementClassName); + this.dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.SERVICE, + uuidData: { + type : PopupType.SERVICE, + isMacro : this.store.getState().service.serviceHierarchy[this.serviceModelId].service.instantiationType === 'Macro', + serviceId: this.serviceModelId, + popupService: this._servicePopupService + }, + isUpdateMode: true + }); + } + + extractOwningEntityNameAccordingtoId(id:String): string { + let owningEntityName; + _.forEach(this.store.getState().service.categoryParameters.owningEntityList,(owningEntity: OwningEntity) => { + if (owningEntity.id === id) { + owningEntityName = owningEntity.name; + + }}); + return owningEntityName; + } + + extractServiceFields(): any { + let instanceFields : ServiceInstance; + instanceFields = this.store.getState().service.serviceInstance[this.serviceModelId]; + if (instanceFields.action === ServiceInstanceActions.Create) { + instanceFields.subscriberName = this.store.getState().service.subscribers.find(sub => sub.id === instanceFields.globalSubscriberId).name; + instanceFields.owningEntityName = this.extractOwningEntityNameAccordingtoId(instanceFields.owningEntityId); + } + return _.omit(instanceFields,'optionalGroupMembersMap'); + } + + + public deployService(): void { + let instanceFields = this.extractServiceFields(); + if (this.mode !== DrawingBoardModes.RETRY_EDIT) { + instanceFields.rollbackOnFailure = instanceFields.rollbackOnFailure === 'true'; + this.msoService.submitMsoTask(instanceFields).subscribe((result) => { + window.parent.postMessage("navigateToInstantiationStatus", '*'); + }); + } else { + this.msoService.retryBulkMsoTask(this.jobId, instanceFields).subscribe((result) => { + window.parent.postMessage("navigateToInstantiationStatus", '*'); + }); + } + } + + closePage() { + let messageBoxData : MessageBoxData = new MessageBoxData( + "Delete Instantiation", // modal title + "You are about to stop the instantiation process of this service. \nAll data will be lost. Are you sure you want to stop?", + SdcUiCommon.ModalType.warning, + SdcUiCommon.ModalSize.medium, + [ + {text:"Stop Instantiation", size:"large", callback: this.navigate.bind(this), closeModal:true}, + {text:"Cancel", size:"medium", closeModal:true} + ]); + + MessageBoxService.openModal.next(messageBoxData); + } + + + + navigate(){ + window.parent.postMessage("navigateTo", "*"); + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts new file mode 100644 index 000000000..bcf6753b9 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts @@ -0,0 +1,184 @@ +import {getTestBed, TestBed} from '@angular/core/testing'; +import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing'; +import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {DrawingBoardHeaderService} from "./drawing-board-header.service"; +import {ActivatedRoute} from '@angular/router'; +import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions"; +import {AppState} from "../../../shared/store/reducers"; +import {NgRedux} from "@angular-redux/store"; +import {addServiceAction} from "../../../shared/storeUtil/utils/service/service.actions"; +import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service"; +import {DrawingBoardModes} from "../drawing-board.modes"; +import each from "jest-each"; + +class MockAppStore{ + getState() { + return { + service : { + serviceInstance : { + "serviceInstanceId" : { + action: 'None' + } + } + } + } + } +} + +describe('Generate path to old View/Edit ', () => { + let injector; + let service: DrawingBoardHeaderService; + let httpMock: HttpTestingController; + let store : NgRedux; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + DrawingBoardHeaderService, + DefaultDataGeneratorService, + MockNgRedux, + ErrorMsgService, + { + provide: ActivatedRoute, + useValue: { + snapshot : { + queryParams:{ + 'subscriberId' : 'subscriberId', + 'subscriberName' : 'subscriberName', + 'serviceType' : 'serviceType', + 'serviceInstanceId' : 'serviceInstanceId' + } + } + }, + }] + }); + await TestBed.compileComponents(); + + injector = getTestBed(); + service = injector.get(DrawingBoardHeaderService); + httpMock = injector.get(HttpTestingController); + store = injector.get(NgRedux); + + })().then(done).catch(done.fail)); + + + test('should generate url to old view/edit ', () => { + const query: string = 'subscriberId=subscriberId&subscriberName=subscriberName&serviceType=serviceType&serviceInstanceId=serviceInstanceId'; + const path = '../../serviceModels.htm#/instantiate?' + query; + let result = service.generateOldViewEditPath(); + expect(result).toEqual(path); + }); + + test('should call update action for Delete',()=>{ + + jest.spyOn(store, 'dispatch'); + service.deleteService("serviceInstanceId", true); + expect(store.dispatch).toHaveBeenCalledWith(addServiceAction("serviceInstanceId", ServiceInstanceActions.Delete)); + }); + + test('should call update action for undo delete',()=>{ + jest.spyOn(store, 'dispatch'); + service.deleteService("serviceInstanceId", false); + expect(store.dispatch).toHaveBeenCalledWith(addServiceAction("serviceInstanceId", ServiceInstanceActions.None)); + }); + + test('deployShouldBeDisabled with validationCounter greater then 0',()=>{ + jest.spyOn(store, 'getState').mockReturnValue({ + service: { + serviceInstance : { + 'serviceInstanceId' : { + validationCounter : 1 + } + } + } + }); + let result = service.deployShouldBeDisabled("serviceInstanceId"); + expect(result).toBeTruthy(); + }); + + test('deployShouldBeDisabled with validationCounter is 0 and not dirty',()=>{ + jest.spyOn(store, 'getState').mockReturnValue({ + service: { + serviceInstance : { + 'serviceInstanceId' : { + validationCounter : 0, + isDirty : false + } + } + } + }); + let result = service.deployShouldBeDisabled("serviceInstanceId"); + expect(result).toBeFalsy(); + }); + + test('deployShouldBeDisabled with validationCounter is 0 and dirty',()=>{ + jest.spyOn(store, 'getState').mockReturnValue({ + service: { + serviceInstance : { + 'serviceInstanceId' : { + validationCounter : 0, + action : 'None', + isDirty : true + } + } + } + }); + let result = service.deployShouldBeDisabled("serviceInstanceId"); + expect(result).not.toBeTruthy(); + }); + + test('deployShouldBeDisabled with validationCounter is 0 and not and action is None and dirty',()=>{ + jest.spyOn(store, 'getState').mockReturnValue({ + service: { + serviceInstance : { + 'serviceInstanceId' : { + validationCounter : 0, + action : ServiceInstanceActions.None, + isDirty : true + } + } + } + }); + let result = service.deployShouldBeDisabled("serviceInstanceId"); + expect(result).not.toBeTruthy(); + }); + + + test('getModeButton',()=>{ + let result : string = service.getModeButton("EDIT"); + expect(result).toEqual('UPDATE'); + + result = service.getModeButton(""); + expect(result).toEqual('DEPLOY'); + + result = service.getModeButton("RETRY_EDIT"); + expect(result).toEqual('REDEPLOY'); + }); + test('getButtonText',()=>{ + expect(service.getButtonText("VIEW")).toEqual('EDIT'); + expect(service.getButtonText("RETRY")).toEqual('REDEPLOY'); + + }); + const showEditServiceDataProvider = [ + ['Create action CREATE mode', DrawingBoardModes.CREATE ,ServiceInstanceActions.Create, true], + ['Create action RETRY_EDIT mode',DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.Create, true], + ['Create action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.Create, true], + ['Create action RETRY mode',DrawingBoardModes.RETRY, ServiceInstanceActions.Create, false], + ['None action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.None, false], + ['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]]; + each(showEditServiceDataProvider).test('showEditService service with %s', (description, mode, action, enabled) => { + jest.spyOn(store, 'getState').mockReturnValue({ + service: { + serviceInstance : { + 'serviceInstanceId' : { + action : action + } + } + } + }); + expect(service.showEditService(mode, 'serviceInstanceId')).toBe(enabled); + + }); +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts new file mode 100644 index 000000000..946c5cab5 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts @@ -0,0 +1,86 @@ +import {Injectable} from "@angular/core"; +import {ActivatedRoute} from "@angular/router"; +import {addServiceAction} from "../../../shared/storeUtil/utils/service/service.actions"; +import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions"; +import {AppState} from "../../../shared/store/reducers"; +import {DrawingBoardTreeComponent} from "../drawing-board-tree/drawing-board-tree.component"; +import {AuditInfoModalComponent} from "../../../shared/components/auditInfoModal/auditInfoModal.component"; +import {ServiceModel} from "../../../shared/models/serviceModel"; +import {NgRedux} from "@angular-redux/store"; +import * as _ from 'lodash'; +import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service"; +import {DrawingBoardModes} from "../drawing-board.modes"; +import {ServiceInstance} from "../../../shared/models/serviceInstance"; + +@Injectable() +export class DrawingBoardHeaderService{ + + constructor(private route: ActivatedRoute, private store: NgRedux, private errorMsgService: ErrorMsgService){} + generateOldViewEditPath(): string{ + let query: string = + `subscriberId=${this.route.snapshot.queryParams['subscriberId']}&` + + `subscriberName=${this.route.snapshot.queryParams['subscriberName']}&` + + `serviceType=${this.route.snapshot.queryParams['serviceType']}&` + + `serviceInstanceId=${this.route.snapshot.queryParams['serviceInstanceId']}`; + return '../../serviceModels.htm#/instantiate?' + query; + } + + deleteService(serviceModelId: string, isDeleted: boolean ) { + if(isDeleted){ + this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.Delete)); + DrawingBoardTreeComponent.triggerDeleteActionService.next(serviceModelId); + } else{ + this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.None)); + DrawingBoardTreeComponent.triggerUndoDeleteActionService.next(serviceModelId); + } + } + + showAuditInfo(serviceModelId) : void { + let instance: ServiceInstance = this.store.getState().service.serviceInstance[serviceModelId]; + let model = new ServiceModel(this.store.getState().service.serviceHierarchy[serviceModelId]); + AuditInfoModalComponent.openInstanceAuditInfoModal.next({instanceId : serviceModelId , type : 'SERVICE', model : model , instance : instance, trackById: instance.trackById}); + } + + + /************************************************* + should return true if deploy should be disabled + *************************************************/ + deployShouldBeDisabled(serviceInstanceId: string, mode : string) : boolean { + const serviceInstance = this.store.getState().service.serviceInstance[serviceInstanceId]; + if(!_.isNil(serviceInstance)){ + const validationCounter = serviceInstance.validationCounter; + if (!_.isNil(this.errorMsgService.errorMsgObject)&& mode !== DrawingBoardModes.RETRY_EDIT) return true; + if(validationCounter > 0) return true; + if(serviceInstance.action !== ServiceInstanceActions.None) return false; + if(mode === DrawingBoardModes.RETRY_EDIT) return false; + return !serviceInstance.isDirty; + } + return true; + } + + getModeButton(mode : string) : string { + switch (mode) { + case DrawingBoardModes.EDIT: + return 'UPDATE'; + case DrawingBoardModes.RETRY_EDIT: + return 'REDEPLOY'; + default: return 'DEPLOY'; + } + } + getButtonText(mode : DrawingBoardModes) : string { + switch (mode) { + case DrawingBoardModes.EDIT: + case DrawingBoardModes.VIEW: + return 'EDIT'; + case DrawingBoardModes.RETRY_EDIT: + case DrawingBoardModes.RETRY: + return 'REDEPLOY'; + } + } + + showEditService(mode: DrawingBoardModes, serviceModelId: string): boolean{ + const serviceInstance = this.store.getState().service.serviceInstance; + return mode === DrawingBoardModes.CREATE || ((mode === DrawingBoardModes.RETRY_EDIT || mode === DrawingBoardModes.EDIT)&& + !_.isNil(serviceInstance) && !_.isNil(serviceInstance[serviceModelId])&& serviceInstance[serviceModelId].action === ServiceInstanceActions.Create); + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/tmp_instansiate_request.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/tmp_instansiate_request.ts similarity index 97% rename from vid-webpack-master/src/app/drawingBoard/drawing-board-header/tmp_instansiate_request.ts rename to vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/tmp_instansiate_request.ts index 7accc3a9c..d57e0202f 100644 --- a/vid-webpack-master/src/app/drawingBoard/drawing-board-header/tmp_instansiate_request.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/tmp_instansiate_request.ts @@ -8,7 +8,7 @@ export default "modelVersion": "10.0" }, "owningEntityId": "038d99af-0427-42c2-9d15-971b99b9b489", - "owningEntityName": "PACKET CORE", + "owningEntityName": "JULIO ERICKSON", "projectName": "{some project name}", "globalSubscriberId": "{some subscriber id}", "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.model.ts new file mode 100644 index 000000000..a8e9b435a --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.model.ts @@ -0,0 +1,15 @@ +/****************************************** + type - node type + isFirstLevel : node is first level + ******************************************/ + +export class DragAndDropModel { + type : string; + isFirstLevel : boolean; + + constructor(type : string, isFirstLevel : boolean){ + this.type = type; + this.isFirstLevel = isFirstLevel; + } + +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts new file mode 100644 index 000000000..1221cef5f --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts @@ -0,0 +1,227 @@ +import {TestBed, getTestBed} from '@angular/core/testing'; +import { + HttpClientTestingModule, + HttpTestingController +} from '@angular/common/http/testing'; +import {NgRedux} from "@angular-redux/store"; +import {DragAndDropService} from "./dragAndDrop.service"; +import {AppState} from "../../../../shared/store/reducers"; + +class MockAppStore { + dispatch(){ + + } + getState() { + return { + global: { + flags: { + "DRAG_AND_DROP_OPERATION" : true + } + }, + service: { + serviceInstance: { + "serviceInstanceId": { + vnfs: { + "vnfStoreKey": { + isMissingData: true, + vfModules: { + "vfModulesName": { + "vfModulesName": { + isMissingData: true + } + } + } + }, + + "vnfStoreKey1": { + isMissingData: false, + vfModules: { + "vfModulesName": { + "vfModulesName": { + isMissingData: false + } + } + } + } + } + } + } + } + } + } +} + +describe('Drag and drop service', () => { + let injector; + let service: DragAndDropService; + let httpMock: HttpTestingController; + let store: NgRedux; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [ + DragAndDropService, + {provide: NgRedux, useClass: MockAppStore}] + }); + await TestBed.compileComponents(); + + injector = getTestBed(); + service = injector.get(DragAndDropService); + httpMock = injector.get(HttpTestingController); + store = injector.get(NgRedux); + })().then(done).catch(done.fail)); + + + test('drag should move element position', () => { + let nodes = [{ + "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9", + "modelId": "d6557200-ecf2-4641-8094-5393ae3aae60", + "modelUniqueId": "91415b44-753d-494c-926a-456a9172bbb9", + "missingData": false, + "id": "tjjongy92jn", + "action": "Create", + "inMaint": false, + "name": "yoav2_001", + "modelName": "VF_vMee 0", + "type": "VF", + "isEcompGeneratedNaming": true, + "networkStoreKey": "VF_vMee 0:0001", + "vnfStoreKey": "VF_vMee 0:0001", + "typeName": "VNF", + "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}}, + "isFailed": false, + "statusProperties": [{"key": "Prov Status:", "testId": "provStatus"}, { + "key": "Orch Status:", + "testId": "orchStatus" + }], + "trackById": "di9khuolht", + "parentType": "", + "position": 0, + "children": [{ + "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "modelId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87", + "modelUniqueId": "f8c040f1-7e51-4a11-aca8-acf256cfd861", + "missingData": false, + "id": 6654971919519, + "action": "Create", + "name": "VFModule1", + "modelName": "vf_vmee0..VfVmee..base_vmme..module-0", + "type": "VFmodule", + "isEcompGeneratedNaming": true, + "dynamicInputs": [], + "dynamicModelName": "vf_vmee0..VfVmee..base_vmme..module-0bykqx", + "typeName": "M", + "menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}}, + "isFailed": false, + "statusProperties": [{"key": "Prov Status:", "testId": "provStatus"}, { + "key": "Orch Status:", + "testId": "orchStatus" + }], + "trackById": "5pfyfah820h", + "parentType": "VNF", + "position": 0, + "errors": {} + }, { + "modelCustomizationId": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "modelId": "41708296-e443-4c71-953f-d9a010f059e1", + "modelUniqueId": "6add59e0-7fe1-4bc4-af48-f8812422ae7c", + "missingData": false, + "id": 987761655742, + "action": "Create", + "name": "VNFModule3", + "modelName": "vf_vmee0..VfVmee..vmme_gpb..module-2", + "type": "VFmodule", + "isEcompGeneratedNaming": true, + "dynamicInputs": [], + "dynamicModelName": "vf_vmee0..VfVmee..vmme_gpb..module-2fjrrc", + "typeName": "M", + "menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}}, + "isFailed": false, + "statusProperties": [{"key": "Prov Status:", "testId": "provStatus"}, { + "key": "Orch Status:", + "testId": "orchStatus" + }], + "trackById": "i3dllio31bb", + "parentType": "VNF", + "position": 1, + "errors": {} + }, { + "modelCustomizationId": "55b1be94-671a-403e-a26c-667e9c47d091", + "modelId": "522159d5-d6e0-4c2a-aa44-5a542a12a830", + "modelUniqueId": "55b1be94-671a-403e-a26c-667e9c47d091", + "missingData": false, + "id": 873798901625, + "action": "Create", + "name": "VFModule2", + "modelName": "vf_vmee0..VfVmee..vmme_vlc..module-1", + "type": "VFmodule", + "isEcompGeneratedNaming": true, + "dynamicInputs": [], + "dynamicModelName": "vf_vmee0..VfVmee..vmme_vlc..module-1djjni", + "typeName": "M", + "menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}}, + "isFailed": false, + "statusProperties": [{"key": "Prov Status:", "testId": "provStatus"}, { + "key": "Orch Status:", + "testId": "orchStatus" + }], + "trackById": "w7bvw1nh47s", + "parentType": "VNF", + "position": 2, + "errors": {} + }], + "errors": {} + }, { + "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9", + "modelId": "d6557200-ecf2-4641-8094-5393ae3aae60", + "modelUniqueId": "91415b44-753d-494c-926a-456a9172bbb9", + "missingData": false, + "id": "dywch8hkomi", + "action": "Create", + "inMaint": false, + "name": "yoav2", + "modelName": "VF_vMee 0", + "type": "VF", + "isEcompGeneratedNaming": true, + "networkStoreKey": "VF_vMee 0", + "vnfStoreKey": "VF_vMee 0", + "typeName": "VNF", + "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}}, + "isFailed": false, + "statusProperties": [{"key": "Prov Status:", "testId": "provStatus"}, { + "key": "Orch Status:", + "testId": "orchStatus" + }], + "trackById": "fjczf1urdqo", + "parentType": "", + "position": 1, + "children": [], + "errors": {} + }]; + let from = { + data: { + type: 'VF', + index: 1 + } + }; + + let to = { + parent: { + data: { + type: 'VF', + index: 0 + } + } + }; + jest.spyOn(service, 'array_move'); + + service.drag(store, "serviceInstanceId", nodes, {from, to}); + + + expect(service.array_move).toHaveBeenCalled(); + + }); + + +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts new file mode 100644 index 000000000..01763c685 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts @@ -0,0 +1,78 @@ +import {Injectable} from "@angular/core"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../shared/store/reducers"; +import {DragAndDropModel} from "./dragAndDrop.model"; +import {FeatureFlagsService, Features} from "../../../../shared/services/featureFlag/feature-flags.service"; +import * as _ from 'lodash'; + +@Injectable() +export class DragAndDropService { + + constructor(private store: NgRedux){} + + isAllow(): boolean { + return FeatureFlagsService.getFlagState(Features.DRAG_AND_DROP_OPERATION, this.store); + } + /******************************************************************** + * manage drawing-board drag and drop operation + * @param nodes - array with elements data. + * @param tree - tree instance + * @param node - element information + * @param from - element from information + * @param to - element to information + ************************************************************/ + + drag(store, instanceId : string , nodes, {from, to}) :void{ + if (!store.getState().global.flags["DRAG_AND_DROP_OPERATION"]) return; + + let firstLevelNames : DragAndDropModel[] = [ + new DragAndDropModel('VF',true), + new DragAndDropModel('VL',true), + new DragAndDropModel('VFmodule',false) + ]; + + const fromObject = _.find(firstLevelNames, ['type', from.data.type]); + const toObject = _.find(firstLevelNames, ['type', to.parent.data.type]); + + /*********************************************************************************************** + if the type are the same and there in same level + same parent -> then change element position + ***********************************************************************************************/ + if(fromObject.isFirstLevel === toObject.isFirstLevel){ // moving element in the same level and in the first level + if(fromObject.isFirstLevel){ + this.array_move(nodes, from.index , to.parent.index, instanceId); + } else if(fromObject.isFirstLevel === toObject.isFirstLevel){ + /* check if they have the same parent */ + if(from.parent.data.trackById === to.parent.parent.data.trackById){ + let vfModules = nodes.find((parents)=> { + return parents.trackById === to.parent.parent.data.trackById; + }).children; + this.array_move(vfModules, from.index , to.parent.index, instanceId, to.parent.parent.data.vnfStoreKey); + } + } + } + } + + + /******************************************************************** + * move element inside array with elements position + * @param arr - array with elements data. + * @param originalPosition - element original position + * @param destPosition - element dest position + * @param destPinstanceIdosition - instance id + ******************************************************************/ + array_move(arr, originalPosition, destPosition, instanceId : string, parentStoreKey?) { + if (destPosition >= arr.length) { + let k = destPosition - arr.length + 1; + while (k--) { + arr.push(undefined); + } + } + arr.splice(destPosition, 0, arr.splice(originalPosition, 1)[0]); + arr.forEach((item, index) => { + if(item.position !== index){ + item.position = index; + item.updatePoistionFunction(this, item, instanceId, parentStoreKey); + } + }); + }; +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts new file mode 100644 index 000000000..d0715982c --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts @@ -0,0 +1,207 @@ +import {AfterViewInit, Component, EventEmitter, OnInit, Output, ViewChild,} from '@angular/core'; +import {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu'; +import {Constants} from '../../../shared/utils/constants'; +import {IDType, ITreeNode} from "angular-tree-component/dist/defs/api"; +import {TreeComponent, TreeModel, TreeNode} from "angular-tree-component"; +import {DialogService} from "ng2-bootstrap-modal"; +import {ActivatedRoute} from "@angular/router"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {IframeService} from "../../../shared/utils/iframe.service"; +import {DuplicateService} from '../duplicate/duplicate.service'; +import {DrawingBoardTreeService, TreeNodeContextMenuModel} from "./drawing-board-tree.service"; +import {NetworkPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import {VfModulePopuopService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {VnfPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {SdcUiServices} from "onap-ui-angular"; +import {HighlightPipe} from "../../../shared/pipes/highlight/highlight-filter.pipe"; +import {VnfGroupPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import {ObjectToInstanceTreeService} from "../objectsToTree/objectToInstanceTree/objectToInstanceTree.service"; +import {SharedTreeService} from "../objectsToTree/shared.tree.service"; +import {Subject} from "rxjs/Subject"; +import {changeServiceIsDirty} from "../../../shared/storeUtil/utils/service/service.actions"; +import * as _ from 'lodash'; +import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service"; +import {DragAndDropService} from "./dragAndDrop/dragAndDrop.service"; +import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service"; +import {PopoverPlacement} from "../../../shared/components/popover/popover.component"; + +@Component({ + selector: 'drawing-board-tree', + templateUrl: './drawing-board-tree.html', + styleUrls: ['./drawing-board-tree.scss'], + providers: [HighlightPipe] +}) + +export class DrawingBoardTreeComponent implements OnInit, AfterViewInit { + _store: NgRedux; + duplicateService: DuplicateService; + drawingBoardTreeService: DrawingBoardTreeService; + errorMsgService: ErrorMsgService; + isFilterEnabled: boolean = false; + filterValue: string = ''; + contextMenuOptions: TreeNodeContextMenuModel[]; + static triggerDeleteActionService: Subject = new Subject(); + static triggerUndoDeleteActionService: Subject = new Subject(); + static triggerreCalculateIsDirty: Subject = new Subject(); + @ViewChild(ContextMenuComponent) public contextMenu: ContextMenuComponent; + + constructor(private _contextMenuService: ContextMenuService, + private _iframeService: IframeService, + private dialogService: DialogService, + private store: NgRedux, + private route: ActivatedRoute, + private _duplicateService: DuplicateService, + private modalService: SdcUiServices.ModalService, + private _drawingBoardTreeService: DrawingBoardTreeService, + private _networkPopupService: NetworkPopupService, + private _vfModulePopuopService: VfModulePopuopService, + private _vnfPopupService: VnfPopupService, + private _vnfGroupPopupService: VnfGroupPopupService, + private _errorMsgService: ErrorMsgService, + private _highlightPipe: HighlightPipe, + private _objectToInstanceTreeService: ObjectToInstanceTreeService, + private _sharedTreeService: SharedTreeService, + private _dragAndDropService : DragAndDropService) { + + this.errorMsgService = _errorMsgService; + this.duplicateService = _duplicateService; + this.drawingBoardTreeService = _drawingBoardTreeService; + this.contextMenuOptions = _drawingBoardTreeService.generateContextMenuOptions(); + + DrawingBoardTreeComponent.triggerDeleteActionService.subscribe((serviceModelId) => { + this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(this.nodes, serviceModelId, (node, serviceModelId)=>{ + this.drawingBoardTreeService.deleteActionService(this.nodes, serviceModelId); + this.store.dispatch(changeServiceIsDirty(this.nodes, serviceModelId)); + }); + }); + + DrawingBoardTreeComponent.triggerUndoDeleteActionService.subscribe((serviceModelId) => { + this.drawingBoardTreeService.undoDeleteActionService(this.nodes, serviceModelId); + this.store.dispatch(changeServiceIsDirty(this.nodes, serviceModelId)); + }); + + DrawingBoardTreeComponent.triggerreCalculateIsDirty.subscribe((serviceModelId) => { + this.store.dispatch(changeServiceIsDirty(this.nodes, serviceModelId)); + }); + + this._store = store; + this.route + .queryParams + .subscribe(params => { + this.serviceModelId = params['serviceModelId']; + }); + } + + getNodeId(node: ITreeNode): string { + return (node.data.parentType !== "" ? (node.data.parentType + "_") : "") + node.data.typeName; + } + + updateNodes(updateData: { nodes: any, filterValue: string }): void { + this.nodes = updateData.nodes; + this.filterValue = updateData.filterValue; + } + + @Output() + highlightNode: EventEmitter = new EventEmitter(); + + @ViewChild('tree') tree: TreeComponent; + missingDataTooltip: string = Constants.Error.MISSING_VNF_DETAILS; + currentNode: ITreeNode = null; + flags: any; + nodes = []; + serviceModelId: string; + options = { + allowDrag: this._dragAndDropService.isAllow(), + actionMapping: { + mouse: { + drop: (tree:TreeModel, node:TreeNode, $event:any, {from, to}) => { + this._dragAndDropService.drag(this.store, this.serviceModelId, this.nodes, {from, to}); + } + } + }, + nodeHeight: 45, + dropSlotHeight: 1 + }; + parentElementClassName = 'content'; + + ngOnInit(): void { + this.store.subscribe(() => { + this.updateTree(); + }); + this.updateTree() + } + + getNodeName(node: ITreeNode, filter: string) { + return this._highlightPipe.transform(node.data.name, filter ? filter : ''); + } + + updateTree() { + const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId]; + this.nodes = this._objectToInstanceTreeService.convertServiceInstanceToTreeData(serviceInstance, this.store.getState().service.serviceHierarchy[this.serviceModelId]); + console.log('right nodes', this.nodes); + + } + + + ngAfterViewInit(): void { + this.tree.treeModel.expandAll(); + } + + public onContextMenu($event: MouseEvent, node: ITreeNode): void { + this.flags = this.store.getState().global.flags; + + this.currentNode = node; + node.focus(); + node.setActiveAndVisible(false); + this.selectNode(node); + setTimeout(() => { + this._contextMenuService.show.next({ + contextMenu: this.contextMenu, + event: $event, + item: node, + }); + $event.preventDefault(); + $event.stopPropagation(); + }, 250); + + } + + + executeMenuAction(methodName: string): void { + if (!_.isNil(this.currentNode.data.menuActions) && !_.isNil(this.currentNode.data.menuActions[methodName])) { + this.currentNode.data.menuActions[methodName]['method'](this.currentNode, this.serviceModelId); + this.store.dispatch(changeServiceIsDirty(this.nodes, this.serviceModelId)); + } + } + + isEnabled(node: ITreeNode, serviceModelId: string, methodName: string): boolean { + if (!_.isNil(this.currentNode) && !_.isNil(this.currentNode.data.menuActions) && !_.isNil(this.currentNode.data.menuActions[methodName])) { + return this.currentNode.data.menuActions[methodName]['enable'](this.currentNode, this.serviceModelId); + } + return false; + } + + isVisible(node: ITreeNode, methodName: string): boolean { + if (!_.isNil(this.currentNode) && !_.isNil(this.currentNode.data.menuActions) && !_.isNil(this.currentNode.data.menuActions[methodName])) { + return this.currentNode.data.menuActions[methodName]['visible'](this.currentNode, this.serviceModelId); + } + return false; + } + + public selectNode(node: ITreeNode): void { + node.expand(); + this._sharedTreeService.setSelectedVNF(node); + this.highlightNode.emit(node.data.modelUniqueId); + if (FeatureFlagsService.getFlagState(Features.FLAG_1906_COMPONENT_INFO, this.store)) { + node.data.onSelectedNode(node); + } + } + + expandParentByNodeId(id: IDType): void { + this.tree.treeModel.getNodeById(id).parent.expand(); + } + +} + + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html new file mode 100644 index 000000000..8af909ffc --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html @@ -0,0 +1,96 @@ + +
+
+ +
+
+
Instance:
+ +
+ + + +
+ +
Failed
+
+
+
+
{{node?.data?.typeName}}
+
+
+ + + + + + +
+
+ Limit{{node?.data?.limitMembers}} +
+
+ + + +
+
+ +
+
{{contextMenuOption.label}}
+
+
+
+
+ + + + + + + + + +
+
+
+
+
+ + + diff --git a/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss similarity index 53% rename from vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.scss rename to vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss index fed9ead10..be9f9f2d4 100644 --- a/vid-webpack-master/src/app/drawingBoard/drawing-board-tree/drawing-board-tree.scss +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss @@ -11,11 +11,19 @@ span.toggle-children { @include highlight(white, #009FDB); border-right: none; + .isFailed { + left: 0px !important; + } } } + } } +#VNF > node-content-wrapper { + border: 1px dashed #D2D2D2 !important; +} + @mixin highlight-tree-node-content { tree-node-content { > div { @@ -28,23 +36,55 @@ } } +#RETRY_EDIT drawing-board-tree tree-node-collection > div, +#RETRY drawing-board-tree tree-node-collection > div { + margin-top: 0px; + width: calc(100% - 50px); + margin-left: auto; + } + drawing-board-tree { + flex: 1; + color: #5A5A5A; + line-height: 14px; + flex-direction:column; + + &.col-md-6,&.col-md-5{ + padding: 0; + } + .tree-header { + display: flex; + justify-content: space-between; + .title-tree { + font-family: OpenSans-SemiBold; + font-size: 16px; + color: #191919; + text-align: left; + text-transform: uppercase; + padding-bottom: 48px; + } + .search-container { + width: 275px; + } + } + .highlight { + background-color: #9DD9EF; + } .toggle-children-wrapper.toggle-children-wrapper-expanded { .toggle-children:before { color: #009FDB; } } - - overflow: auto; - flex: 1; - color: #5A5A5A; - line-height: 14px; .drawing-board-tree { width: 100%; + padding: 30px 45px; + } + + .tree-node-level-1 { + margin-bottom: 10px; } tree-viewport { - padding: 50px 3.5% 1% 6%; tree-node { tree-node-drop-slot { .node-drop-slot { @@ -57,14 +97,17 @@ drawing-board-tree { .node-wrapper { @include highlight-toggle-children; .node-content-wrapper-focused, - .node-content-wrapper-active - { + .node-content-wrapper-active { + @include highlight-toggle-children; @include highlight(#E6F6FB, #009FDB); - .property-name { - color: #009FDB; + .property-name,.instance-type { + color: #009FDB !important; + position: relative; } - .auto-name { - font-family: OpenSans-Regular !important; + .status-properties { + .status-property-value,.status-property-name { + color: #009FDB; + } } .icon-browse:before { color: #5A5A5A; @@ -81,30 +124,29 @@ drawing-board-tree { } .tree-node-active .tree-children { - border: 1px solid #009FDB; - padding: 20px; + //border: 1px solid #009FDB; + padding-left: 45px; } - - .tree-node.tree-node-active.tree-node-expanded { - border: 1px solid #009FDB; } - .tree-node-leaf .node-wrapper{ - margin-left: -45px; + .tree-children .tree-node-leaf .node-wrapper{ + margin-left: -5px; } + .tree-node.tree-node-expanded > tree-node-wrapper{ + box-shadow: 0 2px 2px 0 rgba(0,0,0,.1); + position: relative; + z-index: 1; + display: block; + } tree-node-wrapper { .node-wrapper { height: 45px; &:hover { - @include highlight-toggle-children; - .node-content-wrapper { - @include highlight(#E6F6FB, #009FDB); - .property-name { - color: #009FDB; - } + .node-content-wrapper:not(.node-content-wrapper-focused) { + background: #F2F2F2; .icon-browse:before { color: #5A5A5A; } @@ -114,6 +156,9 @@ drawing-board-tree { tree-node-expander { font-family: 'icomoon' !important; height: 100%; + .failed-msg { + + } .toggle-children-wrapper { padding: 0; display: block; @@ -151,6 +196,7 @@ drawing-board-tree { width:45px; } } + .node-content-wrapper { padding: 0; background: none; @@ -159,33 +205,93 @@ drawing-board-tree { border: 1px solid #D2D2D2; height: 100%; flex: 1; + .resourceGroup { + border: 1px dashed #D2D2D2 !important; + } tree-node-content { > div { height: 100%; display: flex; align-items: center; - justify-content: space-between; - .model-info { + + .instance-type { + width: 40px; + height: 100%; + padding-top: 16px; + text-transform: uppercase; + text-align: center; + border-right: 1px solid #D2D2D2; + word-break: break-all; + color: #959595; + font-size: 13px; + font-family: OpenSans-SemiBold; + .newIcon { + background: #45B16D; + position: absolute; + top: 5%; + width: 90%; + left: 5%; + right: 5%; + border-radius: 2px; + height: 5px; + } + span { + width: 40px; + display: block; + } + } > span { flex: 1; - display: flex; - justify-content: space-between; - align-items: center; - padding-left: 8px; - > span { - flex: 1; - padding: 0 8px; - span:nth-child(2) { - display: block; + display: block; + + span:nth-child(2) { + display: block; + } + } + .model-info { + padding-left: 16px; + width: 100%; + .property-name { + font-family: OpenSans-SemiBold; + font-size: 13px; + color: #191919; + //text-transform: capitalize; problematic with search + .auto-name{ + display: inline-flex;//required for search more then one sub highlight, + font-size: 13px; + } + .text_decoration{ + text-decoration: line-through; + } + + .text_decoration:after { + height: 10px; } } + tree-node-header-properties{ + display: block; + } + } + .scaling { + background: #4ca90c; + padding: 5px; + border-radius: 3px; + font-family: OpenSans-SemiBold; + font-size: 12px; + color: #FFF9F9; + &.invalid{ + background: #cf2a2a; + } + span:first-child{ + margin-right: 3px; + } } .model-actions { display: flex; align-items: center; - padding-right: 12px; .icon-browse { padding: 0; width: 30px; + height: 24px; &:before { content: "\e924"; font-size: 24px; @@ -201,31 +307,17 @@ drawing-board-tree { } .icon-alert { - padding-left: 10px; - &:before { - content: "\e904"; - font-size: 16px; - color: #ffb81c; - } + padding-right: 10px; } } } } - .property-name { - font-family: OpenSans-Semibold; - font-size: 12px; - line-height: 12px; - color: #191919; - text-transform: capitalize; - } } - - } } tree-node-children { .tree-children { - padding: 20px; + padding-left: 45px; .model-info span:first-child { flex: 1.1 !important; } @@ -234,6 +326,44 @@ drawing-board-tree { } } } + + +.tree-node-level-1.tree-node.tree-node-expanded { + .failed-popover-wrap { + left: -50px !important; + position: absolute; + } +} +.tree-node-level-1 { + .failed-popover-wrap { + left: 45px !important; + position: absolute; + } +} + +.tree-node-level-2.tree-node.tree-node-leaf { + .failed-popover-wrap { + left: 135px !important; + position: absolute; + } +} + +.tree-node-level-1.tree-node.tree-node-collapsed { + .failed-popover-wrap{ + left: 0px !important; + position: absolute; + } +} + +.failed-msg{ + background: #cf2a2a; + padding: 5px; + border-radius: 3px; + font-family: OpenSans-SemiBold; + font-size: 12px; + color: #FFF9F9; +} + .cdk-overlay-pane.ngx-contextmenu { ul.dropdown-menu { width: 200px; @@ -272,3 +402,4 @@ drawing-board-tree { } } + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts new file mode 100644 index 000000000..1b913cfe9 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts @@ -0,0 +1,147 @@ +import {TestBed, getTestBed} from '@angular/core/testing'; +import { + HttpClientTestingModule, + HttpTestingController +} from '@angular/common/http/testing'; +import {NgRedux} from "@angular-redux/store"; +import {DrawingBoardTreeService, TreeNodeContextMenuModel} from "./drawing-board-tree.service"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; + + class MockAppStore{ + getState() { + return { + service : { + serviceInstance : { + "serviceInstanceId" : { + vnfs : { + "vnfStoreKey" : { + isMissingData : true, + vfModules : { + "vfModulesName" : { + "vfModulesName" : { + isMissingData : true + } + } + } + }, + + "vnfStoreKey1" : { + isMissingData : false, + vfModules : { + "vfModulesName" : { + "vfModulesName" : { + isMissingData : false + } + } + } + } + } + } + } + } + } + } +} + +describe('Drawing board tree Service', () => { + let injector; + let service: DrawingBoardTreeService; + let httpMock: HttpTestingController; + + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [ + DrawingBoardTreeService, + {provide: NgRedux, useClass: MockAppStore}] + }); + await TestBed.compileComponents(); + + injector = getTestBed(); + service = injector.get(DrawingBoardTreeService); + httpMock = injector.get(HttpTestingController); + + })().then(done).catch(done.fail)); + + + + + test('generateContextMenuOptions should return list of optional context menu', () => { + const options : TreeNodeContextMenuModel[] = service.generateContextMenuOptions(); + const expected : TreeNodeContextMenuModel[] = [ + new TreeNodeContextMenuModel('edit', 'context-menu-edit', 'Edit', 'edit-file-o'), + new TreeNodeContextMenuModel('duplicate', 'context-menu-duplicate', 'Duplicate', 'copy-o'), + new TreeNodeContextMenuModel('showAuditInfo', 'context-menu-showAuditInfo', 'Show audit info', 'eye-o'), + new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'), + new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'), + new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'), + new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete') + ]; + expect(options.length).toEqual(7); + expect(options).toEqual(expected); + }); + + test('isVNFMissingData should return true if vnf isMissingData = true', () => { + let node : ITreeNode = { + data : { + type : 'VF', + vnfStoreKey : "vnfStoreKey" + } + }; + let result : boolean = service.isVNFMissingData(node, "serviceInstanceId"); + expect(result).toBeTruthy(); + }); + + + test('isVNFMissingData should return false if vnf has isMissingData = false', () => { + let node : ITreeNode = { + data : { + type : 'VFModule', + modelName : "vfModulesName", + dynamicModelName : "vfModulesName", + parent : { + vnfStoreKey : "vnfStoreKey1", + type : 'VF' + } + } + }; + let result : boolean = service.isVNFMissingData(node, "serviceInstanceId"); + expect(result).toBeFalsy(); + }); + + + test('isVFModuleMissingData should return true if vnfModule has isMissingData = true', () => { + let node : ITreeNode = { + data : { + type : 'VFModule', + modelName : "vfModulesName", + dynamicModelName : "vfModulesName", + parent : { + vnfStoreKey : "vnfStoreKey", + type : 'VF' + } + } + }; + let result : boolean = service.isVFModuleMissingData(node, "serviceInstanceId"); + expect(result).toBeFalsy(); + }); + + + test('isVFModuleMissingData should return false if vnfModule has isMissingData = false', () => { + let node : ITreeNode = { + data : { + type : 'VFModule', + modelName : "vfModulesName", + dynamicModelName : "vfModulesName", + parent : { + vnfStoreKey : "vnfStoreKey1", + type : 'VF' + } + } + }; + let result : boolean = service.isVFModuleMissingData(node, "serviceInstanceId"); + expect(result).toBeFalsy(); + }); + +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts new file mode 100644 index 000000000..17f761c41 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts @@ -0,0 +1,129 @@ +import {Injectable} from "@angular/core"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import * as _ from 'lodash'; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service"; +import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions"; + +@Injectable() +export class DrawingBoardTreeService { + constructor(private store: NgRedux){} + isVFModuleMissingData(node: ITreeNode, serviceModelId : string): boolean { + if(node.data.type === 'VFmodule' &&!_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs) && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey])){ + if(!_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules) + && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules[node.data.modelName]) + && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules[node.data.modelName][node.data.dynamicModelName])){ + + return this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules[node.data.modelName][node.data.dynamicModelName].isMissingData; + } + } + return false; + } + + isVNFMissingData(node : ITreeNode, serviceModelId : string) : boolean { + if(node.data.type == 'VF' && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.data.vnfStoreKey])){ + return this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.data.vnfStoreKey].isMissingData; + } + } + + isViewEditFlagTrue():boolean{ + return FeatureFlagsService.getFlagState(Features.FLAG_1902_NEW_VIEW_EDIT, this.store); + } + + /********************************************** + return all drawing board context menu options + ***********************************************/ + generateContextMenuOptions() : TreeNodeContextMenuModel[]{ + return [ + new TreeNodeContextMenuModel('edit', 'context-menu-edit', 'Edit', 'edit-file-o'), + new TreeNodeContextMenuModel('duplicate', 'context-menu-duplicate', 'Duplicate', 'copy-o'), + new TreeNodeContextMenuModel('showAuditInfo', 'context-menu-showAuditInfo', 'Show audit info', 'eye-o'), + new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'), + new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'), + new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'), + new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete') + ]; + } + + + /******************************************************************* + delete or remove all service child's on delete existing service + *******************************************************************/ + deleteActionService(nodes : ITreeNode[], serviceModelId : string){ + if(!_.isNil(nodes)){ + for(let node of nodes){ + node.data = node; + if(!_.isNil(node.children)){ + node.children.map((child)=>{ + child.data = child; + child.parent = node; + }); + } + + let menuActionsName : string = node.data.action === ServiceInstanceActions.Create ? 'remove' : 'delete'; + if(!_.isNil(node.data.menuActions) && !_.isNil(node.data.menuActions[menuActionsName])){ + node.data.menuActions[menuActionsName]['method'](node, serviceModelId) + } + + } + } + } + /******************************************************************* + undo delete all service child's on undo delete existing service + *******************************************************************/ + undoDeleteActionService(nodes : ITreeNode[], serviceModelId : string){ + if(!_.isNil(nodes)){ + for(let node of nodes){ + node.data = node; + if(!_.isNil(node.children)){ + node.children.map((child)=>{ + child.data = child; + child.parent = node; + }); + } + + if(!_.isNil(node.data.menuActions) && !_.isNil(node.data.menuActions['undoDelete'])){ + node.data.menuActions['undoDelete']['method'](node, serviceModelId) + } + } + } + } + + /*********************************************************** + return true if should add line hover the instance name + ***********************************************************/ + isTextDecoration(node) : boolean{ + return !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action.split('_').pop() === 'Delete'; + } + + + /****************************************** + should create object of instances action + ******************************************/ + generateServiceActionObject(nodes){ + let obj = {}; + let index = 0; + for(let node of nodes){ + obj[index] = {}; + index++; + } + } +} + +export class TreeNodeContextMenuModel { + methodName: string; + dataTestId: string; + label: string; + iconClass: string; + + constructor(methodName: string, + dataTestId: string, + label: string, + iconClass: string) { + this.methodName = methodName; + this.dataTestId = dataTestId; + this.label = label; + this.iconClass = iconClass; + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/instance.tree.generator.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/instance.tree.generator.ts new file mode 100644 index 000000000..188feaaba --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/instance.tree.generator.ts @@ -0,0 +1,8 @@ +import {Injectable} from "@angular/core"; + +@Injectable() +export class InstanceTreeGenerator { + convertServiceInstanceToTreeData(serviceInstance, serviceModelId : string) { + + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.html new file mode 100644 index 000000000..dae6762e0 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.html @@ -0,0 +1,5 @@ +
+ {{ prop.key }} + {{ prop.value }} + | +
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.scss new file mode 100644 index 000000000..305de8cd7 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.scss @@ -0,0 +1,24 @@ +.status-properties{ + display: inline-block; + font-family: OpenSans-Regular; + font-size: 12px; + padding-top: 3px; + .status-property-name{ + color: #5A5A5A; + &.mark{ + background-color: #959595; + color: #ffffff; + } + } + .status-property-value{ + color: #191919; + } + .separator{ + padding: 0 8px; + } + &:last-child .separator{ + display: none; + } + +} + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.spec.ts new file mode 100644 index 000000000..047f2e89d --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.spec.ts @@ -0,0 +1,25 @@ +import {ComponentFixture, TestBed } from '@angular/core/testing'; +import { TreeNodeHeaderPropertiesComponent } from './tree-node-header-properties.component'; + +describe('TreeNodeHeaderPropertiesComponent', () => { + let component: TreeNodeHeaderPropertiesComponent; + let fixture: ComponentFixture; + + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + declarations: [ TreeNodeHeaderPropertiesComponent ] + }); + await TestBed.compileComponents(); + + fixture = TestBed.createComponent(TreeNodeHeaderPropertiesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + + })().then(done).catch(done.fail)); + + + test('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.ts new file mode 100644 index 000000000..535d7ea52 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component.ts @@ -0,0 +1,10 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'tree-node-header-properties', + templateUrl: './tree-node-header-properties.component.html', + styleUrls: ['./tree-node-header-properties.component.scss'] +}) +export class TreeNodeHeaderPropertiesComponent { + @Input() properties : object[] = []; +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board.modes.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board.modes.ts new file mode 100644 index 000000000..452666f91 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board.modes.ts @@ -0,0 +1,8 @@ +export enum DrawingBoardModes { + RETRY = 'RETRY', + RETRY_EDIT = 'RETRY_EDIT', + VIEW = 'VIEW', + EDIT = 'EDIT', + OLD_VIEW_EDIT = 'OLD_VIEW_EDIT', + CREATE = 'CREATE' +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.html new file mode 100644 index 000000000..c5f43b9c8 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.html @@ -0,0 +1,19 @@ +
+
+ + Please select the number of additional instances you want to add of this node. + +
+
+ + Important: VID will duplicate this node including its children. + +
+ +
+ +
+ +
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.scss new file mode 100644 index 000000000..f5b566d0b --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.scss @@ -0,0 +1,9 @@ +.quantity-select { + width: 100%; + font-family: inherit; + font-size: inherit; + border: 1px solid #009FDB; + margin-top: 10px; + padding-left: 7px; + height: 30px; +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.ts new file mode 100644 index 000000000..e1c5d7296 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate-vnf.component.ts @@ -0,0 +1,25 @@ +import { Component } from '@angular/core'; +import * as _ from 'lodash'; +import {DuplicateService} from "./duplicate.service"; + +@Component({ + selector: 'duplicate-vnf', + templateUrl : './duplicate-vnf.component.html', + styleUrls : ['./duplicate-vnf.component.scss'] +}) +export class DuplicateVnfComponent { + duplicateNumber : number = 1; + duplicateOptions : number[] = []; + duplicateService:DuplicateService; + constructor( private _duplicateService: DuplicateService ){ + this.duplicateService = _duplicateService; + this.duplicateOptions = _.range(1, this._duplicateService.maxNumberOfDuplicate + 1); + this.onDuplicateNumberChange(); + } + + onDuplicateNumberChange() { + this.duplicateService.setNumberOfDuplicates(+this.duplicateNumber); + } + + +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts new file mode 100644 index 000000000..81251cb1a --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts @@ -0,0 +1,449 @@ +import { DuplicateService } from './duplicate.service'; +import { LogService } from '../../../shared/utils/log/log.service'; +import { NgRedux } from '@angular-redux/store'; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import { SdcUiServices} from "onap-ui-angular"; +import {IModalConfig} from "onap-ui-angular/dist/components/common"; +import {AppState} from "../../../shared/store/reducers"; +import {getTestBed, TestBed} from "@angular/core/testing"; + +class MockAppStore { + getState(){ + return { + getState() { + return { + service : { + serviceHierarchy: { + "serviceId" : { + vnfs : { + "vnfModelName" : { + properties : { + max_instances : 2 + } + }, + "vnfModelName2" : { + properties : { + max_instances : 2 + } + }, + "vnfModelName3" : { + properties : { + } + } + } + } + }, + serviceInstance : { + "serviceId" : { + existingVNFCounterMap : { + "vnfModelId" : 1, + "vnfModelId2" : 2, + "vnfModelId3" : 0 + } + } + + } + } + } + } + } + } +} + +class MockModalService {} + +describe('Drawing board tree service', () => { + let injector; + let service: DuplicateService; + let store : NgRedux; + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + providers : [ + DuplicateService, + LogService, + {provide: NgRedux, useClass: MockAppStore}, + {provide: SdcUiServices.ModalService, useClass: MockModalService} + ] + }); + await TestBed.compileComponents(); + + injector = getTestBed(); + service = injector.get(DuplicateService); + store = injector.get(NgRedux); + + })().then(done).catch(done.fail)); + + + test('setNumberOfDuplicates should set number of duplicates', ()=>{ + service.setNumberOfDuplicates(10); + expect(service.numberOfDuplicates).toEqual(10); + }); + + test('isEnabled should return false if type is VNF and has missing data', ()=>{ + let node = { + data : { + type : 'VF', + menuActions : { + duplicate : () => { + + } + } + } + }; + spyOn(node.data.menuActions, 'duplicate').and.returnValue(true); + spyOn(service, 'hasMissingData').and.returnValue(true); + let result : boolean = service.isEnabled(node, null, null); + expect(result).toBeFalsy(); + }); + + test('openDuplicateModal', ()=>{ + spyOn(service, 'getRemainsInstance').and.returnValue(1); + let result : IModalConfig = service.openDuplicateModal( + 'currentServiceId', + 'currentServiceId', + 'currentId', + 'storeKey', + 2, + null,null); + expect(result.title).toEqual('Duplicate Node'); + }); + + test('openDuplicateModal should call getRemainsInstance with correct parameters', ()=>{ + spyOn(service, 'getRemainsInstance'); + service.openDuplicateModal( + 'currentServiceId', + 'currentServiceId', + 'currentId', + 'storeKey', + 2, + null,null); + expect(service.getRemainsInstance).toHaveBeenCalledWith('currentServiceId', 'currentId', 'currentServiceId', null, null); + }); + + test('canDuplicate VNF should return true', () => { + sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}})); + let node : ITreeNode = {data : {type : 'VF'}}; + + let result = service.canDuplicate(node); + expect(result).toBeTruthy(); + }); + + test('canDuplicate Network should return true', () => { + sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}})); + let node : ITreeNode = {data : {type : 'VL'}}; + + let result = service.canDuplicate(node); + expect(result).toBeTruthy(); + }); + + test('canDuplicate VFModule should return false', () => { + sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}})); + let node : ITreeNode = {data : {type : 'VFModule'}}; + + let result = service.canDuplicate(node); + expect(result).toBeFalsy(); + }); + + test('Drawing board tree service should be defined', () => { + expect(service).toBeDefined(); + }); + + test('DrawingBoardDuplicateService should be defined', () => { + expect(service).toBeDefined(); + }); + + test('Duplicate multi vnfs should save multi vnfs in redux', () => { + service.existingNames = { + "2017488_adiodvpe": "", + "rrr": "", + "ttt": "" + }; + let newVnfs = service.cloneVnf({ + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi": { + "instanceName": "rrr", + "volumeGroupName": "ttt" + } + } + }, + "originalName": null, + "trackById": "pfs1f0len3", + "instanceName": "2017488_ADIODvPE" + }, "2017-488_ADIOD-vPE 0"); + + expect(newVnfs.instanceName).toBe("2017488_ADIODvPE_001"); + expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_001"); + expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_001"); + + newVnfs = service.cloneVnf({ + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi": { + "instanceName": "rrr", + "volumeGroupName": "ttt" + } + } + }, + "originalName": null, + "trackById": "pfs1f0len3", + "instanceName": "2017488_ADIODvPE" + }, "2017-488_ADIOD-vPE 0"); + + expect(newVnfs.instanceName).toBe("2017488_ADIODvPE_002"); + expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_002"); + expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_002"); + }); + + test('ensure name is unique - send new name - shouldn\'t change name', () => { + service.existingNames = { + "2017488_adiodvpe": "", + "uniqueinstancename": "" + }; + const name = "uniqueInstanceName-1"; + let uniqueName: string = service.ensureUniqueNameOrGenerateOne(name); + expect(uniqueName).toEqual(name); + }); + + test('ensure name is unique send existing name should change name', () => { + service.existingNames = { + "2017488_adiodvpe": "", + "uniqueinstancename-1": "" + }; + const name = "uniqueInstanceName-1"; + let uniqueName: string = service.ensureUniqueNameOrGenerateOne(name); + expect(uniqueName).toEqual(name + "_001"); + }); + + test('isAlreadyExist - send new name should return false', () => { + service.existingNames = { + "2017488_adiodvpe": "", + "uniqueinstancename": "" + }; + const name = "uniqueinstancename-1"; + let isExist: boolean = service.isAlreadyExists(name, service.existingNames); + expect(isExist).toBeFalsy(); + }); + + test('isAlreadyExist - send existing name should return true', () => { + service.existingNames = { + "2017488_adiodvpe": "", + "uniqueinstancename-1": "" + }; + const name = "uniqueinstancename-1"; + let isExist: boolean = service.isAlreadyExists(name, service.existingNames); + expect(isExist).toBeTruthy(); + }); + + test('isAlreadyExist - send existing name case insensitive should return true', () => { + service.existingNames = { + "2017488_adiodvpe": "", + "uniqueinstancename-1": "" + }; + const name = "uniqueInstanceName-1"; + let isExist: boolean = service.isAlreadyExists(name, service.existingNames); + expect(isExist).toBeTruthy(); + }); + + test('getNumberAsPaddingString should return 001 if padding is 000 and val is 1 string', () => { + let paddingNumber: string = service.getNumberAsPaddingString(1, '0000'); + expect(paddingNumber).toEqual('0001'); + }); + + test('getNumberAsPaddingString should return 010 if padding is 000 and val is 10 string', () => { + let paddingNumber: string = service.getNumberAsPaddingString(10, '0000'); + expect(paddingNumber).toEqual('0010'); + }); + + test('generateVNFUniqueName should return the next free number', () => { + const vnfName: string = "VF_vMee 0"; + let result: string = service.generateUniqueStoreKey( + "6e59c5de-f052-46fa-aa7e-2fca9d674c44", + vnfName, + getExistingVNFs(), + {} + ); + + expect(result).toEqual(vnfName + ":0003"); + }); + + test('generateVNFUniqueName on duplicate multi vnfs should return the next free number', () => { + spyOn(service, 'openDuplicateModal'); + service.openDuplicateModal(null, null, null,null, 2, null, null); + + expect(service.openDuplicateModal).toHaveBeenCalledWith(null, null, null,null, 2, null, null); + }); + + + test('isEnabled should return false if node has missing data', () => { + let node = { + data : { + missingData: true, + menuActions : { + duplicate : () => { + + } + } + } + }; + let result : boolean = service.isEnabled(node, null, null); + expect(result).toBeFalsy(); + }); + + test('isEnabled should return true if not reach to max', () => { + let node = { + data : { + missingData: false, modelName : "vnfModelName" , modelId : "vnfModelId", type : "VF", children: [], modelCustomizationId : "vnfModelId",modelUniqueId: "vnfModelId", + menuActions : { + duplicate : () => { + + } + } + } + }; + let result : boolean = service.isEnabled(node, getStoreState(), "serviceId"); + expect(result).toBeTruthy(); + }); + + test('isEnabled should return false if reach to max', () => { + let node = { + data : { + missingData: false, modelName : "vnfModelName2" , modelId : "vnfModelId2", type : "VF" ,children: [], + menuActions : { + duplicate : () => { + + } + } + } + }; + let result : boolean = service.isEnabled(node, getStoreState(), "serviceId"); + expect(result).toBeFalsy(); + }); + + test('isEnabled should return true if max is null', () => { + let node = { + data : { + missingData: false, modelName : "vnfModelName3" , modelId : "vnfModelId3",type : "VF", children: [], modelUniqueId: "vnfModelId3", + menuActions : { + duplicate : () => { + + } + } + } + }; + let result : boolean = service.isEnabled(node, getStoreState(), "serviceId"); + expect(result).toBeTruthy(); + }); + + test('isEnabled should return false if type is vf module', () => { + let node = { + data : { + missingData: false, modelName : "vnfModelName3" , modelId : "vnfModelId3",type : "VFModule", children: [], + menuActions : { + } + } + }; + let result : boolean = service.isEnabled(node, getStoreState(), "serviceId"); + expect(result).toBeFalsy(); + }); + + test('getRemainsVNFinstance should return the remains 1 VNF', () => { + let result : number = service.getRemainsInstance("vnfModelId", "vnfModelName" , "serviceId" , getStoreState(), {data : {type : 'VF'}}); + expect(result).toBe(1); + }); + + test('getRemainsVNFinstance should return the remains 0 VNF', () => { + let result : number = service.getRemainsInstance("vnfModelId2", "vnfModelName2" , "serviceId" , getStoreState(),{data : {type : 'VF'}}); + expect(result).toBe(0); + }); + + test('isVNFChildrensHasMissingData should return true if vnf missing data = true', () => { + let result : boolean = service.hasMissingData(getTreeNode(true,false)); + expect(result).toBeTruthy(); + }); + + test('isVNFChildrensHasMissingData return should false if vnf missing data = false', () => { + let result : boolean = service.hasMissingData(getTreeNode(false,false)); + expect(result).toBeFalsy(); + }); + + test('isVNFChildrensHasMissingData should return true if vfModule missing data = true', () => { + let result : boolean = service.hasMissingData(getTreeNode(false,true)); + expect(result).toBeTruthy(); + }); + + test('isVNFChildrensHasMissingData should return false if no children and vfModule missing data = false', () => { + let node = getTreeNode(false,false); + node.data.children = []; + let result : boolean = service.hasMissingData(node); + expect(result).toBeFalsy(); + }); + + function getExistingVNFs(){ + return {"VF_vMee 0":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"}},"VF_vMee 0:0001":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"},"originalName":"VF_vMee 0"},"VF_vMee 0:0002":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"},"originalName":"VF_vMee 0"}} + } + + function getStoreState(){ + return { + getState() { + return { + service : { + serviceHierarchy: { + "serviceId" : { + vnfs : { + "vnfModelName" : { + properties : { + ecomp_generated_naming: "false", + max_instances : 2 + } + }, + "vnfModelName2" : { + properties : { + ecomp_generated_naming: "false", + max_instances : 2 + } + }, + "vnfModelName3" : { + properties : { + ecomp_generated_naming: "false", + } + } + } + } + }, + serviceInstance : { + "serviceId" : { + existingVNFCounterMap : { + "vnfModelId" : 1, + "vnfModelId2" : 2, + "vnfModelId3" : 0 + } + } + + } + } + } + } + } + } + + + function getTreeNode(VNfMissingData : boolean, vfModuleMissingData : boolean){ + return { + data : { + children : vfModuleMissingData ? + [{ + missingData : true + }] : + [{ + missingData : false + } + ], + missingData : VNfMissingData + } + } + } +}); + + + diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts new file mode 100644 index 000000000..e695edf86 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts @@ -0,0 +1,189 @@ +import { Injectable } from '@angular/core'; +import { ITreeNode } from 'angular-tree-component/dist/defs/api'; +import { AppState } from '../../../shared/store/reducers'; +import { LogService } from '../../../shared/utils/log/log.service'; +import { NgRedux } from '@angular-redux/store'; +import {VnfInstance} from "../../../shared/models/vnfInstance"; +import {VfModuleMap} from "../../../shared/models/vfModulesMap"; +import * as _ from "lodash"; +import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {TypeNodeInformation} from "../typeNodeInformation.model"; +import { SdcUiServices} from "onap-ui-angular"; +import { SdcUiCommon} from "onap-ui-angular"; +import {changeInstanceCounter, duplicateBulkInstances} from "../../../shared/storeUtil/utils/general/general.actions"; +import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config"; + +@Injectable() +export class DuplicateService { + + constructor(private _logService : LogService, private _store: NgRedux, modalService: SdcUiServices.ModalService) { + this.modalService = modalService; + } + + numberOfDuplicates:number; + setNumberOfDuplicates(numberOfDuplicates: number) { + this.numberOfDuplicates = numberOfDuplicates; + } + + currentInstanceId: string = null; + currentServiceId: string = null; + maxNumberOfDuplicate: number = 0; + storeKey: string = null; + padding = '0000'; + modalService: SdcUiServices.ModalService; + store : NgRedux; + existingNames : {[key: string] : any}; + currentNode : ITreeNode = null; + + + + canDuplicate(node: ITreeNode): boolean { + let reduxState = JSON.parse(sessionStorage.getItem('reduxState')); + return reduxState.global.flags['FLAG_DUPLICATE_VNF'] && (node.data.type === 'VF' || node.data.type === 'VL'); + } + + isEnabled(node: ITreeNode, store: NgRedux, serviceId : string): boolean { + if(!_.isNil(node) && !_.isNil(node.data.menuActions['duplicate'])){ + if(this.hasMissingData(node)) return false; + const typeNodeInformation : TypeNodeInformation = new TypeNodeInformation(node); + const max : number = store.getState().service.serviceHierarchy[serviceId][typeNodeInformation.hierarchyName][node.data.modelName].properties['max_instances'] || 1; + const currentExisting: number = store.getState().service.serviceInstance[serviceId][typeNodeInformation.existingMappingCounterName][node.data.modelUniqueId]; + + return max - currentExisting > 0; + }else { + return false; + } + } + + hasMissingData(node : ITreeNode): boolean { + if(!_.isNil(node)){ + if(node.data.missingData) return true; + if(!_.isNil(node.data.children)){ + for(let child of node.data.children) { + if(child.missingData){ + return true; + } + } + } + + } + return false; + } + + getRemainsInstance(modelId : string, modelName : string, serviceId : string, store: NgRedux, node : ITreeNode) : number { + const typeNodeInformation : TypeNodeInformation = new TypeNodeInformation(node); + const properties = store.getState().service.serviceHierarchy[serviceId][typeNodeInformation.hierarchyName][modelName].properties; + const currentExisting : number = store.getState().service.serviceInstance[serviceId][typeNodeInformation.existingMappingCounterName][modelId]; + return (!_.isNil(properties) && !_.isNil(properties['max_instances'])) ? properties['max_instances'] - currentExisting : null; + } + + + + openDuplicateModal(currentServiceId: string, currentUuid: string, currentId: string, storeKey : string, numberOfDuplicate: number, _store : NgRedux, node: ITreeNode): IModalConfig { + this.currentInstanceId = currentId; + this.currentServiceId = currentServiceId; + this.maxNumberOfDuplicate = this.getRemainsInstance(currentUuid, currentId, currentServiceId, _store, node); + this.storeKey = storeKey; + this.store = _store; + this.currentNode = node; + + + return { + size: SdcUiCommon.ModalSize.medium, + title: 'Duplicate Node', + type: SdcUiCommon.ModalType.custom, + buttons: [ + {text: 'Duplicate', callback: this.duplicate.bind(this, this.currentNode), closeModal: true}, + {text: 'Cancel', closeModal: true} + ] + }; + } + + duplicate(node : ITreeNode): void { + const typeNodeInformation : TypeNodeInformation = new TypeNodeInformation(node); + this.existingNames = this.store.getState().service.serviceInstance[this.currentServiceId].existingNames; + const toClone = this.store.getState().service.serviceInstance[this.currentServiceId][typeNodeInformation.hierarchyName][this.storeKey]; + let newObjects = {}; + for(let i = 0; i < this.numberOfDuplicates; i++) { + const uniqueStoreKey = this.generateUniqueStoreKey(this.currentServiceId, this.currentInstanceId, this.store.getState().service.serviceInstance[this.currentServiceId][typeNodeInformation.hierarchyName], newObjects); + const clone = this.cloneVnf(toClone, this.currentInstanceId); + newObjects[uniqueStoreKey] = clone; + } + this.store.dispatch(duplicateBulkInstances(this.currentServiceId, newObjects, this.existingNames, node)); + this.store.dispatch(changeInstanceCounter(toClone.modelInfo.modelUniqueId, this.currentServiceId, this.numberOfDuplicates, node)); + this._logService.info("Duplicate " + this.storeKey + " serviceId: " + this.currentServiceId + "number of duplicate: " + this.numberOfDuplicates, toClone); + } + + + cloneVnf(vnf : VnfInstance, originalName: string): VnfInstance { + let newUniqueVnf : VnfInstance = _.cloneDeep(vnf); + + newUniqueVnf.originalName = originalName; + newUniqueVnf.trackById = DefaultDataGeneratorService.createRandomTrackById(); + if (!_.isNil(vnf.instanceName)){ + newUniqueVnf.instanceName = this.ensureUniqueNameOrGenerateOne(vnf.instanceName); + } + + for (let vf_module_model_name in vnf.vfModules) { + const vfModuleModel: VfModuleMap = vnf.vfModules[vf_module_model_name]; + for (let vfModule in vfModuleModel) { + newUniqueVnf.vfModules[vf_module_model_name][vfModule].trackById = DefaultDataGeneratorService.createRandomTrackById(); + if (!_.isNil(vfModuleModel[vfModule].instanceName)){ + newUniqueVnf.vfModules[vf_module_model_name][vfModule].instanceName = this.ensureUniqueNameOrGenerateOne(vfModuleModel[vfModule].instanceName); + } + if (!_.isNil(vfModuleModel[vfModule].volumeGroupName)){ + newUniqueVnf.vfModules[vf_module_model_name][vfModule].volumeGroupName = this.ensureUniqueNameOrGenerateOne(vfModuleModel[vfModule].volumeGroupName); + } + } + } + return newUniqueVnf; + } + + ensureUniqueNameOrGenerateOne(instanceName){ + let uniqueInstanceName = instanceName; + if (this.isAlreadyExists(instanceName, this.existingNames)) { + uniqueInstanceName = this.generateNextUniqueName(instanceName, this.existingNames); + this.existingNames[uniqueInstanceName.toLowerCase()] = ""; + } + return uniqueInstanceName; + } + + + isAlreadyExists(name : string, existingNames : {[key: string] : any}){ + return _.has(existingNames, name.toLowerCase()); + } + + generateNextUniqueName(name : string, existingNames : {[key: string] : any}) :string{ + let suffix = "000"; + let counter = 1; + if (name.match(/^.*_[\d]{3}$/)){ + name = name.substring(0, name.length - 4); + } + + while(true){ + let paddingNumber : string = this.getNumberAsPaddingString(counter, suffix); + let candidateUniqueName = name + '_' + paddingNumber; + if(!this.isAlreadyExists(candidateUniqueName, existingNames)){ + return candidateUniqueName; + } + counter++; + } + } + + generateUniqueStoreKey(serviceId : string, objectName : string, existing : any, newObjects: any) : string { + let counter = 1; + while(true){ + let paddingNumber : string = this.getNumberAsPaddingString(counter, this.padding); + const name = objectName + ':' + paddingNumber; + if(_.isNil(existing[name]) && _.isNil(newObjects[name])){ + return name; + } + counter++; + } + } + + getNumberAsPaddingString(val: number, padding: string): string { + const str = "" + val; + return padding.substring(0, padding.length - str.length) + str; + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.spec.ts new file mode 100644 index 000000000..56bf94f48 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.spec.ts @@ -0,0 +1,24 @@ +import {DynamicInputsService} from "./dynamicInputs.service"; +import {HttpClientTestingModule} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {NgReduxTestingModule} from "@angular-redux/store/testing"; +describe('DynamicInputs service', () => { + let injector; + let service: DynamicInputsService; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + DynamicInputsService + ] + }); + await TestBed.compileComponents(); + injector = getTestBed(); + service = injector.get(DynamicInputsService); + })().then(done).catch(done.fail)); + + test('DynamicInputs should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.ts new file mode 100644 index 000000000..cb0e7cf5d --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/dynamicInputs.service.ts @@ -0,0 +1,143 @@ +import {Injectable} from "@angular/core"; +import {Utils} from "../../../shared/utils/utils"; +import {Constants} from "../../../shared/utils/constants"; +import Parameter = Constants.Parameter; + +@Injectable() +export class DynamicInputsService { + public getArbitraryInputs(inputs) { + let parameter; + let parameterList = []; + for (let key in inputs) { + parameter = { + id: key, + type: Parameter.STRING, + name: key, + value: inputs[key][Parameter.DEFAULT], + isRequired: inputs[key][Parameter.REQUIRED], + description: inputs[key][Parameter.DESCRIPTION] + }; + switch (inputs[key][Parameter.TYPE]) { + case Parameter.INTEGER: + parameter.type = Parameter.NUMBER; + break; + case Parameter.BOOLEAN: + parameter.type = Parameter.BOOLEAN; + break; + case Parameter.RANGE: + break; + case Parameter.LIST: + parameter.type = Parameter.LIST; + break; + case Parameter.MAP: + parameter.type = Parameter.MAP; + break; + } + if (Utils.hasContents(inputs[key][Parameter.CONSTRAINTS]) + && ( inputs[key][Parameter.CONSTRAINTS].length > 0 )) { + let constraintsArray = inputs[key][Parameter.CONSTRAINTS]; + this.addConstraintParameters(parameterList, constraintsArray, key, inputs, parameter); + } + else { + + parameterList.push(parameter); + } + } + return parameterList; + } + + private addConstraintParameters(parameterList, constraintsArray, key, inputs, parameter) { + // If there are constraints and the operator is "valid_values", + // use a select parameter type. + let i: number = constraintsArray.length; + let parameterPushed: boolean = false; + if (i > 0) { + while ((i--) && (!parameterPushed)) { + let keys = Object.keys(constraintsArray[i]); + for (let operator in keys) { + switch (keys[operator]) { + case Parameter.VALID_VALUES: + let j: number = constraintsArray[i][Parameter.VALID_VALUES].length; + if (j > 0) { + let oList = []; + let option; + while (j--) { + option = { + name: constraintsArray[i][Parameter.VALID_VALUES][j], + isDefault: false + }; + if ((Utils.hasContents(inputs[key][Parameter.DEFAULT]) ) + && (inputs[key][Parameter.DEFAULT] === constraintsArray[i][Parameter.VALID_VALUES][j] )) { + option = { + name: constraintsArray[i][Parameter.VALID_VALUES][j], + isDefault: true + } + } + oList.push(option); + } + parameter.type = Parameter.SELECT; + parameter.optionList = oList; + parameterList.push(parameter); + parameterPushed = true; + } + break; + + case Parameter.EQUAL: + if (constraintsArray[i][Parameter.EQUAL] != null) { + parameter.type = Parameter.STRING; + parameter.isReadOnly = true; + parameter.value = constraintsArray[i][Parameter.EQUAL]; + parameterList.push(parameter); + parameterPushed = true; + } + break; + + case Parameter.LENGTH: + if (constraintsArray[i][Parameter.LENGTH] != null) { + parameter.minLength = constraintsArray[i][Parameter.LENGTH]; + parameter.maxLength = constraintsArray[i][Parameter.LENGTH]; + parameterList.push(parameter); + parameterPushed = true; + } + break; + case Parameter.MAX_LENGTH: + if (constraintsArray[i][Parameter.MAX_LENGTH] != null) { + parameter.maxLength = constraintsArray[i][Parameter.MAX_LENGTH]; + parameterList.push(parameter); + parameterPushed = true; + } + break; + case Parameter.MIN_LENGTH: + if (constraintsArray[i][Parameter.MIN_LENGTH] != null) { + parameter.minLength = constraintsArray[i][Parameter.MIN_LENGTH]; + parameterList.push(parameter); + parameterPushed = true; + } + break; + case Parameter.IN_RANGE: + if (constraintsArray[i][Parameter.IN_RANGE] != null) { + if (constraintsArray[i][Parameter.IN_RANGE].length > 1) { + parameter.min = constraintsArray[i][Parameter.IN_RANGE][0]; + parameter.max = constraintsArray[i][Parameter.IN_RANGE][1]; + parameter.type = Parameter.NUMBER; + parameter.value = inputs[key][Parameter.DEFAULT]; + parameterList.push(parameter); + parameterPushed = true; + } + } + break; + case Parameter.GREATER_THAN: + if (constraintsArray[i][Parameter.GREATER_THAN] != null) { + parameter.type = Parameter.NUMBER; + parameter.min = constraintsArray[i][Parameter.GREATER_THAN]; + parameter.value = inputs[key][Parameter.DEFAULT]; + parameterList.push(parameter); + parameterPushed = true; + } + break; + } + } + } + } + }; +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts new file mode 100644 index 000000000..51b6cfacb --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts @@ -0,0 +1,121 @@ +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import {AvailableNodeIcons} from "../../available-models-tree/available-models-tree.service"; + +export interface ILevelNodeInfo { + /** Name of the key inside the serviceHierarchy object **/ + name: string; + + /** Type of the object**/ + type: string; + + /** Child name inside the of the serviceHierarchy object (if exist) **/ + childName?: string; + + /** Child type the of object (if exist) **/ + childType?: string; + + /** model type name **/ + typeName?: string; + + /** is instance failed **/ + isFailed?: boolean; + + /** number of failed **/ + numberOfFailed?: number; + + /*********************************************************** + * return node position + * @param instance - instance + ************************************************************/ + getNodePosition(instance, deepNodeName? : string) : number; + + /*********************************************************** + * return if user should provide instance name or not + * @param currentModel - The model of current object + * @param parentModel - The parent model of current object. + ************************************************************/ + isEcompGeneratedNaming(currentModel, parentModel?): boolean; + + + /*********************** + * update node position + ***********************/ + updatePosition(node, that, instanceId, parentStoreKey?) : void; + + /*********************************************************** + * return object instance + * @param modelId - The model id + * @param serviceHierarchy - The serviceHierarchy store + * @param instance - existing instance details + ************************************************************/ + getModel(modelId: string, instance: any, serviceHierarchy): any; + + /*********************************************************** + * return dynamic inputs of current model + * @param currentModel - The model of current object + ************************************************************/ + updateDynamicInputsDataFromModel(currentModel): any; + + /*********************************************************** + * return tree node instance + * @param instance - The model of current object + * @param model - The model of current object + * @param parentModel + * @param storeKey - instance storeKey if exist (for duplicate) + ************************************************************/ + createInstanceTreeNode(instance: any, model: any, parentModel: any, storeKey: string): any + + /*********************************************************** + * return if instance has some missing data + * @param instance - The instance of current object + * @param dynamicInputs + * @param isEcompGeneratedNaming - boolean + ************************************************************/ + hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean; + + /************************ + * return object tooltip + ************************/ + getTooltip(): string; + + /************************ + * return object type + ************************/ + getType(): string; + + /************************************ + * return child model option object + ***********************************/ + getNextLevelObject(): any; + + /*********************************************************** + * open popup + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + onClickAdd(node: ITreeNode, serviceModelId: string): void; + + /*********************************************************** + * get number of existing node instance + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + getNodeCount(node: ITreeNode, serviceModelId: string): number; + + /*********************************************************** + * should show node icon + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons; + + /*********************************************************** + * should return list of actions and there methods + * @param node - current ITrees node + * @param serviceModelId + ************************************************************/ + getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } }; + + + onSelectedNode(node : ITreeNode): void +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts new file mode 100644 index 000000000..d99ec3bc6 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts @@ -0,0 +1,1500 @@ +import {HttpClientTestingModule} from "@angular/common/http/testing"; +import {TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {ConfigurationModelInfo} from "./configuration.model.info"; +import {SharedTreeService} from "../../shared.tree.service"; + +describe('Vnf Model Info', () => { + let _dynamicInputsService : DynamicInputsService; + let _sharedTreeService : SharedTreeService; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + MockNgRedux, + SharedTreeService, + DynamicInputsService] + }); + await TestBed.compileComponents(); + })().then(done).catch(done.fail)); + + test('ConfigurationModelInfo should be defined', () => { + expect(ConfigurationModelInfo).toBeDefined(); + }); + + test('ConfigurationModelInfo should defined extra details', () => { + let configurationModelInfo: ConfigurationModelInfo = new ConfigurationModelInfo(_dynamicInputsService, _sharedTreeService); + expect(configurationModelInfo.name).toEqual('configurations'); + expect(configurationModelInfo.type).toEqual('Configuration'); + }); + + test('isEcompGeneratedNaming should return false', () => { + let configurationModelInfo: ConfigurationModelInfo = new ConfigurationModelInfo(_dynamicInputsService, _sharedTreeService); + let isEcompGeneratedNaming: boolean = configurationModelInfo.isEcompGeneratedNaming(); + expect(isEcompGeneratedNaming).toBeTruthy(); + }); + + test('getTooltip should return "Configuration"', () => { + let configurationModelInfo: ConfigurationModelInfo = new ConfigurationModelInfo(_dynamicInputsService, _sharedTreeService); + let tooltip: string = configurationModelInfo.getTooltip(); + expect(tooltip).toEqual('Configuration'); + }); + + test('getType should return "Configuration"', () => { + let configurationModelInfo: ConfigurationModelInfo = new ConfigurationModelInfo(_dynamicInputsService, _sharedTreeService); + let tooltip: string = configurationModelInfo.getType(); + expect(tooltip).toEqual('Configuration'); + }); + + test('getModel should return Configuration model', () => { + let configurationModelInfo: ConfigurationModelInfo = new ConfigurationModelInfo(_dynamicInputsService, _sharedTreeService); + let model = configurationModelInfo.getModel('2017-388_ADIOD-vPE 1__configuration', getServiceHierarchy()); + expect(model.uuid).toEqual('0903e1c0-8e03-4936-b5c2-260653b96413'); + }); + + + function getServiceHierarchy(){ + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + } + }, + "collectionResource": {}, + "configurations": { + "2017-388_ADIOD-vPE 1__configuration": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + } + + }, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} + } + } +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts new file mode 100644 index 000000000..dd85ea110 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts @@ -0,0 +1,87 @@ +import {ILevelNodeInfo} from "../basic.model.info"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import * as _ from 'lodash'; +import {SharedTreeService} from "../../shared.tree.service"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; + +export class ConfigurationModelInfo implements ILevelNodeInfo{ + constructor(private _dynamicInputsService : DynamicInputsService, + private _sharedTreeService : SharedTreeService){} + name: string = 'configurations'; + type : string = 'Configuration'; + typeName : string = 'C'; + + isEcompGeneratedNaming = () : boolean => true; + + updateDynamicInputsDataFromModel = () : any => []; + + getNextLevelObject = (): any => null; + + getTooltip = () : string => 'Configuration'; + + getType = () : string => "Configuration"; + + /*********************************************************** + * return configuration model + * @param configurationModelId - current Model id + * @param serviceHierarchy - serviceHierarchy + ************************************************************/ + getModel = (configurationModelId : string, serviceHierarchy) : any =>{ + if(!_.isNil(serviceHierarchy)){ + if(!_.isNil(serviceHierarchy[this.name]) && !_.isNil(serviceHierarchy[this.name][configurationModelId])){ + return serviceHierarchy[this.name][configurationModelId]; + } + } + return {}; + }; + + createInstanceTreeNode(instance: any, model: any, storeKey: string): any {return null;} + + childName: string; + childType: string; + + /*********************************************************** + * return if instance has missing data + * @param instance - vnf instance + * @param dynamicInputs + * @param isEcompGeneratedNaming + ************************************************************/ + hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean { + return this._sharedTreeService.hasMissingData(instance, dynamicInputs, isEcompGeneratedNaming, []); + } + + onClickAdd(node: ITreeNode, serviceModelId: string): void { + } + + getNodeCount(node: ITreeNode, serviceModelId: string): number { + return 0; + } + + /*********************************************************** + * should show node icon + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { + return null; + } + + getMenuAction(node: ITreeNode, serviceModelId : string){ + return { + + } + } + + updatePosition(that , node, instanceId): void { + // TODO + } + + getNodePosition(instance): number { + return null; + } + + onSelectedNode(node: ITreeNode): void { + } + +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts new file mode 100644 index 000000000..206adb6d1 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts @@ -0,0 +1,1553 @@ +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {NetworkModelInfo} from "./network.model.info"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {SharedTreeService} from "../../shared.tree.service"; +import {NgRedux} from "@angular-redux/store"; +import {NetworkPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import {DialogService} from "ng2-bootstrap-modal"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {DrawingBoardModes} from "../../../drawing-board.modes"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {DuplicateService} from "../../../duplicate/duplicate.service"; +class MockAppStore { + getState() { + return { + global: { + 'drawingBoardStatus': DrawingBoardModes.CREATE + }, + service : { + serviceHierarchy : { + 'servicedId' : { + 'networks' : { + 'networkName' : { + 'properties' : { + 'max_instances' : 1 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingNetworksCounterMap' : { + 'networkId' : 1 + }, + 'networks' : { + 'networkName' :{ + 'action': 'Create', + 'originalName' : 'networkName' + } + } + } + } + } + } + } +} +describe('Network Model Info', () => { + let injector; + let _dynamicInputsService : DynamicInputsService; + let _sharedTreeService : SharedTreeService; + let networkModel: NetworkModelInfo; + let _dialogService : DialogService; + let _networkPopupService : NetworkPopupService; + let _duplicateService : DuplicateService; + let _iframeService : IframeService; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + DynamicInputsService, + SharedTreeService, + DialogService, + NetworkPopupService, + IframeService, + DuplicateService, + {provide: NgRedux, useClass: MockAppStore}, + MockNgRedux] + }); + await TestBed.compileComponents(); + + injector = getTestBed(); + _sharedTreeService = injector.get(SharedTreeService); + networkModel = new NetworkModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _networkPopupService, _duplicateService, null, _iframeService, MockNgRedux.getInstance()); + })().then(done).catch(done.fail)); + + test('NetworkModelInfo should be defined', () => { + expect(NetworkModelInfo).toBeDefined(); + }); + + test('NetworkModelInfo should defined extra details', () => { + expect(networkModel.name).toEqual('networks'); + expect(networkModel.type).toEqual('Network'); + }); + + test('isEcompGeneratedNaming should return true if = isEcompGeneratedNaming is "true" ', () => { + let isEcompGeneratedNaming: boolean = networkModel.isEcompGeneratedNaming({ + properties: { + ecomp_generated_naming: 'true' + } + }); + expect(isEcompGeneratedNaming).toBeTruthy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => { + let isEcompGeneratedNaming: boolean = networkModel.isEcompGeneratedNaming({ + properties: { + ecomp_generated_naming: 'false' + } + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => { + let isEcompGeneratedNaming: boolean = networkModel.isEcompGeneratedNaming({ + properties: {} + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + test('getTooltip should return "VF"', () => { + let tooltip: string = networkModel.getTooltip(); + expect(tooltip).toEqual('Network'); + }); + + test('getType should return "VF"', () => { + let tooltip: string = networkModel.getType(); + expect(tooltip).toEqual('Network'); + }); + + test('getNextLevelObject should return null', () => { + let nextLevel = networkModel.getNextLevelObject(); + expect(nextLevel).toBeNull(); + }); + + test('updateDynamicInputsDataFromModel should return empty array', () => { + let dynamicInputs = networkModel.updateDynamicInputsDataFromModel({}); + expect(dynamicInputs).toEqual([]); + }); + + test('getModel should return Network model', () => { + let model = networkModel.getModel('2017-388_ADIOD-vPE 1_1', {}, getServiceHierarchy()); + expect(model.type).toEqual('VL'); + }); + + test('showNodeIcons should return false if reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + data : { + id : 'networkId', + name : 'networkName', + modelCustomizationId : 'modelCustomizationId' + } + }; + jest.spyOn(_sharedTreeService, 'getExistingInstancesWithDeleteMode').mockReturnValue(0); + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'networks' : { + 'networkName' : { + 'properties' : { + 'max_instances' : 1 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingNetworksCounterMap' : { + 'modelCustomizationId' : 1 + }, + 'networks' : { + 'networkName' :{ + + } + } + } + } + } + }); + + let result = networkModel.showNodeIcons(node, serviceId); + expect(result).toEqual(new AvailableNodeIcons(true , false)); + }); + + test('showNodeIcons should return true if not reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + data : { + id : 'networkId', + name : 'networkName' + } + }; + jest.spyOn(_sharedTreeService, 'getExistingInstancesWithDeleteMode').mockReturnValue(0); + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'networks' : { + 'networkName' : { + 'properties' : { + 'max_instances' : 2 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingNetworksCounterMap' : { + 'networkId' : 1 + }, + 'networks' : { + 'networkName' :{ + + } + } + } + } + } + }); + + let result = networkModel.showNodeIcons(node, serviceId); + expect(result).toEqual(new AvailableNodeIcons(true , false)); + }); + + test('getNodeCount should return number of nodes', ()=>{ + let serviceId : string = 'servicedId'; + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'networks' : { + 'networkName' : { + 'properties' : { + 'max_instances' : 1 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingNetworksCounterMap' : { + 'modelCustomizationId' : 1 + }, + 'networks' : { + 'networkName' :{ + 'action': 'Create', + 'originalName' : 'networkName' + } + } + } + } + } + }); + + let node = { + data : { + id : 'networkId', + name : 'networkName', + action: 'Create', + modelCustomizationId : "modelCustomizationId", + modelUniqueId: "modelCustomizationId" + } + }; + let result = networkModel.getNodeCount(node , serviceId); + expect(result).toEqual(1); + + node.data.modelCustomizationId = 'networkId_notExist'; + node.data.modelUniqueId = 'networkId_notExist'; + result = networkModel.getNodeCount(node , serviceId); + expect(result).toEqual(0); + }); + + test('getMenuAction: showAuditInfoNetwork', ()=>{ + + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global: { + "drawingBoardStatus": DrawingBoardModes.RETRY + } + }); + jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true); + let node = { + data : { + "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "action": "Create", + "isFailed": true, + } + }; + let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450"; + let result = networkModel.getMenuAction(node, serviceModelId); + spyOn(result['showAuditInfo'], 'method'); + expect(result['showAuditInfo']).toBeDefined(); + expect(result['showAuditInfo'].visible(node)).toBeTruthy(); + expect(result['showAuditInfo'].enable(node)).toBeTruthy(); + result['showAuditInfo']['method'](node, serviceModelId); + expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + + function getServiceHierarchy(){ + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "2017-388_ADIOD-vPE 1_1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VL", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} + } + } +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts new file mode 100644 index 000000000..3d99750ae --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts @@ -0,0 +1,264 @@ +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {ILevelNodeInfo} from "../basic.model.info"; +import {NetworkInstance} from "../../../../../shared/models/networkInstance"; +import {NetworkModel} from "../../../../../shared/models/networkModel"; +import {NetworkTreeNode} from "../../../../../shared/models/networkTreeNode"; +import {SharedTreeService} from "../../shared.tree.service"; +import {InputType} from "../../../../../shared/models/inputTypes"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../../shared/store/reducers"; +import { + GenericFormPopupComponent, + PopupType +} from "../../../../../shared/components/genericFormPopup/generic-form-popup.component"; +import {DialogService} from "ng2-bootstrap-modal"; +import {NetworkPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import * as _ from "lodash"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {DuplicateVnfComponent} from "../../../duplicate/duplicate-vnf.component"; +import {changeInstanceCounter, removeInstance} from "../../../../../shared/storeUtil/utils/general/general.actions"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {SdcUiServices} from "onap-ui-angular"; +import {DuplicateService} from "../../../duplicate/duplicate.service"; +import {ServiceInstanceActions} from "../../../../../shared/models/serviceInstanceActions"; +import { + deleteActionNetworkInstance, + undoDeleteActionNetworkInstance, + updateNetworkPosition +} from "../../../../../shared/storeUtil/utils/network/network.actions"; +import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config"; + +export class NetworkModelInfo implements ILevelNodeInfo { + constructor(private _dynamicInputsService: DynamicInputsService, + private _sharedTreeService: SharedTreeService, + private _dialogService: DialogService, + private _networkPopupService: NetworkPopupService, + private _duplicateService: DuplicateService, + private modalService: SdcUiServices.ModalService, + private _iframeService: IframeService, + private _store: NgRedux) { + } + + name: string = 'networks'; + type: string = 'Network'; + typeName: string = 'N'; + + /*********************************************************** + * return model dynamic inputs + * @param currentModel - current Model object + ************************************************************/ + isEcompGeneratedNaming(currentModel): boolean { + const ecompGeneratedNaming = currentModel.properties.ecomp_generated_naming; + return ecompGeneratedNaming === "true"; + } + + updateDynamicInputsDataFromModel = (currentModel): any => { + let displayInputs; + return _.isEmpty(displayInputs) ? [] : this._dynamicInputsService.getArbitraryInputs(displayInputs); + }; + + /*********************************************************** + * return network model + * @param networkModelId - current Model id + * @param instance + * @param serviceHierarchy - serviceHierarchy + ************************************************************/ + getModel = (networkModelId: string, instance: NetworkInstance, serviceHierarchy): NetworkModel => { + const originalModelName = instance.originalName ? instance.originalName : networkModelId; + return new NetworkModel(serviceHierarchy[this.name][originalModelName]); + }; + + + /*********************************************************** + * return network instance tree node + * @param instance - network instance + * @param model - network model + * @param parentModel + * @param storeKey - store key if exist + ************************************************************/ + createInstanceTreeNode = (instance: NetworkInstance, model: NetworkModel, parentModel, storeKey: string): NetworkTreeNode => { + let node = new NetworkTreeNode(instance, model, storeKey); + node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming); + node.typeName = this.typeName; + node.menuActions = this.getMenuAction(node, model.uuid); + node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed; + node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: ""; + node = this._sharedTreeService.addingStatusProperty(node); + return node; + }; + + /*********************************************************** + * return next level object (null because is last level) + ************************************************************/ + getNextLevelObject(): any { + return null; + } + + getTooltip = (): string => 'Network'; + + getType = (): string => 'Network'; + + /*********************************************************** + * return if instance has missing data + * @param instance - vnf instance + * @param dynamicInputs + * @param isEcompGeneratedNaming + ************************************************************/ + hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean { + return this._sharedTreeService.hasMissingData(instance, dynamicInputs, isEcompGeneratedNaming, [InputType.LCP_REGION, InputType.TENANT, InputType.PLATFORM]); + } + + + /*********************************************************** + * return if instance has missing data + * @param node - Network node + * @param serviceModelId - current service id + ************************************************************/ + onClickAdd(node, serviceModelId: string): void { + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.NETWORK, + uuidData: { + serviceId: serviceModelId, + networkId: node.data.name, + networkStoreKey: null, + type: 'VL', + popupService: this._networkPopupService + }, + node: node, + isUpdateMode: false + }); + } + + /*********************************************************** + * return number of existing instances + * @param node - Network node + * @param serviceModelId - current service id + ************************************************************/ + getNodeCount(node: ITreeNode, serviceModelId: string): number { + let map = null; + if (!_.isNil(this._store.getState().service.serviceInstance[serviceModelId])) { + map = this._store.getState().service.serviceInstance[serviceModelId].existingNetworksCounterMap || 0; + if (!_.isNil(map)) { + let count = map[node.data.modelUniqueId] || 0; + count -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId , 'networks'); + return count; + } + } + return 0; + } + + /*********************************************************** + * should show node icon + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { + let counter: number = !_.isNil(this._store.getState().service.serviceInstance[serviceModelId]) ? + (this._store.getState().service.serviceInstance[serviceModelId].existingNetworksCounterMap[node.data.modelUniqueId] || 0) : 0; + + counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId , 'networks'); + + const properties = this._store.getState().service.serviceHierarchy[serviceModelId].networks[node.data.name].properties; + const maxInstances: number = !_.isNil(properties) ? (properties.max_instances || 1) : 1; + const isReachedLimit = !(maxInstances > counter); + const showAddIcon = this._sharedTreeService.shouldShowAddIcon() && !isReachedLimit; + + return new AvailableNodeIcons(showAddIcon, isReachedLimit) + } + + getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function }} { + const mode = this._store.getState().global.drawingBoardStatus; + return { + edit: { + method: (node, serviceModelId) => { + this._iframeService.addClassOpenModal('content'); + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.NETWORK, + uuidData: { + serviceId: serviceModelId, + networkId: node.data.modelName, + networkStoreKey: node.data.networkStoreKey, + type: node.data.type, + popupService: this._networkPopupService + }, + node: node, + isUpdateMode: true + }); + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node) + }, + showAuditInfo: { + method: (node, serviceModelId) => { + let instance = this._store.getState().service.serviceInstance[serviceModelId].networks[node.data.networkStoreKey]; + this._sharedTreeService.openAuditInfoModal(node, serviceModelId, instance, 'NETWORK', this); + }, + visible: (node) => this._sharedTreeService.shouldShowAuditInfo(node), + enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node) + }, + duplicate: { + method: (node, serviceModelId) => { + if (this._store.getState().global.flags['FLAG_DUPLICATE_VNF']) { + const storeKey = node.data.networkStoreKey; + let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node); + this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent); + } + }, + visible: (node) => this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node), + enable: (node, serviceModelId) => this._duplicateService.isEnabled(node, this._store, serviceModelId) + }, + remove: { + method: (node, serviceModelId) => { + let storeKey: string = node.data.networkStoreKey; + this._store.dispatch(removeInstance(node.data.networkStoreKey, serviceModelId, storeKey, node)); + this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId , serviceModelId, -1, node)); + this._sharedTreeService.selectedVNF = null; + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + }, + delete : { + method : (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + this._store.dispatch(deleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId)); + }else { + this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{ + this._store.dispatch(deleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId)); + }); + } + }, + visible: (node) => this._sharedTreeService.shouldShowDelete(node), + enable: (node) => this._sharedTreeService.shouldShowDelete(node) + }, + undoDelete : { + method : (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + this._store.dispatch(undoDeleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId)); + }else { + this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{ + this._store.dispatch(undoDeleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId)); + }); + } + }, + visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node), + enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId) + } + }; + } + + /*********************************************************** + * should update node position inside the tree + * @param node - current ITrees node + ************************************************************/ + updatePosition(that , node, instanceId): void { + that.store.dispatch(updateNetworkPosition(node)); + } + + getNodePosition(instance): number { + return !_.isNil(instance) ? instance.position : null; + } + + onSelectedNode(node: ITreeNode): void { + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts new file mode 100644 index 000000000..dcf25f579 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts @@ -0,0 +1,1211 @@ +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {VNFModel} from "../../../../../shared/models/vnfModel"; +import {SharedTreeService} from "../../shared.tree.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../../shared/store/reducers"; +import {DefaultDataGeneratorService} from "../../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {DialogService} from "ng2-bootstrap-modal"; +import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {VnfPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {DuplicateService} from "../../../duplicate/duplicate.service"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {RelatedVnfMemberInfoModel} from "./relatedVnfMember.info.model"; + + +class MockAppStore { + getState() { + return {} + } +} + + +describe('Related Vnf member Model Info', () => { + let injector; + let httpMock: HttpTestingController; + let _dynamicInputsService : DynamicInputsService; + let _sharedTreeService : SharedTreeService; + + let _store : NgRedux; + let relatedVnfMemeber: RelatedVnfMemberInfoModel; + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + MockNgRedux, + DynamicInputsService, + DialogService, + VfModulePopuopService, + VnfPopupService, + DefaultDataGeneratorService, + SharedTreeService, + DuplicateService, + IframeService] + }).compileComponents(); + + injector = getTestBed(); + _sharedTreeService = injector.get(SharedTreeService); + _store = injector.get(NgRedux); + + relatedVnfMemeber = new RelatedVnfMemberInfoModel( + _sharedTreeService, + _dynamicInputsService, + _store); + }); + + test('relatedVnfMemeber should be defined', () => { + expect(relatedVnfMemeber).toBeDefined(); + }); + + test('RelatedVnfMemeber should defined extra details', () => { + expect(relatedVnfMemeber.name).toEqual('vnfs'); + expect(relatedVnfMemeber.type).toEqual('relatedVnfMember'); + }); + + test('isEcompGeneratedNaming should return true if isEcompGeneratedNaming is "true" ', () => { + let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming({ + properties: { + ecomp_generated_naming: 'true' + } + }); + expect(isEcompGeneratedNaming).toBeTruthy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => { + let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming({ + properties: { + ecomp_generated_naming: 'false' + } + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => { + let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming({ + properties: { + } + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + + test('getTooltip should return "VF"', () => { + let tooltip: string = relatedVnfMemeber.getTooltip(); + expect(tooltip).toEqual('VF'); + }); + + test('getType should return "VF"', () => { + let tooltip: string = relatedVnfMemeber.getType(); + expect(tooltip).toEqual('VF'); + }); + + test('getNextLevelObject should be null', () => { + let nextLevel = relatedVnfMemeber.getNextLevelObject(); + expect(nextLevel).toBeNull(); + }); + + test('getModel should return VNF model', () => { + let model: VNFModel = relatedVnfMemeber.getModel('2017-388_ADIOD-vPE 1', { + originalName : '2017-388_ADIOD-vPE 1' + }, getServiceHierarchy()); + expect(model.type).toEqual('VF'); + }); + + + test('getMenuAction: delete', ()=>{ + let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"}; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + let result = relatedVnfMemeber.getMenuAction(node, serviceModelId); + spyOn(result['delete'], 'method'); + expect(result['delete']).toBeDefined(); + expect(result['delete'].visible).toBeTruthy(); + expect(result['delete'].enable).toBeTruthy(); + result['delete']['method'](node, serviceModelId); + expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + + test('getMenuAction: undoDelete', ()=>{ + let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"}; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + let result = relatedVnfMemeber.getMenuAction(node, serviceModelId); + spyOn(result['undoDelete'], 'method'); + expect(result['undoDelete']).toBeDefined(); + expect(result['undoDelete'].visible).toBeDefined(); + expect(result['undoDelete'].enable).toBeDefined(); + result['undoDelete']['method'](node, serviceModelId); + expect(result['undoDelete']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + + + function getServiceHierarchy(){ + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} + } + } +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts new file mode 100644 index 000000000..b1eb10937 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts @@ -0,0 +1,158 @@ +import {ILevelNodeInfo} from "../basic.model.info"; +import {SharedTreeService} from "../../shared.tree.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../../shared/store/reducers"; +import * as _ from "lodash"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import { + deleteActionRelatedVnfMemberInstance, + removeRelatedVnfMemberInstance, + undoDeleteActionRelatedVnfMemberInstance +} from "../../../../../shared/storeUtil/utils/relatedVnfMember/relatedVnfMember.actions"; +import {VnfInstance} from "../../../../../shared/models/vnfInstance"; +import {VNFModel} from "../../../../../shared/models/vnfModel"; +import {VnfTreeNode} from "../../../../../shared/models/vnfTreeNode"; +import {InputType} from "../../../../../shared/models/inputTypes"; + +export class RelatedVnfMemberInfoModel implements ILevelNodeInfo { + constructor(private _sharedTreeService: SharedTreeService, + private _dynamicInputsService : DynamicInputsService, + private _store: NgRedux) { + } + + name: string = 'vnfs'; + type: string = 'relatedVnfMember'; + typeName: string = 'VNF'; + + /*********************************************************** + * return if user should provide instance name or not. + * @param currentModel - current Model object + ************************************************************/ + isUserProvidedNaming = (currentModel): boolean => { + const ecompGeneratedNaming = currentModel.properties.ecomp_generated_naming; + return ecompGeneratedNaming !== undefined && ecompGeneratedNaming === "false"; + }; + + /*********************************************************** + * return model dynamic inputs + * @param currentModel - current Model object + ************************************************************/ + updateDynamicInputsDataFromModel = (currentModel): any => { + let displayInputs; + return _.isEmpty(displayInputs) ? [] : this._dynamicInputsService.getArbitraryInputs(displayInputs); + }; + + /*********************************************************** + * return vnf model + * @param vnfModelId - current Model id + * @param instance - vnf instance + * @param serviceHierarchy - serviceHierarchy + ************************************************************/ + getModel = (vnfModelId: string, instance: VnfInstance, serviceHierarchy): VNFModel => { + const originalModelName = instance.originalName ? instance.originalName : vnfModelId; + return new VNFModel(serviceHierarchy[this.name][originalModelName]); + }; + + + /*********************************************************** + * return vnf instance tree node + * @param instance - vnf instance + * @param model - vnf model + * @param parentModel + * @param storeKey - store key if exist + ************************************************************/ + createInstanceTreeNode = (instance: VnfInstance, model: VNFModel, parentModel, storeKey: string): VnfTreeNode => { + let node = new VnfTreeNode(instance, model, storeKey); + node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming); + node.typeName = this.typeName; + node.menuActions = this.getMenuAction(node, model.uuid); + node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed; + node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: ""; + node = this._sharedTreeService.addingStatusProperty(node); + return node; + }; + + /*********************************************************** + * return next level object (null because is last level) + ************************************************************/ + getNextLevelObject(): any { + return null; + } + + /*********************************************************** + * return if instance has missing data + * @param instance - vnf instance + * @param dynamicInputs + * @param isUserProvidedNaming + ************************************************************/ + hasMissingData(instance, dynamicInputs: any, isUserProvidedNaming: boolean): boolean { + return this._sharedTreeService.hasMissingData(instance, dynamicInputs, isUserProvidedNaming, [InputType.LCP_REGION, InputType.TENANT, InputType.PLATFORM]); + } + + getTooltip = (): string => 'VF'; + + getType = (): string => 'VF'; + + /*********************************************************** + * doesn't have option from DrawingBoard model tree + ************************************************************/ + onClickAdd(node, serviceModelId: string): void {} + + /*********************************************************** + * doesn't have option from DrawingBoard model tree + ************************************************************/ + getNodeCount(node: ITreeNode, serviceModelId: string): number {return 0;} + + /*********************************************************** + * doesn't have option from DrawingBoard model tree + ************************************************************/ + showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { + return new AvailableNodeIcons(false, false); + } + + getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function }} { + return { + remove: { + method: (node, serviceModelId) => { + this._store.dispatch(removeRelatedVnfMemberInstance(node.parent.data.vnfGroupStoreKey, node.data.vnfStoreKey, serviceModelId)); + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node) + }, + delete : { + method : (node, serviceModelId) => { + this._store.dispatch(deleteActionRelatedVnfMemberInstance(node.parent.data.vnfGroupStoreKey, node.data.vnfStoreKey, serviceModelId)); + }, + visible: (node) => this._sharedTreeService.shouldShowDelete(node), + enable: (node) => this._sharedTreeService.shouldShowDelete(node) + }, + undoDelete : { + method : (node, serviceModelId) => { + this._store.dispatch(undoDeleteActionRelatedVnfMemberInstance(node.parent.data.vnfGroupStoreKey , node.data.vnfStoreKey, serviceModelId)); + + }, + visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node), + enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && this._sharedTreeService.shouldShowDelete(node.parent) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId) + } + } + } + + isEcompGeneratedNaming = (currentModel): boolean => { + const ecompGeneratedNaming = currentModel.properties.ecomp_generated_naming; + return ecompGeneratedNaming === "true"; + }; + + + updatePosition(that , node, instanceId): void { + // TODO + } + + getNodePosition(instance): number { + return null; + } + + onSelectedNode(node: ITreeNode): void { + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts new file mode 100644 index 000000000..dc7452516 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts @@ -0,0 +1,1596 @@ + +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {VFModuleModelInfo} from "./vfModule.model.info"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {SharedTreeService} from "../../shared.tree.service"; +import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {DialogService} from "ng2-bootstrap-modal"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../../shared/store/reducers"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service"; +import {DrawingBoardModes} from "../../../drawing-board.modes"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {ComponentInfoService} from "../../../component-info/component-info.service"; +import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component"; +import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model"; +import {AaiService} from "../../../../../shared/services/aaiService/aai.service"; +import {HttpClient, HttpHandler} from "@angular/common/http"; +import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service"; +class MockAppStore { + getState() { + return { + global: { + 'drawingBoardStatus': DrawingBoardModes.CREATE + } + } + } +} + +describe('VFModule Model Info', () => { + let injector; + let _dynamicInputsService : DynamicInputsService; + let _sharedTreeService : SharedTreeService; + let vfModuleModel: VFModuleModelInfo; + let _dialogService : DialogService; + let _vfModulePopupService : VfModulePopuopService; + let _iframeService : IframeService; + let _componentInfoService : ComponentInfoService; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + DynamicInputsService, + DialogService, + VfModulePopuopService, + SharedTreeService, + IframeService, + {provide: NgRedux, useClass: MockAppStore}, + MockNgRedux, + AaiService, + HttpClient, + HttpHandler, + FeatureFlagsService, + ComponentInfoService + ] + }); + await TestBed.compileComponents(); + + injector = getTestBed(); + _sharedTreeService = injector.get(SharedTreeService); + _componentInfoService = injector.get(ComponentInfoService) + vfModuleModel = new VFModuleModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vfModulePopupService, _iframeService, MockNgRedux.getInstance(),_componentInfoService); + + })().then(done).catch(done.fail)); + + + + test('VFModuleModelInfo should be defined', () => { + expect(VFModuleModelInfo).toBeDefined(); + }); + + test('VnfModelInfo should defined extra details', () => { + expect(vfModuleModel.name).toEqual('vfModules'); + expect(vfModuleModel.type).toEqual('Module'); + }); + + test('isEcompGeneratedNaming should return true if vnf has isEcompGeneratedNaming is "true" ', () => { + let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, { + properties: { + ecomp_generated_naming: 'true' + } + }); + expect(isEcompGeneratedNaming).toBeTruthy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => { + let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, { + properties: { + ecomp_generated_naming: 'false' + } + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => { + let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, { + properties: { + } + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + + test('getTooltip should return "VFModule"', () => { + let tooltip: string = vfModuleModel.getTooltip(); + expect(tooltip).toEqual('VFmodule'); + }); + + test('getType should return "VFModule"', () => { + let tooltip: string = vfModuleModel.getType(); + expect(tooltip).toEqual('VFmodule'); + }); + + test('getNextLevelObject should return null', () => { + let nextLevel = vfModuleModel.getNextLevelObject(); + expect(nextLevel).toBeNull(); + }); + + test('getModel should return Module model', () => { + let model = vfModuleModel.getModel('2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1',{}, getServiceHierarchy()); + expect(model.uuid).toEqual('25284168-24bb-4698-8cb4-3f509146eca5'); + }); + + test('showNodeIcons should return false false if reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + parent : { + data : { + id : 'vnfId', + name : 'vnfName' + } + }, + data : { + id : 'vnfId', + name : 'vnfName' + } + }; + _sharedTreeService.setSelectedVNF({ + data : { + id : 'vfModuleId', + name : 'VfModuleName' + } + }); + jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue([]); + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + 'vnfName' : { + 'properties' : { + 'max_instances' : 1 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'vnfId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + + } + } + } + } + } + }); + + let result = vfModuleModel.showNodeIcons(node, serviceId); + expect(result).toEqual(new AvailableNodeIcons(false , false)); + }); + + test('showNodeIcons should return true, false if reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + data : { + id : 'vfModuleId', + name : 'vfModuleName' + }, + parent : { + data : { + id : 'vnfId', + name : 'vnfName' + } + } + }; + jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue('vnfName'); + jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue(['vnfName']); + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + 'vnfName' : { + 'properties' : { + 'max_instances' : 1 + } + } + }, + 'vfModules' : { + 'vfModuleName' : { + 'properties' : { + maxCountInstances : 1 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'vnfId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + 'originalName' : 'vnfName', + 'vfModules' : { + 'vfModuleName' : { + + } + } + } + } + } + } + } + }); + + let result = vfModuleModel.showNodeIcons(node, 'servicedId'); + expect(result).toEqual(new AvailableNodeIcons(true , false)); + }); + + + test('showNodeIcons should return false, true if reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + data : { + id : 'vfModuleId', + name : 'vfModuleName' + }, + parent : { + data : { + id : 'vnfId', + name : 'vnfName' + } + } + }; + jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue('vnfName'); + jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue(['vnfName']); + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + 'vnfName' : { + 'properties' : { + 'max_instances' : 1 + } + } + }, + 'vfModules' : { + 'vfModuleName' : { + 'properties' : { + maxCountInstances : 2 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'vnfId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + 'originalName' : 'vnfName', + 'vfModules' : { + 'vfModuleName' : { + + } + } + } + } + } + } + } + }); + + let result = vfModuleModel.showNodeIcons(node, 'servicedId'); + expect(result).toEqual(new AvailableNodeIcons(true , false)); + }); + + + test('getOptionalVNFs should instance if exist', ()=>{ + let serviceId : string = 'servicedId'; + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + 'vnfName' : { + 'properties' : { + 'max_instances' : 1 + } + } + }, + 'vfModules' : { + 'vfModuleName' : { + 'properties' : { + maxCountInstances : 2 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'vnfId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + 'originalName' : 'vnfName', + 'vfModules' : { + 'vfModuleName' : { + + } + } + } + } + } + } + } + }); + + let node = { + data : { + id : 'vfModuleId', + name : 'vfModuleName' + }, + parent : { + data : { + id : 'vnfId', + name : 'vnfName' + } + } + }; + let result = vfModuleModel.getOptionalVNFs(serviceId , 'vnfName'); + expect(result.length).toEqual(1); + }); + + test('getNodeCount should return number of nodes', ()=>{ + let serviceId : string = 'servicedId'; + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + 'vnfName' : { + 'properties' : { + 'max_instances' : 1 + } + } + }, + 'vfModules' : { + 'vfModuleName' : { + 'properties' : { + maxCountInstances : 2 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'vnfId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + 'action': 'Create', + 'originalName' : 'vnfName', + 'vfModules' : { + 'vfModuleName' : { + 'vnfModuleName_111': { + 'action': 'Create', + 'modelInfo' : { + modelVersionId : 'vfModuleId' + } + } + } + } + } + } + } + } + } + }); + + let node = { + data : { + id : 'vfModuleId', + name : 'vfModuleName', + 'action': 'Create', + }, + parent : { + data : { + id : 'vnfId', + name : 'vnfName', + 'action': 'Create', + } + } + }; + let result = vfModuleModel.getNodeCount(node , serviceId); + expect(result).toEqual(1); + }); + + + test('onClickAdd should open message box if no vnfStoreKey', ()=>{ + jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue(null); + jest.spyOn(vfModuleModel, 'getDefaultVNF').mockReturnValue(null); + jest.spyOn(MessageBoxService.openModal, 'next'); + vfModuleModel.onClickAdd({}, 'serviceId'); + expect(MessageBoxService.openModal.next).toHaveBeenCalled(); + }); + + test('getMenuAction: showAuditInfoVfModule', ()=>{ + jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true); + + let node = { + data : { + "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "action": "Create", + "isFailed": true, + } + }; + let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450"; + let result = vfModuleModel.getMenuAction(node, serviceModelId); + spyOn(result['showAuditInfo'], 'method'); + expect(result['showAuditInfo']).toBeDefined(); + expect(result['showAuditInfo'].visible(node)).toBeTruthy(); + expect(result['showAuditInfo'].enable(node)).toBeTruthy(); + result['showAuditInfo']['method'](node, serviceModelId); + expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + test('Info for vfModule should be correct', () => { + const model = getVFModule(); + const instance = getVFModuleInstance(); + let actualVNFInfo = vfModuleModel.getInfoForVFModule(model,instance); + let expectedVNFInfo = [ + ModelInformationItem.createInstance('Type', 'vfModule'), + ModelInformationItem.createInstance('Model Version', '2'), + ModelInformationItem.createInstance('Model Customization ID','55b1be94-671a-403e-a26c-667e9c47d091'), + ModelInformationItem.createInstance('Instance ID', '2c1ca484-cbc2-408b-ab86-25a2c15ce280'), + ModelInformationItem.createInstance('In Maintenance', true), + ModelInformationItem.createInstance('Base Module', false), + ModelInformationItem.createInstance('Min Instances', 0), + ModelInformationItem.createInstance('Initial Instances Count',0) + ]; + expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VFMODULE, expectedVNFInfo, [])); + }); + + function getVFModule(){ + return { + "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830", + "invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b", + "customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091", + "description":null, + "name":"VfVmee..vmme_vlc..module-1", + "version":"2", + "modelCustomizationName":"VfVmee..vmme_vlc..module-1", + "properties":{ + "minCountInstances":0, + "maxCountInstances":null, + "initialCount":0, + "vfModuleLabel":"vmme_vlc", + "baseModule":false + }, + "inputs":{}, + "volumeGroupAllowed":false + }; + } + + function getVFModuleInstance() { + return { + "action":"None", + "instanceName":"ss820f_0918_db", + "instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280", + "orchStatus":"deleted", + "productFamilyId":null, + "lcpCloudRegionId":null, + "tenantId":null, + "modelInfo":{ + "modelCustomizationName":"VfVmee..vmme_vlc..module-1", + "modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9", + "modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750", + "modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830", + "modelType":"vfModule" + }, + "instanceType":null, + "provStatus":null, + "inMaint":true, + "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830", + "originalName":"VfVmee..vmme_vlc..module-1", + "legacyRegion":null, + "lineOfBusiness":null, + "platformName":null, + "trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008", + "isBase":false, + "volumeGroupName":null + }; + } + + + function getServiceHierarchy(){ + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} + } + } +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts new file mode 100644 index 000000000..7db3d906e --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts @@ -0,0 +1,388 @@ +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {ILevelNodeInfo} from "../basic.model.info"; +import * as _ from "lodash"; +import {VNFModel} from "../../../../../shared/models/vnfModel"; +import {SharedTreeService} from "../../shared.tree.service"; +import {VfModuleTreeNode} from "../../../../../shared/models/vfModuleTreeNode"; +import {VfModuleInstance} from "../../../../../shared/models/vfModuleInstance"; +import {VfModule} from "../../../../../shared/models/vfModule"; +import {NgRedux} from "@angular-redux/store"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import { + GenericFormPopupComponent, + PopupType +} from "../../../../../shared/components/genericFormPopup/generic-form-popup.component"; +import {DialogService} from "ng2-bootstrap-modal"; +import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {AppState} from "../../../../../shared/store/reducers"; +import {MessageBoxData} from "../../../../../shared/components/messageBox/messageBox.data"; +import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import { + deleteActionVfModuleInstance, + removeVfModuleInstance, + undoDeleteVfModuleInstance, + updateVFModulePosition +} from "../../../../../shared/storeUtil/utils/vfModule/vfModule.actions"; +import {ComponentInfoService} from "../../../component-info/component-info.service"; +import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model"; +import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component"; + +export class VFModuleModelInfo implements ILevelNodeInfo { + constructor(private _dynamicInputsService: DynamicInputsService, + private _sharedTreeService: SharedTreeService, + private _dialogService: DialogService, + private _vfModulePopupService: VfModulePopuopService, + private _iframeService: IframeService, + private _store: NgRedux, + private _componentInfoService: ComponentInfoService) { + } + + name: string = 'vfModules'; + type: string = 'Module'; + typeName: string = 'M'; + + /*********************************************************** + * return if user should provide instance name or not. + * get info from parent (VNF) + * @param currentModel - current Model object + * @param parentModel - current parent Model object + ************************************************************/ + isEcompGeneratedNaming(currentModel, parentModel): boolean { + const ecompGeneratedNaming = !_.isNil(parentModel.properties) ? parentModel.properties.ecomp_generated_naming : undefined; + return ecompGeneratedNaming === "true"; + } + + /*********************************************************** + * return model dynamic inputs + * @param currentModel - current Model object + ************************************************************/ + updateDynamicInputsDataFromModel = (currentModel): any => { + let displayInputs = _.isNil(currentModel) ? [] : currentModel.inputs; + return _.isEmpty(displayInputs) ? [] : this._dynamicInputsService.getArbitraryInputs(displayInputs); + }; + + /*********************************************************** + * return vfModule model + * @param vfModuleModelId - current Model id + * @param instance + * @param serviceHierarchy - serviceHierarchy + ************************************************************/ + getModel = (vfModuleModelId: string, instance, serviceHierarchy): any => { + if (!_.isNil(serviceHierarchy)) { + if (!_.isNil(serviceHierarchy[this.name]) && !_.isNil(serviceHierarchy[this.name][vfModuleModelId])) { + return serviceHierarchy[this.name][vfModuleModelId]; + } + } + return {}; + }; + + createNode(instance: VfModuleInstance, currentModel: VfModule, parentModel: VNFModel, modelName: string, index: number): VfModuleTreeNode { + let dynamicModelName = Object.keys(instance)[index]; + instance = instance[Object.keys(instance)[index]]; + const isEcompGeneratedNaming: boolean = this.isEcompGeneratedNaming(currentModel, parentModel); + + const dynamicInputs = this.updateDynamicInputsDataFromModel(currentModel); + let newVfModule: VfModuleTreeNode = new VfModuleTreeNode(instance, currentModel, modelName, dynamicInputs, isEcompGeneratedNaming, dynamicModelName); + + newVfModule.missingData = this._sharedTreeService.hasMissingData(instance, newVfModule.dynamicInputs, isEcompGeneratedNaming, []); + newVfModule.typeName = this.typeName; + newVfModule.menuActions = this.getMenuAction(newVfModule, currentModel.uuid); + newVfModule.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed; + newVfModule.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: ""; + + newVfModule = this._sharedTreeService.addingStatusProperty(newVfModule); + return newVfModule; + } + + createInstanceTreeNode(instance: VfModuleInstance, currentModel: VfModule, parentModel: VNFModel, modelName: string): VfModuleTreeNode | VfModuleTreeNode[] { + let numberOfChilds = Object.keys(instance).length; + if (numberOfChilds > 1) { + let result: VfModuleTreeNode[] = []; + for (let i = 0; i < numberOfChilds; i++) { + result.push(this.createNode(instance, currentModel, parentModel, modelName, i)); + } + return result; + } else { + return this.createNode(instance, currentModel, parentModel, modelName, 0); + } + } + + /*********************************************************** + * return next level object (null because is last level) + ************************************************************/ + getNextLevelObject(): any { + return null; + } + + getTooltip = (): string => 'VFmodule'; + + getType = (): string => 'VFmodule'; + + /*********************************************************** + * return if instance has missing data + * @param instance - vnf instance + * @param dynamicInputs + * @param isEcompGeneratedNaming + ************************************************************/ + hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean { + return this._sharedTreeService.hasMissingData(instance, dynamicInputs, isEcompGeneratedNaming, []); + } + + + /*********************************************************** + * return if instance has missing data + * @param node - VFModule node + * @param serviceModelId - current service id + ************************************************************/ + onClickAdd(node: ITreeNode, serviceModelId: string): void { + const vnfStoreKey = this._sharedTreeService.getSelectedVNF() || this.getDefaultVNF(node.parent, serviceModelId); + if (vnfStoreKey) { + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.VF_MODULE, + uuidData: { + serviceId: serviceModelId, + modelName: node.data.name, + vFModuleStoreKey: null, + vnfStoreKey: vnfStoreKey, + modelId: node.data.modelId, + type: node.data.type, + popupService: this._vfModulePopupService + }, + node: node, + isUpdateMode: false + }); + } else { + let messageBoxData: MessageBoxData = new MessageBoxData( + "Select a parent", // modal title + "There are multiple instances on the right side that can contain this vf-module Please select the VNF instance, to add this vf-module to, on the right side and then click the + sign", + "warning", + "md", + [ + {text: "Close", size: "medium", closeModal: true} + ]); + MessageBoxService.openModal.next(messageBoxData); + } + } + + getDefaultVNF(node: ITreeNode, serviceModelId: string): string { + let keys = _.keys(_.pickBy(this._store.getState().service.serviceInstance[serviceModelId].vnfs, vnf => { + return (vnf.originalName == node.data.name); + })); + return keys.length === 1 ? this._store.getState().service.serviceInstance[serviceModelId].vnfs[keys[0]].vnfStoreKey : null; + } + + /*********************************************************** + * return number of existing instances (in all VNF's) + * @param node - VfModule node + * @param serviceModelId - current service id + ************************************************************/ + getNodeCount(node: ITreeNode, serviceModelId: string): number { + let count: number = 0; + if (!_.isNil(this._store.getState().service.serviceInstance) && !_.isNil(this._store.getState().service.serviceInstance[serviceModelId])) { + const vnfs = this._store.getState().service.serviceInstance[serviceModelId].vnfs; + + for (let vnfKey in vnfs) { + count += this.countNumberOfVFModule(vnfs[vnfKey], node); + } + return count; + } + return count; + } + + + countNumberOfVFModule(vnf, node): number { + let count = 0; + for (let vfModuleKey in vnf['vfModules']) { + for (let vfModule in vnf['vfModules'][vfModuleKey]) { + if (vnf['vfModules'][vfModuleKey][vfModule]['modelInfo'].modelCustomizationId === node.data.modelUniqueId) { + const vfModuleObj = vnf['vfModules'][vfModuleKey][vfModule]; + if (!(!_.isNil(vfModuleObj) && !_.isNil(vfModuleObj.action) && vfModuleObj.action.split('_').pop() === 'Delete')) count++; + } + } + } + return count; + } + + getCountVFModuleOfSelectedVNF(node: ITreeNode, vnfStoreKey: string, serviceModelId: string): number { + let count: number = 0; + if (!_.isNil(this._store.getState().service.serviceInstance) && !_.isNil(this._store.getState().service.serviceInstance[serviceModelId])) { + const vnfs = this._store.getState().service.serviceInstance[serviceModelId].vnfs; + + for (let vnfKey in vnfs) { + count += this.countNumberOfVFModule(vnfs[vnfKey], node); + } + return count; + } + return count; + } + + + /*********************************************************** + * should show node icon + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { + const selectedVNF: string = this._sharedTreeService.getSelectedVNF(); + if (selectedVNF) { + return this.showVFModuleOnSelectedVNF(node, selectedVNF, serviceModelId); + } else { + const optionalSelected = this.getOptionalVNFs(serviceModelId, node.parent.data.name); + if (optionalSelected.length === 1) { + return this.showVFModuleOnSelectedVNF(node, optionalSelected[0].vnfStoreKey, serviceModelId); + } else { + return new AvailableNodeIcons(false, false); + } + } + } + + + showVFModuleOnSelectedVNF(node: ITreeNode, selectedVNF: string, serviceModelId: string): AvailableNodeIcons { + + if (!_.isNil(this._store.getState().service.serviceInstance[serviceModelId].vnfs[selectedVNF]) && node.parent.data.name === this._store.getState().service.serviceInstance[serviceModelId].vnfs[selectedVNF].originalName) { + const existingVFModules = this.getCountVFModuleOfSelectedVNF(node, selectedVNF, serviceModelId); + const reachedLimit = this.isVFModuleReachedLimit(node, this._store.getState().service.serviceHierarchy, serviceModelId, existingVFModules); + const showAddIcon = this._sharedTreeService.shouldShowAddIcon()&& !reachedLimit; + return new AvailableNodeIcons(showAddIcon, reachedLimit); + } + return new AvailableNodeIcons(false, false); + + } + + getOptionalVNFs(serviceUUID: string, vnfOriginalModelName: string): any[] { + let result = []; + if (!_.isNil(this._store.getState().service.serviceInstance) && !_.isNil(this._store.getState().service.serviceInstance[serviceUUID])) { + const serviceVNFsInstances = this._store.getState().service.serviceInstance[serviceUUID].vnfs; + for (let vnfKey in serviceVNFsInstances) { + if (serviceVNFsInstances[vnfKey].originalName === vnfOriginalModelName) { + serviceVNFsInstances[vnfKey].vnfStoreKey = vnfKey; + result.push(serviceVNFsInstances[vnfKey]); + } + } + } + return result; + } + + + /************************************************ + return number of instances with action Delete + @type: vnfs networks, vngGroups (only vfModule) + @node : node model from the left tree + ************************************************/ + getExistingInstancesWithDeleteMode(node, serviceModelId: string, selectedVNF: string): number { + const existingInstances = this._store.getState().service.serviceInstance[serviceModelId].vnfs[selectedVNF].vfModules; + let counter = 0; + const modelUuid = node.data.uuid; + + if (!_.isNil(existingInstances)) { + for (let instanceKey in existingInstances) { + let size = Object.keys(existingInstances[instanceKey]).length; + for (let i = 0; i < size; i++) { + let vfModuleDynamicKey = Object.keys(existingInstances[instanceKey])[i]; + if (!_.isNil(existingInstances[instanceKey][vfModuleDynamicKey].action)) { + if (existingInstances[instanceKey][vfModuleDynamicKey]['uuid'] === modelUuid && existingInstances[instanceKey][vfModuleDynamicKey].action.split('_').pop() === 'Delete') { + counter++; + } + } + } + + } + } + return counter; + } + + isVFModuleReachedLimit(node: any, serviceHierarchy: any, serviceModelId: string, currentNodeCount: number): boolean { + let maxNodes: number = 1; + let vnfModules = serviceHierarchy[serviceModelId].vfModules; + if (vnfModules[node.data.name]) { + maxNodes = vnfModules[node.data.name].properties.maxCountInstances || 1; + } + return !(maxNodes > currentNodeCount); + + } + + getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } { + return { + edit: { + method: (node, serviceModelId) => { + this._iframeService.addClassOpenModal('content'); + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.VF_MODULE, + uuidData: { + serviceId: serviceModelId, + modelName: node.data.modelName, + vFModuleStoreKey: node.data.dynamicModelName, + vnfStoreKey: node.parent.data.vnfStoreKey, + modelId: node.data.modelId, + type: node.data.type, + popupService: this._vfModulePopupService + }, + node: node, + isUpdateMode: true + }); + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + }, + showAuditInfo: { + method: (node, serviceModelId) => { + let instance = this._store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules[node.data.modelName][node.data.modelVersionId]; + this._sharedTreeService.openAuditInfoModal(node, serviceModelId, instance, 'VFMODULE', this); + }, + visible: (node) => this._sharedTreeService.shouldShowAuditInfo(node), + enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node) + }, + remove: { + method: (node, serviceModelId) => this._store.dispatch(removeVfModuleInstance(node.data.modelName, serviceModelId, node.parent.data.modelName, node.parent.data.vnfStoreKey, node.data.dynamicModelName)), + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + }, + delete: { + method: (node, serviceModelId) => { + this._store.dispatch(deleteActionVfModuleInstance(node.data.dynamicModelName, node.parent.data.vnfStoreKey, serviceModelId)) + }, + visible: (node) => this._sharedTreeService.shouldShowDelete(node), + enable: (node) => this._sharedTreeService.shouldShowDelete(node) + }, + undoDelete: { + method: (node, serviceModelId) => { + this._store.dispatch(undoDeleteVfModuleInstance(node.data.dynamicModelName, node.parent.data.vnfStoreKey, serviceModelId)) + }, + visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node), + enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && this._sharedTreeService.shouldShowDelete(node.parent) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId) + } + }; + + + } + + updatePosition(that , node, instanceId, parentStoreKey): void { + that.store.dispatch(updateVFModulePosition(node, instanceId, parentStoreKey)); + } + + + getNodePosition(instance, deepDynamicName): number { + return (!_.isNil(instance) && !_.isNil(instance[deepDynamicName])) ? instance[deepDynamicName].position : null; + } + + onSelectedNode(node: ITreeNode): void { + } + + getInfoForVFModule(model, instance): ComponentInfoModel { + let modelInfoItems: ModelInformationItem[] = []; + if (model && !_.isNil(model.properties)) + { + modelInfoItems = [ + ModelInformationItem.createInstance("Base Module", model.properties.baseModule), + ModelInformationItem.createInstance("Min Instances", model.properties.minCountInstances), + ModelInformationItem.createInstance("Max Instances", model.properties.maxCountInstances), + ModelInformationItem.createInstance("Initial Instances Count", model.properties.initialCount) + ]; + } + return this._componentInfoService.addGeneralInfoItems(modelInfoItems, ComponentInfoType.VFMODULE, model, instance); + } + + +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts new file mode 100644 index 000000000..10c8e399c --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts @@ -0,0 +1,1671 @@ +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {VnfModelInfo} from "./vnf.model.info"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {VFModuleModelInfo} from "../vfModule/vfModule.model.info"; +import {VNFModel} from "../../../../../shared/models/vnfModel"; +import {SharedTreeService} from "../../shared.tree.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../../shared/store/reducers"; +import {DefaultDataGeneratorService} from "../../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {DialogService} from "ng2-bootstrap-modal"; +import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {VnfPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {DuplicateService} from "../../../duplicate/duplicate.service"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {ServiceInfoService} from "../../../../../shared/server/serviceInfo/serviceInfo.service"; +import {AuditInfoModalComponent} from "../../../../../shared/components/auditInfoModal/auditInfoModal.component"; +import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component"; +import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model"; +import {ComponentInfoService} from "../../../component-info/component-info.service"; +import {AaiService} from "../../../../../shared/services/aaiService/aai.service"; +import {HttpClient, HttpHandler} from "@angular/common/http"; +import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service"; + +describe('Vnf Model Info', () => { + let injector; + let httpMock: HttpTestingController; + let _dynamicInputsService : DynamicInputsService; + let _sharedTreeService : SharedTreeService; + let _serviceInfoService: ServiceInfoService; + let _defaultDataGeneratorService : DefaultDataGeneratorService; + let _dialogService : DialogService; + let _vfModulePopupService : VfModulePopuopService; + let _vnfPopupService : VnfPopupService; + let _duplicateService : DuplicateService; + let _iframeService : IframeService; + let _componentInfoService : ComponentInfoService; + + let _store : NgRedux; + let vnfModel: VnfModelInfo; + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + MockNgRedux, + DynamicInputsService, + DialogService, + VfModulePopuopService, + VnfPopupService, + DefaultDataGeneratorService, + SharedTreeService, + DuplicateService, + AaiService, + HttpClient, + HttpHandler, + FeatureFlagsService, + ComponentInfoService, + IframeService] + }).compileComponents(); + + injector = getTestBed(); + _sharedTreeService = injector.get(SharedTreeService); + _store = injector.get(NgRedux); + _componentInfoService = injector.get(ComponentInfoService); + + vnfModel = new VnfModelInfo( + _dynamicInputsService, + _sharedTreeService, + _defaultDataGeneratorService, + _dialogService, + _vnfPopupService, + _vfModulePopupService, + _duplicateService, + null, + _iframeService, + _componentInfoService, + _store); + + + }); + + test('VnfModelInfo should be defined', () => { + expect(VnfModelInfo).toBeDefined(); + }); + + test('VnfModelInfo should defined extra details', () => { + expect(vnfModel.name).toEqual('vnfs'); + expect(vnfModel.type).toEqual('VNF'); + expect(vnfModel.childName).toEqual('vfModules'); + expect(vnfModel.childType).toEqual('VFModuleModelInfo'); + }); + + test('isEcompGeneratedNaming should return true if isEcompGeneratedNaming is "true" ', () => { + let isEcompGeneratedNaming: boolean = vnfModel.isEcompGeneratedNaming({ + properties: { + ecomp_generated_naming: 'true' + } + }); + expect(isEcompGeneratedNaming).toBeTruthy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => { + let isEcompGeneratedNaming: boolean = vnfModel.isEcompGeneratedNaming({ + properties: { + ecomp_generated_naming: 'false' + } + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => { + let isEcompGeneratedNaming: boolean = vnfModel.isEcompGeneratedNaming({ + properties: { + } + }); + expect(isEcompGeneratedNaming).toBeFalsy(); + }); + + + test('getTooltip should return "VF"', () => { + let tooltip: string = vnfModel.getTooltip(); + expect(tooltip).toEqual('VF'); + }); + + test('getType should return "VF"', () => { + let tooltip: string = vnfModel.getType(); + expect(tooltip).toEqual('VF'); + }); + + test('getNextLevelObject should vfModule level object', () => { + let nextLevel: VFModuleModelInfo = vnfModel.getNextLevelObject(); + expect(nextLevel.type).toEqual('Module'); + }); + + test('getModel should return VNF model', () => { + let model: VNFModel = vnfModel.getModel('2017-388_ADIOD-vPE 1', { + originalName : '2017-388_ADIOD-vPE 1' + }, getServiceHierarchy()); + expect(model.type).toEqual('VF'); + }); + + test('showNodeIcons should return false if reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + data : { + id : 'vnfId', + name : 'vnfName', + modelCustomizationId : "modelCustomizationId", + modelUniqueId: "modelCustomizationId" + } + }; + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global:{}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + modelCustomizationId : "modelCustomizationId", + 'modelInfo': { + modelCustomizationId : "modelCustomizationId" + }, + 'vnfName' : { + 'properties' : { + 'max_instances' : 1 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'modelCustomizationId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + + } + } + } + } + } + }); + + let result = vnfModel.showNodeIcons(node, serviceId); + expect(result).toEqual(new AvailableNodeIcons(false , true)); + }); + + test('showNodeIcons should return true if not reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + data : { + id : 'vnfId', + name : 'vnfName' + } + }; + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global:{ + drawingBoardStatus: "EDIT" + }, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + 'vnfName' : { + 'properties' : { + 'max_instances' : 2 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'vnfId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + + } + } + } + } + } + }); + + let result = vnfModel.showNodeIcons(node, serviceId); + expect(result).toEqual(new AvailableNodeIcons(true , false)); + }); + + test('getNodeCount should return number of nodes', ()=>{ + let serviceId : string = 'servicedId'; + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfs' : { + 'vnfName' : { + 'properties' : { + 'max_instances' : 1 + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVNFCounterMap' : { + 'modelCustomizationId' : 1 + }, + 'vnfs' : { + 'vnfName' :{ + 'originalName' : 'vnfName' + } + } + } + } + } + }); + + let node = { + data : { + id : 'vnfId', + name : 'vnfName', + modelCustomizationId : "modelCustomizationId", + modelUniqueId: "modelCustomizationId" + } + }; + let result = vnfModel.getNodeCount(node , serviceId); + expect(result).toEqual(1); + + node.data.modelCustomizationId = 'vnfId_notExist'; + node.data.modelUniqueId = 'vnfId_notExist'; + result = vnfModel.getNodeCount(node , serviceId); + expect(result).toEqual(0); + + result = vnfModel.getNodeCount(node , serviceId + '_notExist'); + expect(result).toEqual(0); + }); + + test('getMenuAction: edit', ()=>{ + let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"}; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + let result = vnfModel.getMenuAction(node, serviceModelId); + spyOn(result['edit'], 'method'); + expect(result['edit']).toBeDefined(); + expect(result['edit'].visible).toBeTruthy(); + expect(result['edit'].enable).toBeTruthy(); + result['edit']['method'](node, serviceModelId); + expect(result['edit']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + test('member should defined edit method', () => { + let node = { + data : { + "modelId": "d6557200-ecf2-4641-8094-5393ae3aae60", + "missingData": true, + "action": "None", + "inMaint": true, + "name": "jlfBwIks283yKlCD8", + "modelName": "VF_vMee 0", + "type": "VF", + "userProvidedNaming": false, + "networkStoreKey": "VF_vMee 0:004", + "vnfStoreKey": "VF_vMee 0:004", + "typeName": "VNF" + }, + type : 'VNF' + + }; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + + let menuActions = vnfModel.getMenuAction(node, serviceModelId); + spyOn(menuActions['edit'], 'method'); + expect(menuActions['edit']).toBeDefined(); + expect(menuActions['edit'].visible(node)).toBeFalsy(); + menuActions['edit']['method'](node, serviceModelId); + expect(menuActions['edit']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + test('getMenuAction: duplicate', ()=>{ + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + "global": { + "name": null, + "type": "UPDATE_DRAWING_BOARD_STATUS", + "drawingBoardStatus": "CREATE" + } + }); + let node = { + data : { + "modelId": "d6557200-ecf2-4641-8094-5393ae3aae60", + "missingData": true, + "action": "None", + "inMaint": true, + "name": "jlfBwIks283yKlCD8", + "modelName": "VF_vMee 0", + "type": "VF", + "isEcompGeneratedNaming":true, + "networkStoreKey": "VF_vMee 0:004", + "vnfStoreKey": "VF_vMee 0:004", + "typeName": "VNF" + }, + type : 'VNF' + + }; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + let menuActions = vnfModel.getMenuAction(node, serviceModelId); + spyOn(menuActions['duplicate'], 'method'); + expect(menuActions['duplicate']).toBeDefined(); + expect(menuActions['duplicate'].visible(node)).toBeFalsy(); + menuActions['duplicate']['method'](node, serviceModelId); + expect(menuActions['duplicate']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + test('getMenuAction: remove', ()=>{ + let node = { + data : { + "modelId": "d6557200-ecf2-4641-8094-5393ae3aae60", + "missingData": true, + "action": "None", + "inMaint": true, + "name": "jlfBwIks283yKlCD8", + "modelName": "VF_vMee 0", + "type": "VF", + "isEcompGeneratedNaming":true, + "networkStoreKey": "VF_vMee 0:004", + "vnfStoreKey": "VF_vMee 0:004", + "typeName": "VNF" + }, + type : 'VNF' + + }; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + + let menuActions = vnfModel.getMenuAction(node, serviceModelId); + spyOn(menuActions['remove'], 'method'); + expect(menuActions['remove']).toBeDefined(); + expect(menuActions['remove'].visible(node)).toBeFalsy(); + menuActions['remove']['method'](node, serviceModelId); + expect(menuActions['remove']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + test('getMenuAction: delete', ()=>{ + let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"}; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + let result = vnfModel.getMenuAction(node, serviceModelId); + spyOn(result['delete'], 'method'); + expect(result['delete']).toBeDefined(); + expect(result['delete'].visible).toBeTruthy(); + expect(result['delete'].enable).toBeTruthy(); + result['delete']['method'](node, serviceModelId); + expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + + test('getMenuAction: undoDelete', ()=>{ + let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"}; + let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60"; + let result = vnfModel.getMenuAction(node, serviceModelId); + spyOn(result['undoDelete'], 'method'); + expect(result['undoDelete']).toBeDefined(); + expect(result['undoDelete'].visible).toBeDefined(); + expect(result['undoDelete'].enable).toBeDefined(); + result['undoDelete']['method'](node, serviceModelId); + expect(result['undoDelete']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + test('getMenuAction: showAuditInfo', ()=>{ + jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true); + + jest.spyOn(AuditInfoModalComponent.openInstanceAuditInfoModal, 'next'); + let node = { + data : { + "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "action": "Create", + "type": "VF", + "vnfStoreKey": "MSOTEST103a", + "typeName": "VNF", + "isFailed": true, + }, + type : 'VNF' + + }; + let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450"; + let result = vnfModel.getMenuAction(node, serviceModelId); + spyOn(result['showAuditInfo'], 'method'); + expect(result['showAuditInfo']).toBeDefined(); + expect(result['showAuditInfo'].visible(node)).toBeTruthy(); + expect(result['showAuditInfo'].enable(node)).toBeTruthy(); + result['showAuditInfo']['method'](node, serviceModelId); + + // expect(AuditInfoModalComponent.openInstanceAuditInfoModal.next).toBeCalled(); + // expect(result['showAuditInfo'].method) + + }); + + test('Info for vnf should be correct', () => { + const model = getVNFModel(); + const instance = getVNFInstance(); + let actualVNFInfo = vnfModel.getInfoForVnf(model,instance); + let expectedVNFInfo = [ + ModelInformationItem.createInstance('Type', 'VF'), + ModelInformationItem.createInstance('Model Version', '2.0'), + ModelInformationItem.createInstance('Model Customization ID','91415b44-753d-494c-926a-456a9172bbb9'), + ModelInformationItem.createInstance('Instance ID', '66cbb3b5-c823-470c-9520-4e0b85112250'), + ModelInformationItem.createInstance('In Maintenance', true), + ModelInformationItem.createInstance('Min Instances', 0), + ModelInformationItem.createInstance('Max Instances',1) + ]; + expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VNF, expectedVNFInfo, [])); + }); + + test('Info for vnf in left side - model only - should be correct', () => { + const model = getVNFModel(); + let actualVNFInfo = vnfModel.getInfoForVnf(model,null); + let expectedVNFInfo = [ + ModelInformationItem.createInstance('Type', 'VF'), + ModelInformationItem.createInstance('Model Version', '2.0'), + ModelInformationItem.createInstance('Model Customization ID','91415b44-753d-494c-926a-456a9172bbb9'), + ModelInformationItem.createInstance('Min Instances', 0), + ModelInformationItem.createInstance('Max Instances',1) + ]; + expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VNF, expectedVNFInfo, [])); + }); + + function getVNFModel(){ + return { + "name":"VF_vMee", + "version":"2.0", + "description":"VSP_vMee", + "uuid":"d6557200-ecf2-4641-8094-5393ae3aae60", + "invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e", + "max":1, + "min":0, + "customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9", + "isEcompGeneratedNaming":true, + "type":"VF", + "modelCustomizationName":"VF_vMee 0", + "vfcInstanceGroups":{}, + "properties":{ + "gpb2_Internal2_mac":"00:11:22:EF:AC:DF", + "sctp-a-ipv6-egress_rule_application":"any", + "sctp-b-ipv6-egress_src_start_port":"0", + "Internal2_allow_transit":"true", + "sctp-b-IPv6_ethertype":"IPv6", + "ncb2_Internal1_mac":"00:11:22:EF:AC:DF", + "sctp-b-ingress_rule_protocol":"icmp","sctp-b-ingress_action":"pass", + "sctp-a-egress_rule_application":"any", + "sctp-b-ipv6-ingress-src_start_port":"0.0", + "ncb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-egress_src_addresses":"local", + "fsb_volume_size_0":"320.0", + "sctp-a-ipv6-ingress-dst_start_port":"0", + "sctp-a-ipv6-ingress_ethertype":"IPv4","sctp-b-ipv6-ingress_rule_application":"any", + "domain_name":"default-domain", + "sctp-a-egress_src_addresses":"local", + "sctp-b-egress-src_start_port":"0.0", + "sctp-a-ingress_rule_protocol":"icmp", + "sctp-b-display_name":"epc-sctp-b-ipv4v6-sec-group", + "sctp-b-ipv6-ingress-dst_end_port":"65535", + "sctp-a-ingress_ethertype":"IPv4", + "sctp-a-egress-src_start_port":"0.0", + "sctp-b-dst_subnet_prefix_v6":"::", + "nf_naming":"{ecomp_generated_naming=true}", + "sctp-a-ipv6-ingress_src_subnet_prefix":"0.0.0.0" + } + }; + + } + + function getVNFInstance(){ + return { + "action":"None", + "instanceName":"4O61SmpFAdCm1oVEs", + "instanceId":"66cbb3b5-c823-470c-9520-4e0b85112250", + "orchStatus":null, + "productFamilyId":null, + "lcpCloudRegionId":null, + "tenantId":null, + "modelInfo":{ + "modelCustomizationName":"VF_vMee 0", + "modelInvariantId":"vnf-instance-model-invariant-id", + "modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60", + "modelType":"vnf" + }, + "instanceType":"7538ifdSoTccmbEkr", + "provStatus":null, + "inMaint":true, + "uuid":"d6557200-ecf2-4641-8094-5393ae3aae60", + "originalName":"VF_vMee 0", + "legacyRegion":null, + "lineOfBusiness":null, + "platformName":null, + "trackById":"VF_vMee 0:004", + "vfModules":{ + "vf_vmee0..VfVmee..vmme_vlc..module-1":{ + "vf_vmee0..VfVmee..vmme_vlc..module-1:008":{ + "action":"None", + "instanceName":"ss820f_0918_db", + "instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280", + "orchStatus":"deleted", + "productFamilyId":null, + "lcpCloudRegionId":null, + "tenantId":null, + "modelInfo":{ + "modelCustomizationName":"VfVmee..vmme_vlc..module-1", + "modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9", + "modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750", + "modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830", + "modelType":"vfModule" + }, + "instanceType":null, + "provStatus":null, + "inMaint":true, + "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830", + "originalName":"VfVmee..vmme_vlc..module-1", + "legacyRegion":null, + "lineOfBusiness":null, + "platformName":null, + "trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008", + "isBase":false, + "volumeGroupName":null + } + }, + "dc229cd8-c132-4455-8517-5c1787c18b14":{ + "dc229cd8-c132-4455-8517-5c1787c18b14:009":{ + "action":"None", + "instanceName":"ss820f_0918_base", + "instanceId":"3ef042c4-259f-45e0-9aba-0989bd8d1cc5", + "orchStatus":"Assigned", + "productFamilyId":null, + "lcpCloudRegionId":null, + "tenantId":null, + "modelInfo":{ + "modelCustomizationId":"8ad8670b-0541-4499-8101-275bbd0e8b6a", + "modelInvariantId":"1e463c9c-404d-4056-ba56-28fd102608de", + "modelVersionId":"dc229cd8-c132-4455-8517-5c1787c18b14", + "modelType":"vfModule" + }, + "instanceType":null, + "provStatus":null, + "inMaint":false, + "uuid":"dc229cd8-c132-4455-8517-5c1787c18b14", + "originalName":null, + "legacyRegion":null, + "lineOfBusiness":null, + "platformName":null, + "trackById":"dc229cd8-c132-4455-8517-5c1787c18b14:009", + "isBase":true, + "volumeGroupName":null + } + } + }, + "networks":{ + + } + }; + } + + function getServiceHierarchy(){ + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} + } + } + +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts new file mode 100644 index 000000000..cec3fad1e --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts @@ -0,0 +1,332 @@ +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {ILevelNodeInfo} from "../basic.model.info"; +import {VFModuleModelInfo} from "../vfModule/vfModule.model.info"; +import {VNFModel} from "../../../../../shared/models/vnfModel"; +import {VnfInstance} from "../../../../../shared/models/vnfInstance"; +import {VnfTreeNode} from "../../../../../shared/models/vnfTreeNode"; +import {InputType} from "../../../../../shared/models/inputTypes"; +import {SharedTreeService} from "../../shared.tree.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../../shared/store/reducers"; +import {DefaultDataGeneratorService} from "../../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import { + GenericFormPopupComponent, + PopupType +} from "../../../../../shared/components/genericFormPopup/generic-form-popup.component"; +import {DialogService} from 'ng2-bootstrap-modal'; +import {VnfPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {DuplicateService} from "../../../duplicate/duplicate.service"; +import {DuplicateVnfComponent} from "../../../duplicate/duplicate-vnf.component"; +import {SdcUiServices} from "onap-ui-angular"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {changeInstanceCounter, removeInstance} from "../../../../../shared/storeUtil/utils/general/general.actions"; +import {MessageBoxData} from "../../../../../shared/components/messageBox/messageBox.data"; +import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service"; +import {ServiceInstanceActions} from "../../../../../shared/models/serviceInstanceActions"; +import { + deleteActionVnfInstance, + undoDeleteActionVnfInstance, + updateVnfPosition +} from "../../../../../shared/storeUtil/utils/vnf/vnf.actions"; +import * as _ from 'lodash'; +import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config"; +import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model"; +import {ComponentInfoService} from "../../../component-info/component-info.service"; +import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component"; + +export class VnfModelInfo implements ILevelNodeInfo { + constructor(private _dynamicInputsService: DynamicInputsService, + private _sharedTreeService: SharedTreeService, + private _defaultDataGeneratorService: DefaultDataGeneratorService, + private _dialogService: DialogService, + private _vnfPopupService: VnfPopupService, + private _vfModulePopupService: VfModulePopuopService, + private _duplicateService: DuplicateService, + private modalService: SdcUiServices.ModalService, + private _iframeService: IframeService, + private _componentInfoService: ComponentInfoService, + private _store: NgRedux) { + } + + name: string = 'vnfs'; + type: string = 'VNF'; + childName: string = 'vfModules'; + childType: string = 'VFModuleModelInfo'; + typeName: string = 'VNF'; + + /*********************************************************** + * return if user should provide instance name or not. + * @param currentModel - current Model object + ************************************************************/ + isEcompGeneratedNaming = (currentModel): boolean => { + const ecompGeneratedNaming = currentModel.properties.ecomp_generated_naming; + return ecompGeneratedNaming === "true"; + }; + + /*********************************************************** + * return model dynamic inputs + * @param currentModel - current Model object + ************************************************************/ + updateDynamicInputsDataFromModel = (currentModel): any => { + let displayInputs; + return _.isEmpty(displayInputs) ? [] : this._dynamicInputsService.getArbitraryInputs(displayInputs); + }; + + /*********************************************************** + * return vnf model + * @param vnfModelId - current Model id + * @param instance - vnf instance + * @param serviceHierarchy - serviceHierarchy + ************************************************************/ + getModel = (vnfModelId: string, instance: VnfInstance, serviceHierarchy): VNFModel => { + const originalModelName = instance.originalName ? instance.originalName : vnfModelId; + return new VNFModel(serviceHierarchy[this.name][originalModelName]); + }; + + + /*********************************************************** + * return vnf instance tree node + * @param instance - vnf instance + * @param model - vnf model + * @param parentModel + * @param storeKey - store key if exist + ************************************************************/ + createInstanceTreeNode = (instance: VnfInstance, model: VNFModel, parentModel, storeKey: string): VnfTreeNode => { + let node = new VnfTreeNode(instance, model, storeKey); + node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming); + node.typeName = this.typeName; + node.menuActions = this.getMenuAction(node, model.uuid); + node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed; + node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: ""; + node = this._sharedTreeService.addingStatusProperty(node); + return node; + }; + + /*********************************************************** + * return next level object (VFModule) + ************************************************************/ + getNextLevelObject = (): VFModuleModelInfo => { + return new VFModuleModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._vfModulePopupService, this._iframeService, this._store, this._componentInfoService); + }; + + /*********************************************************** + * return if instance has missing data + * @param instance - vnf instance + * @param dynamicInputs + * @param isEcompGeneratedNaming + ************************************************************/ + hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean { + return this._sharedTreeService.hasMissingData(instance, dynamicInputs, isEcompGeneratedNaming, [InputType.LCP_REGION, InputType.TENANT, InputType.PLATFORM]); + } + + getTooltip = (): string => 'VF'; + + getType = (): string => 'VF'; + + /*********************************************************** + * return if instance has missing data + * @param node - VNF node + * @param serviceModelId - current service id + ************************************************************/ + onClickAdd(node, serviceModelId: string): void { + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.VNF, + uuidData: { + serviceId: serviceModelId, + modelName: node.data.name, + vnfStoreKey: null, + modelId: node.data.modelVersionId, + type: node.data.type, + popupService: this._vnfPopupService + }, + node: node, + isUpdateMode: false + }) + } + + /*********************************************************** + * return number of existing instances + * @param node - VNF node + * @param serviceModelId - current service id + ************************************************************/ + getNodeCount(node: ITreeNode, serviceModelId: string): number { + let map = null; + if (!_.isNil(this._store.getState().service.serviceInstance[serviceModelId])) { + map = this._store.getState().service.serviceInstance[serviceModelId].existingVNFCounterMap || 0; + + if (!_.isNil(map)) { + let count = map[node.data.modelUniqueId] || 0; + count -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'vnfs'); + return count; + } + } + return 0; + } + + /*********************************************************** + * should show node icon + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { + let counter: number = !_.isNil(this._store.getState().service.serviceInstance[serviceModelId]) ? + (this._store.getState().service.serviceInstance[serviceModelId].existingVNFCounterMap[node.data.modelUniqueId] || 0) : 0; + counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'vnfs'); + + const properties = this._store.getState().service.serviceHierarchy[serviceModelId].vnfs[node.data.name].properties; + const maxInstances: number = !_.isNil(properties) ? (properties.max_instances || 1) : 1; + const isReachedLimit = !(maxInstances > counter); + const showAddIcon = this._sharedTreeService.shouldShowAddIcon() && !isReachedLimit; + return new AvailableNodeIcons(showAddIcon, isReachedLimit) + } + + getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } { + return { + edit: { + method: (node, serviceModelId) => { + this._iframeService.addClassOpenModal('content'); + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.VNF, + uuidData: { + serviceId: serviceModelId, + modelName: node.data.modelName, + vnfStoreKey: node.data.vnfStoreKey, + modelId: node.data.modelId, + type: node.data.type, + popupService: this._vnfPopupService + }, + node: node, + isUpdateMode: true + }); + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + }, + showAuditInfo: { + method: (node, serviceModelId) => { + const instance = this._store.getState().service.serviceInstance[serviceModelId].vnfs[node.data.vnfStoreKey]; + this._sharedTreeService.openAuditInfoModal(node, serviceModelId, instance, 'VNF', this); + }, + visible: (node) => this._sharedTreeService.shouldShowAuditInfo(node), + enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node) + }, + duplicate: { + method: (node, serviceModelId) => { + if (this._store.getState().global.flags['FLAG_DUPLICATE_VNF']) { + const storeKey = node.data.vnfStoreKey; + let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node); + this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent); + } + }, + visible: (node) => this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node), + enable: (node, serviceModelId) => this._duplicateService.isEnabled(node, this._store, serviceModelId) + }, + remove: { + method: (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + let storeKey: string = node.data.vnfStoreKey; + this._store.dispatch(removeInstance(node.data.vnfStoreKey, serviceModelId, storeKey, node)); + this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node)); + this._sharedTreeService.selectedVNF = null; + } else { + let messageBoxData: MessageBoxData = new MessageBoxData( + "Remove VNF", // modal title + "You are about to remove this VNF and all its children from this service. Are you sure you want to remove it?", + "warning", + "md", + [ + { + text: "Remove VNF", + size: "large", + callback: this.removeVnf.bind(this, node, serviceModelId), + closeModal: true + }, + {text: "Don’t Remove", size: "medium", closeModal: true} + ]); + + MessageBoxService.openModal.next(messageBoxData); + } + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + }, + delete: { + method: (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + this._store.dispatch(deleteActionVnfInstance(node.data.vnfStoreKey, serviceModelId)); + } else { + this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(node, serviceModelId, (node, serviceModelId) => { + this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => { + this._store.dispatch(deleteActionVnfInstance(node.data.vnfStoreKey, serviceModelId)); + }); + }); + } + }, + visible: (node) => this._sharedTreeService.shouldShowDelete(node), + enable: (node) => this._sharedTreeService.shouldShowDelete(node) + }, + undoDelete: { + method: (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + this._store.dispatch(undoDeleteActionVnfInstance(node.data.vnfStoreKey, serviceModelId)); + } else { + this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId) => { + this._store.dispatch(undoDeleteActionVnfInstance(node.data.vnfStoreKey, serviceModelId)); + }); + } + }, + visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node), + enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId) + } + } + } + + removeVnf(this, node, serviceModelId) { + this._store.dispatch(removeInstance(node.data.modelName, serviceModelId, node.data.vnfStoreKey, node)); + this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node)); + this._sharedTreeService.selectedVNF = null; + } + + /*********************************************************** + * should update node position inside the tree + * @param node - current ITrees node + ************************************************************/ + updatePosition(that, node, instanceId): void { + that.store.dispatch(updateVnfPosition(node, instanceId, node.vnfStoreKey)); + } + + /*********************************************************** + * return the position of the current node in the tree + * @param instance - current ITrees node instance + ************************************************************/ + getNodePosition(instance): number { + return !_.isNil(instance) ? instance.position : null; + } + + /*********************************************************** + * When user is click on some nod element + * @param node - current ITrees node + ************************************************************/ + onSelectedNode(node: ITreeNode): void { + ComponentInfoService.triggerComponentInfoChange.next(new ComponentInfoModel(ComponentInfoType.VNF,[], [])); + } + + getInfoForVnf(model, instance): ComponentInfoModel { + let modelInfoItems: ModelInformationItem[] = []; + if (model) { + modelInfoItems.push(ModelInformationItem.createInstance("Min Instances", model.min)); + modelInfoItems.push(ModelInformationItem.createInstance("Max Instances", model.max)); + } + if (instance) { + modelInfoItems.push(ModelInformationItem.createInstance("NF Type", instance.nfType)); + modelInfoItems.push(ModelInformationItem.createInstance("NF Role", instance.nfRole)); + } + return this._componentInfoService.addGeneralInfoItems(modelInfoItems, ComponentInfoType.VNF, model, instance); + + } + + +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts new file mode 100644 index 000000000..532a8fe17 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts @@ -0,0 +1,291 @@ + +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {VnfGroupingModelInfo} from "./vnfGrouping.model.info"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {SharedTreeService} from "../../shared.tree.service"; +import {VnfGroupPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import {DialogService} from "ng2-bootstrap-modal"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {VnfGroupModel} from "../../../../../shared/models/vnfGroupModel"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {ActivatedRoute} from "@angular/router"; +import {RouterTestingModule} from "@angular/router/testing"; +import {DrawingBoardModes} from "../../../drawing-board.modes"; + +describe('VnfGroupingModelInfo Model Info', () => { + let injector; + let _dialogService : DialogService; + let _vnfGroupPopupService : VnfGroupPopupService; + let _dynamicInputsService : DynamicInputsService; + let _sharedTreeService : SharedTreeService; + let _iframeService : IframeService; + let vnfGroupModel: VnfGroupingModelInfo; + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule, RouterTestingModule], + providers: [ + DialogService, + VnfGroupPopupService, + DynamicInputsService, + SharedTreeService, + IframeService, + MockNgRedux] + }); + await TestBed.compileComponents(); + injector = getTestBed(); + _sharedTreeService = injector.get(SharedTreeService); + + vnfGroupModel = new VnfGroupingModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vnfGroupPopupService, _iframeService, MockNgRedux.getInstance()); + })().then(done).catch(done.fail)); + + + test('VnfGroupingModelInfo should be defined', () => { + expect(vnfGroupModel).toBeDefined(); + }); + + test('VnfGroupingModelInfo should defined extra details', () => { + expect(vnfGroupModel.name).toEqual('vnfGroups'); + expect(vnfGroupModel.type).toEqual('VnfGroup'); + }); + + test('isEcompGeneratedNaming should return true if vnf group has isEcompGeneratedNaming is "true" ', () => { + let isEcompGeneratedNaming : boolean = vnfGroupModel.isEcompGeneratedNaming({ + properties: { + ecomp_generated_naming: 'true' + } + }); + expect(isEcompGeneratedNaming).toBeTruthy(); + }); + + + test('getTooltip should return "vnfGrouping"', () => { + let tooltip: string = vnfGroupModel.getTooltip(); + expect(tooltip).toEqual('VnfGroup'); + }); + + test('getType should return "vnfGrouping"', () => { + let tooltip: string = vnfGroupModel.getType(); + expect(tooltip).toEqual('VnfGroup'); + }); + + test('getNextLevelObject should return null', () => { + let nextLevel = vnfGroupModel.getNextLevelObject(); + expect(nextLevel).not.toBeNull(); + }); + + + test('showNodeIcons should return true if not reachLimit of max', ()=>{ + let serviceId : string = 'servicedId'; + let node = { + data : { + id : 'vnfGroupId', + name : 'vnfGroupName' + } + }; + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global:{ + drawingBoardStatus: "EDIT" + }, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfGroups' : { + 'vnfGroupName' : { + 'properties' : { + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVnfGroupCounterMap' : { + 'vnfGroupId' : 1 + }, + 'vnfGroups' : { + 'vnfGroupName' :{ + + } + } + } + } + } + }); + + let result = vnfGroupModel.showNodeIcons(node, serviceId); + expect(result).toEqual(new AvailableNodeIcons(true , false)); + }); + + test('getNodeCount should return number of nodes', ()=>{ + let serviceId : string = 'servicedId'; + jest.spyOn(_sharedTreeService, 'getExistingInstancesWithDeleteMode').mockReturnValue(0); + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global : {}, + service : { + serviceHierarchy : { + 'servicedId' : { + 'vnfGroups' : { + 'vnfGroupName' : { + 'properties' : { + } + } + } + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVnfGroupCounterMap' : { + 'vnfGroupId' : 1 + }, + 'vnfGroups' : { + 'vnfGroupName' :{ + 'originalName' : 'vnfGroupName' + } + } + } + } + } + }); + + let node = { + data : { + id : 'vnfGroupId', + name : 'vnfGroupName', + modelUniqueId: 'vnfGroupId', + } + }; + let result = vnfGroupModel.getNodeCount(node , serviceId); + expect(result).toEqual(1); + + node.data.modelUniqueId = 'vnfGroupId_notExist'; + result = vnfGroupModel.getNodeCount(node , serviceId); + expect(result).toEqual(0); + + result = vnfGroupModel.getNodeCount(node , serviceId + '_notExist'); + expect(result).toEqual(0); + }); + + test('getModel should return VnfGroup model', () => { + let model: VnfGroupModel = vnfGroupModel.getModel('ResourceGroup0', { + originalName : 'ResourceGroup0' + }, getServiceHierarchy()); + expect(model.type).toEqual('VnfGroup'); + }); + + test('getMenuAction: showAuditInfoVnfGroup', ()=>{ + + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({ + global: { + "drawingBoardStatus": DrawingBoardModes.RETRY + } + }); + jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true); + let node = { + data : { + "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "action": "Create", + "isFailed": true, + } + }; + let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450"; + let result = vnfGroupModel.getMenuAction(node, serviceModelId); + spyOn(result['showAuditInfo'], 'method'); + expect(result['showAuditInfo']).toBeDefined(); + expect(result['showAuditInfo'].visible(node)).toBeTruthy(); + expect(result['showAuditInfo'].enable(node)).toBeTruthy(); + result['showAuditInfo']['method'](node, serviceModelId); + expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId); + }); + + function getServiceHierarchy(){ + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfGroups": { + "ResourceGroup0": { + "type": "VnfGroup", + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "version": "1", + "name": "ResourceGroup0", + "modelCustomizationName": "ResourceGroup0", + "properties": { + "contained_resource_type": "VF", + "role": "SERVICE-ACCESS", + "function": "DATA", + "description": "DDD0", + "type": "LOAD-GROUP" + }, + "members": { + "vdbe_svc_vprs_proxy 0": { + "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c", + "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc", + "description": "A Proxy for Service vDBE_Svc_vPRS", + "name": "vDBE_Svc_vPRS Service Proxy", + "version": "1.0", + "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274", + "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14", + "sourceModelName": "vDBE_Svc_vPRS" + }, + "vdbe_svc_vprs_proxy 1": { + "uuid": "111dfa8-a0d9-443f-95ad-836cd044e26c", + "invariantUuid": "111ae0c-b3a5-4ca1-a777-afbffe7010bc", + "description": "A Proxy for Service vDBE_Svc_vPRS", + "name": "111_Svc_vPRS Service Proxy", + "version": "1.0", + "customizationUuid": "1113d23-e132-4ce7-af2c-a493b4cafac9", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "11127a2-366d-4be6-8c68-a69153c61274", + "sourceModelInvariant": "1112e6b-584b-4f45-80d4-fefd75fd9f14", + "sourceModelName": "111_Svc_vPRS" + } + } + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {} + } + } +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts new file mode 100644 index 000000000..7f2052a0c --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts @@ -0,0 +1,272 @@ +import {ILevelNodeInfo} from "../basic.model.info"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import {VnfGroupModel} from "../../../../../shared/models/vnfGroupModel"; +import {VnfGroupTreeNode} from "../../../../../shared/models/vnfGroupTreeNode"; +import {SharedTreeService} from "../../shared.tree.service"; +import {VnfGroupPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import { + GenericFormPopupComponent, + PopupType +} from "../../../../../shared/components/genericFormPopup/generic-form-popup.component"; +import {DialogService} from 'ng2-bootstrap-modal'; +import {AppState} from "../../../../../shared/store/reducers"; +import {NgRedux} from "@angular-redux/store"; +import {changeInstanceCounter, removeInstance} from "../../../../../shared/storeUtil/utils/general/general.actions"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import { + deleteActionVnfGroupInstance, + undoDeleteActionVnfGroupInstance +} from "../../../../../shared/storeUtil/utils/vnfGroup/vnfGroup.actions"; +import {RelatedVnfMemberInfoModel} from "../relatedVnfMember/relatedVnfMember.info.model"; +import {SearchMembersModalComponent} from "../../../../../shared/components/searchMembersModal/search-members-modal.component"; +import * as _ from "lodash"; +import {MessageBoxData} from "../../../../../shared/components/messageBox/messageBox.data"; +import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service"; + +export class VnfGroupingModelInfo implements ILevelNodeInfo { + constructor(private _dynamicInputsService: DynamicInputsService, + private _sharedTreeService: SharedTreeService, + private _dialogService: DialogService, + private _vnfGroupPopupService: VnfGroupPopupService, + private _iframeService: IframeService, + private _store: NgRedux) { + } + + name: string = 'vnfGroups'; + type: string = 'VnfGroup'; + typeName: string = 'G'; + childType: string = 'RelatedVnfMemberInfoModel'; + childName: string = 'vnfs'; + limitMembers : number; + + /*********************************************************** + * return if user should provide instance name or not. + * get info from parent (VNF) + * @param currentModel - current Model object + ************************************************************/ + isEcompGeneratedNaming(currentModel): boolean { + const ecompGeneratedNaming = currentModel.properties.ecomp_generated_naming; + return ecompGeneratedNaming === "true"; + } + + /*********************************************************** + * return model dynamic inputs + * @param currentModel - current Model object + ************************************************************/ + updateDynamicInputsDataFromModel = (currentModel): any => { + let displayInputs = currentModel.inputs; + return _.isEmpty(displayInputs) ? [] : this._dynamicInputsService.getArbitraryInputs(displayInputs); + }; + + /*********************************************************** + * return next level object (null because is last level) + ************************************************************/ + getNextLevelObject = (): RelatedVnfMemberInfoModel => { + return new RelatedVnfMemberInfoModel(this._sharedTreeService, this._dynamicInputsService, this._store); + }; + + getTooltip = (): string => 'VnfGroup'; + + getType = (): string => 'VnfGroup'; + + createInstanceTreeNode(instance: any, model: any, parentModel: any, storeKey: string): any { + let node = new VnfGroupTreeNode(instance, model, storeKey); + node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming); + node = this._sharedTreeService.addingStatusProperty(node); + node.typeName = this.typeName; + node.menuActions = this.getMenuAction(node, model.uuid); + node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed; + node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: ""; + node.limitMembers = (!_.isNil(model.properties.quantity)) ? model.properties.quantity : null; + return node; + } + + getModel(modelId: string, instance: any, serviceHierarchy): any { + const originalModelName = instance.originalName ? instance.originalName : modelId; + return new VnfGroupModel(serviceHierarchy[this.name][originalModelName]); + } + + hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean { + return this._sharedTreeService.hasMissingData(instance, dynamicInputs, isEcompGeneratedNaming, []); + } + + onClickAdd(node: ITreeNode, serviceModelId: string): void { + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.VNF_GROUP, + uuidData: { + serviceId: serviceModelId, + modelName: node.data.name, + vnfGroupStoreKey: null, + modelId: node.data.modelVersionId, + type: node.data.type, + popupService: this._vnfGroupPopupService + }, + node: node, + isUpdateMode: false + }); + } + + getNodeCount(node: ITreeNode, serviceModelId: string): number { + let map = null; + if (!_.isNil(this._store.getState().service.serviceInstance[serviceModelId])) { + map = this._store.getState().service.serviceInstance[serviceModelId].existingVnfGroupCounterMap || 0; + if (!_.isNil(map)) { + let count = map[node.data.modelUniqueId] || 0; + count -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'vnfGroups'); + return count; + } + } + return 0; + } + + /*********************************************************** + * should show node icon + * @param node - current ITrees node + * @param serviceModelId - service id + ************************************************************/ + showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { + const showAddIcon = this._sharedTreeService.shouldShowAddIcon(); + return new AvailableNodeIcons(showAddIcon, false); + } + + getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } { + return { + edit: { + method: (node, serviceModelId) => { + this._iframeService.addClassOpenModal('content'); + this._dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.VNF_GROUP, + uuidData: { + serviceId: serviceModelId, + modelName: node.data.modelName, + vnfGroupStoreKey: node.data.vnfGroupStoreKey, + modelId: node.data.modelId, + type: node.data.type, + popupService: this._vnfGroupPopupService + }, + node: node, + isUpdateMode: true + }); + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node) + }, + remove: { + method: (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + let storeKey: string = node.data.vnfGroupStoreKey; + this._store.dispatch(removeInstance(node.data.vnfGroupStoreKey, serviceModelId, storeKey, node)); + this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node)); + this._sharedTreeService.selectedVNF = null; + } else { + let messageBoxData: MessageBoxData = new MessageBoxData( + "Remove VNFGroup", // modal title + "You are about to remove this group and all its children from this service. Are you sure you want to remove it?", + "warning", + "md", + [ + { + text: "Remove Group", + size: "large", + callback: this.removeGroup.bind(this, node, serviceModelId), + closeModal: true + }, + {text: "Don’t Remove", size: "medium", closeModal: true} + ]); + + MessageBoxService.openModal.next(messageBoxData); + } + }, + visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), + enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node) + }, + addGroupMember: { + method: (node, serviceModelId) => { + let serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId]; + let serviceInstance = this._store.getState().service.serviceInstance[serviceModelId]; + let vnfGroupModel = new VnfGroupModel(serviceHierarchy['vnfGroups'][node.data.modelName]); + this._dialogService.addDialog(SearchMembersModalComponent, { + title: 'Add members to group', + description: 'Select VNF instances to associate', + subscriberId: serviceInstance.globalSubscriberId, + serviceType: serviceInstance.subscriptionServiceType, + vnfGroupModel: vnfGroupModel, + serviceModelId: serviceModelId, + node: node.data, + searchFields: [{ + title: 'Service model name', + dataTestId: 'sourceModelName', + value: (Object.values(vnfGroupModel.members))[0].sourceModelName + }, + { + title: 'Service invariant UUID', + dataTestId: 'sourceModelInvariant', + value: (Object.values(vnfGroupModel.members))[0].sourceModelInvariant + }] + } + ); + }, + visible: (node) => !_.isNil(node.data.action) ? node.data.action.split('_').pop() !== 'Delete' : true, + enable: (node) => !_.isNil(node.data.action) ? node.data.action.split('_').pop() !== 'Delete' : true + }, + showAuditInfo: { + method: (node, serviceModelId) => { + let instance = this._store.getState().service.serviceInstance[serviceModelId].vnfGroups[node.data.vnfGroupStoreKey]; + this._sharedTreeService.openAuditInfoModal(node, serviceModelId, instance, 'VNFGROUP', this); + }, + visible: (node) => this._sharedTreeService.shouldShowAuditInfo(node), + enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node) + }, + delete: { + method: (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + this._store.dispatch(deleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId)); + }else { + this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(node, serviceModelId, (node, serviceModelId)=>{ + this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{ + this._store.dispatch(deleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId)); + }); + }); + } + }, + visible: (node) => this._sharedTreeService.shouldShowDelete(node), + enable: (node) => this._sharedTreeService.shouldShowDelete(node) + }, + undoDelete: { + method: (node, serviceModelId) => { + if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) { + this._store.dispatch(undoDeleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId)); + } else { + this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId) => { + this._store.dispatch(undoDeleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId)); + }); + } + }, + visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node), + enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId) + } + }; + + + } + + removeGroup(this, node, serviceModelId) { + this._store.dispatch(removeInstance(node.data.modelName, serviceModelId, node.data.vnfGroupStoreKey, node)); + this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node)); + this._sharedTreeService.selectedVNF = null; + } + + updatePosition(that , node, instanceId): void { + // TODO + } + + getNodePosition(instance): number { + return !_.isNil(instance) ? instance.position : null; + } + + onSelectedNode(node: ITreeNode): void { + } + +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts new file mode 100644 index 000000000..fd39ed92a --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts @@ -0,0 +1,2764 @@ +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {NgRedux} from "@angular-redux/store"; +import {ObjectToInstanceTreeService} from "./objectToInstanceTree.service"; +import {SharedTreeService} from "../shared.tree.service"; +import {DynamicInputsService} from "../dynamicInputs.service"; +import {DefaultDataGeneratorService} from "../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {AvailableModelsTreeService} from "../../available-models-tree/available-models-tree.service"; +import {ObjectToTreeService} from "../objectToTree.service"; +import {DrawingBoardModes} from "../../drawing-board.modes"; +import {DialogService} from "ng2-bootstrap-modal"; +import {VnfPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {BasicControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/basic.control.generator"; +import {AaiService} from "../../../../shared/services/aaiService/aai.service"; +import {FeatureFlagsService} from "../../../../shared/services/featureFlag/feature-flags.service"; +import {VnfControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator"; +import {GenericFormService} from "../../../../shared/components/genericForm/generic-form.service"; +import {FormBuilder} from "@angular/forms"; +import {LogService} from "../../../../shared/utils/log/log.service"; +import {IframeService} from "../../../../shared/utils/iframe.service"; +import {BasicPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/basic.popup.service"; +import {NetworkPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import {NetworkControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator"; +import {VfModulePopuopService} from "../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {VfModuleControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator"; +import {VnfGroupPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import {VnfGroupControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator"; +import {DuplicateService} from "../../duplicate/duplicate.service"; +import {SdcUiComponentsModule, SdcUiServices} from "onap-ui-angular"; +import {ErrorMsgService} from "../../../../shared/components/error-msg/error-msg.service"; +import {ComponentInfoService} from "../../component-info/component-info.service"; + +class MockAppStore { + getState() { + return { + global: { + 'drawingBoardStatus': DrawingBoardModes.CREATE, + flags : { + DRAG_AND_DROP_OPERATION : false + } + } + } + } +} + +describe('Model Tree Generator service', () => { + let injector; + let service: ObjectToInstanceTreeService; + let httpMock: HttpTestingController; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule, SdcUiComponentsModule], + providers: [ + DuplicateService, + AvailableModelsTreeService, + ObjectToTreeService, + ObjectToInstanceTreeService, + DefaultDataGeneratorService, + DynamicInputsService, + SharedTreeService, + VnfPopupService, + VnfGroupPopupService, + BasicControlGenerator, + GenericFormService, + FormBuilder, + LogService, + IframeService, + BasicPopupService, + NetworkPopupService, + NetworkControlGenerator, + VfModulePopuopService, + VfModuleControlGenerator, + VnfGroupControlGenerator, + DialogService, + FeatureFlagsService, + VnfControlGenerator, + AaiService, + DialogService, + ErrorMsgService, + ComponentInfoService, + SdcUiServices.ModalService, + { provide: NgRedux, useClass: MockAppStore }, + MockNgRedux] + }); + await TestBed.compileComponents(); + + injector = getTestBed(); + service = injector.get(ObjectToInstanceTreeService); + httpMock = injector.get(HttpTestingController); + + })().then(done).catch(done.fail)); + + test('ObjectToInstanceTreeService should be defined', () => { + expect(service).toBeDefined(); + }); + + + test('should return instance nodes correctly: VNF', () => { + + let convertToNodes = service.convertServiceInstanceToTreeData(getInstanceServiceVNF(), getServiceInstanceHierarchy()); + delete convertToNodes[0].menuActions; + delete convertToNodes[0].errors; + delete convertToNodes[0].isFailed; + delete convertToNodes[0].trackById; + delete convertToNodes[0].updatePoistionFunction; + delete convertToNodes[0].position; + delete convertToNodes[0].onSelectedNode; + delete convertToNodes[1].children[0].isFailed; + delete convertToNodes[1].children[0].menuActions; + delete convertToNodes[1].children[0].trackById; + delete convertToNodes[1].children[0].errors; + delete convertToNodes[1].children[0].updatePoistionFunction; + delete convertToNodes[1].children[0].position; + delete convertToNodes[1].children[0].onSelectedNode; + expect(Object.assign({}, convertToNodes[0])).toEqual(Object.assign({}, expectInstanceNodesResultVNF()[0])); + expect(Object.assign({}, convertToNodes[1].children[0])).toEqual(Object.assign({}, expectInstanceNodesResultVNF()[1].children[0])); + expect(convertToNodes[1].inMaint).toBeFalsy(); + expect(convertToNodes[0].inMaint).toBeTruthy(); + expect(service.numberOfFailed).toBe(0); + expect(service.numberOfElements).toBe(3); + }); + + test('should return instance nodes correctly: VNF and Network', () => { + let convertToNodes = service.convertServiceInstanceToTreeData(getInstanceServiceVNF_Network(), getServiceHeirarchyVNF_Network()); + + delete convertToNodes[1].menuActions; + delete convertToNodes[1].trackById; + delete convertToNodes[1].errors; + delete convertToNodes[1].isFailed; + delete convertToNodes[1].updatePoistionFunction; + delete convertToNodes[1].position; + delete convertToNodes[1].onSelectedNode; + expect(Object.assign({}, convertToNodes[0].children[0].dynamicInputs)).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[0]['children'][0].dynamicInputs)); + expect(Object.assign({}, convertToNodes[0].children[0].missingData)).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[0]['children'][0].missingData)); + expect(Object.assign({}, convertToNodes[1])).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[1])); + expect(service.numberOfFailed).toBe(0); + expect(service.numberOfElements).toBe(5); + }); + + function getServiceInstanceHierarchy() { + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + }, + "vidNotions": { + "instantiationUI": "legacy", + "modelCategory": "other" + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "fromInputName": "2017488_adiodvpe0_vnf_config_template_version", + "constraints": null, + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "fromInputName": "adiodvpe0_bandwidth_units", + "constraints": null, + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "fromInputName": "adiodvpe0_bandwidth", + "constraints": null, + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "fromInputName": "2017488_adiodvpe0_AIC_CLLI", + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "fromInputName": "2017488_adiodvpe0_vnf_instance_name", + "constraints": null, + "required": true, + "default": "mtnj309me6" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} + } + } + + function getServiceHeirarchyVNF_Network() { + return { + "service": { + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "false", + "instantiationType": "A-La-Carte", + "inputs": { + "2017488_adiodvpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5", + "max_instances": 5 + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": { + "vnf_config_template_version": { + "displayName": "vnf_config_template_version", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_config_template_version" + }, + "bandwidth_units": { + "displayName": "bandwidth_units", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth_units" + }, + "bandwidth": { + "displayName": "bandwidth", + "command": "get_input", + "inputName": "adiodvpe0_bandwidth" + }, + "AIC_CLLI": { + "displayName": "AIC_CLLI", + "command": "get_input", + "inputName": "2017488_adiodvpe0_AIC_CLLI" + }, + "ASN": { + "displayName": "ASN", + "command": "get_input", + "inputName": "2017488_adiodvpe0_ASN" + }, + "vnf_instance_name": { + "displayName": "vnf_instance_name", + "command": "get_input", + "inputName": "2017488_adiodvpe0_vnf_instance_name" + } + }, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=false}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "max_instances": "3", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "min_instances": "1", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "false", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + } + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": { + "vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "17.2" + }, + "bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "Gbps" + }, + "bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "10" + }, + "AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "ATLMY8GA" + }, + "ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + }, + "vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "mtnj309me6" + } + }, + "commands": {}, + "properties": { + "network_role": "network role 1, network role 2", + "min_instances": 1, + "max_instances": 10, + "ecomp_generated_naming": "true", + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV" + }, + "inputs": { + "adiodvpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_adiodvpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_adiodvpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_adiodvpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "adiodvpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "ADIOD_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + } + } + } + + function getInstanceServiceVNF() { + return { + "vnfs": { + "2017-388_ADIOD-vPE 0": { + "action": 'None', + "inMaint": true, + "orchStatus": "Active", + "provStatus": "prov", + "rollbackOnFailure": "true", + "originalName": "2017-388_ADIOD-vPE 0", + "isMissingData": true, + "trackById": "u5mtsvzmq6p", + "vfModules": {}, + "vnfStoreKey": "2017-388_ADIOD-vPE 0", + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": null, + "tenantId": null, + "lineOfBusiness": null, + "statusMessage": "Failed Vnf Message", + "platformName": null, + "modelInfo": { + "modelType": "VF", + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "modelName": "2017-388_ADIOD-vPE", + "modelVersion": "4.0", + "modelCustomizationName": "2017-388_ADIOD-vPE 0" + } + }, + "2017-488_ADIOD-vPE 0": { + "action": 'None', + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-488_ADIOD-vPE 0", + "isMissingData": false, + "trackById": "1d6dg4fsgbm", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0zssmp": { + "action": 'None', + "isMissingData": true, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "modelVersion": "5", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0" + }, + "instanceParams": [ + {} + ], + "trackById": "v2egx1b8i1l", + "statusMessage": "Failed vfModel message" + } + } + }, + "vnfStoreKey": "2017-488_ADIOD-vPE 0", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "lineOfBusiness": "ONAP", + "platformName": "platform", + "modelInfo": { + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "5.0", + "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09" + }, + "instanceName": "2017488_ADIODvPE", + "legacyRegion": "123", + "instanceParams": [ + {} + ] + } + }, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 3, + "existingNames": { + "yoav": "" + }, + "existingVNFCounterMap": { + "afacccf6-397d-45d6-b5ae-94c39734b168": 1, + "69e09f68-8b63-4cc9-b9ff-860960b5db09": 1 + }, + "existingNetworksCounterMap": {}, + "networks": {}, + "instanceName": "yoav", + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "ABC15", + "projectName": "WATKINS", + "rollbackOnFailure": "true", + "bulkSize": 1, + "aicZoneName": "AAITESAN-ABC15", + "owningEntityName": "WayneHolland", + "testApi": "VNF_API", + "isEcompGeneratedNaming": false, + "tenantName": "USP-SIP-IC-24335-T-01", + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "modelName": "action-data", + "modelVersion": "1.0", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450" + }, + "isALaCarte": false, + "name": "action-data", + "version": "1.0", + "description": "", + "category": "", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceType": "", + "serviceRole": "", + "isMultiStepDesign": false + } + } + + function getInstanceServiceVNF_Network() { + return { + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "action": 'None', + "rollbackOnFailure": "true", + "originalName": "2017-488_ADIOD-vPE 0", + "isMissingData": false, + "trackById": "o65b26t2thj", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": { + "action": 'None', + "instanceName": "yoav", + "volumeGroupName": "123", + "modelInfo": { + "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5", + "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "modelVersion": "6", + "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5" + }, + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "isMissingData": false, + "instanceParams": [ + { + "adiodvpe0_bandwidth": "10", + "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6", + "2017488_adiodvpe0_vnf_config_template_version": "17.2", + "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA", + "adiodvpe0_bandwidth_units": "Gbps" + } + ] + } + } + }, + "vnfStoreKey": "2017-488_ADIOD-vPE 0", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": "hvf6", + "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054", + "lineOfBusiness": "ONAP", + "platformName": "platform", + "modelInfo": { + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "5.0", + "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09" + }, + "instanceName": "2017488_ADIODvPE", + "instanceParams": [ + {} + ] + } + }, + "instanceParams": [ + { + "2017488_adiodvpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 0, + "existingNames": { + "123": "", + "yoav": "", + "instancename": "", + "extvl": "" + }, + "existingVNFCounterMap": { + "69e09f68-8b63-4cc9-b9ff-860960b5db09": 1 + }, + "existingNetworksCounterMap": { + "ddc3f20c-08b5-40fd-af72-c6d14636b986": 3 + }, + "networks": { + "ExtVL 0": { + "action": "None", + "rollbackOnFailure": "true", + "isMissingData": false, + "originalName": "ExtVL 0", + "networkStoreKey": "ExtVL 0", + "trackById": "sf3zth68xjf", + "statusMessage": "Network failed message", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": "hvf6", + "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", + "platformName": "xxx1", + "lineOfBusiness": "ONAP", + "instanceParams": [ + {} + ], + "modelInfo": { + "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c", + "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "modelName": "ExtVL", + "modelVersion": "37.0", + "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "modelCustomizationName": "ExtVL 0", + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + }, + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + }, + "ExtVL 0:0001": { + "action": "None", + "rollbackOnFailure": "true", + "isMissingData": false, + "originalName": "ExtVL 0", + "networkStoreKey": "ExtVL 0", + "trackById": "2mdxioxca9h", + "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "lcpCloudRegionId": "hvf6", + "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", + "platformName": "xxx1", + "lineOfBusiness": "ONAP", + "instanceParams": [ + {} + ], + "modelInfo": { + "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c", + "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "modelName": "ExtVL", + "modelVersion": "37.0", + "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "modelCustomizationName": "ExtVL 0", + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + }, + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + }, + "ExtVL 0_1": { + "action": "None", + "rollbackOnFailure": "true", + "isMissingData": false, + "originalName": "ExtVL 0", + "networkStoreKey": "ExtVL 0_1", + "trackById": "z7vd1gmpbs", + "instanceName": "ExtVL", + "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77", + "lcpCloudRegionId": "hvf6", + "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", + "platformName": "xxx1", + "lineOfBusiness": "zzz1", + "instanceParams": [ + { + "vnf_config_template_version": "17.2", + "bandwidth_units": "Gbps", + "bandwidth": "10", + "AIC_CLLI": "ATLMY8GA", + "ASN": "AV_vPE", + "vnf_instance_name": "yoav" + } + ], + "modelInfo": { + "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c", + "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "modelName": "ExtVL", + "modelVersion": "37.0", + "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "modelCustomizationName": "ExtVL 0", + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + }, + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + } + }, + "instanceName": "InstanceName", + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "JAG1", + "projectName": null, + "rollbackOnFailure": "true", + "bulkSize": 1, + "aicZoneName": "YUDFJULP-JAG1", + "owningEntityName": "WayneHolland", + "testApi": "GR_API", + "isEcompGeneratedNaming": false, + "tenantName": "USP-SIP-IC-24335-T-01", + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "6b528779-44a3-4472-bdff-9cd15ec93450", + "modelName": "action-data", + "modelVersion": "1.0", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450" + }, + "isALaCarte": false, + "name": "action-data", + "version": "1.0", + "description": "", + "category": "", + "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceType": "", + "serviceRole": "", + "isMultiStepDesign": false + } + } + + function expectInstanceNodesResultVNF() { + return [ + { + "action": 'None', + "modelId": "afacccf6-397d-45d6-b5ae-94c39734b168", + "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "modelUniqueId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "missingData": true, + "id": "u5mtsvzmq6p", + "orchStatus": 'Active', + "provStatus": 'prov', + "inMaint": true, + "name": "2017-388_ADIOD-vPE 0", + "modelName": "2017-388_ADIOD-vPE 0", + "type": "VF", + "parentType": '', + "isEcompGeneratedNaming": false, + "networkStoreKey": "2017-388_ADIOD-vPE 0", + "vnfStoreKey": "2017-388_ADIOD-vPE 0", + "typeName": "VNF", + "children": [], + "statusMessage": "Failed Vnf Message", + "statusProperties": [Object({ + key: 'Prov Status:', + value: 'prov', + testId: 'provStatus' + }), Object({ key: 'Orch Status:', value: 'Active', testId: 'orchStatus' }), Object({ + key: 'In-maintenance', + value: '', + testId: 'inMaint' + })] + }, + { + "action": 'None', + "modelId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "missingData": false, + "id": "1d6dg4fsgbm", + "inMaint": false, + "parentType": '', + "name": "2017-488_ADIOD-vPE 0", + "modelName": "2017-488_ADIOD-vPE 0", + "type": "VF", + "isEcompGeneratedNaming": false, + "networkStoreKey": "2017-488_ADIOD-vPE 0", + "vnfStoreKey": "2017-488_ADIOD-vPE 0", + "typeName": "VNF", + "statusProperties": [Object({ + key: 'Prov Status:', + value: undefined, + testId: 'provStatus' + }), Object({ key: 'Orch Status:', value: undefined, testId: 'orchStatus' })], + "children": [{ + "parentType": 'VNF', + "action": 'None', + "modelId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "missingData": true, + "id": "v2egx1b8i1l", + "statusMessage": "Failed vfModel message", + "name": "<Automatically Assigned>", + "modelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "type": "VFmodule", + "isEcompGeneratedNaming": false, + "dynamicInputs": [], + "dynamicModelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0zssmp", + "typeName": "M", + "statusProperties": [Object({ + key: 'Prov Status:', + value: undefined, + testId: 'provStatus' + }), Object({ key: 'Orch Status:', value: undefined, testId: 'orchStatus' })], + }] + }] + } + + function expectInstanceNodesResultVNF_Network() { + return [ + { + "parentType": '', + "action": 'None', + "modelId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "missingData": false, + "id": "o65b26t2thj", + "name": "2017488_ADIODvPE", + "modelName": "2017-488_ADIOD-vPE 0", + "type": "VF", + "isEcompGeneratedNaming": false, + "vnfStoreKey": "2017-488_ADIOD-vPE 0", + "typeName": "VNF", + "statusProperties": [Object({ + key: 'Prov Status:', + value: undefined, + testId: 'provStatus' + }), Object({ key: 'Orch Status:', value: undefined, testId: 'orchStatus' })], + "children": [ + { + "action": 'None', + "modelId": "25284168-24bb-4698-8cb4-3f509146eca5", + "missingData": false, + "name": "yoav", + "modelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "type": "VFmodule", + "isEcompGeneratedNaming": false, + "typeName": "M", + "dynamicInputs": [ + { + "id": "adiodvpe0_bandwidth", + "type": "string", + "name": "adiodvpe0_bandwidth", + "value": "10", + "isRequired": true, + "description": "Requested VPE bandwidth" + }, + { + "id": "2017488_adiodvpe0_vnf_instance_name", + "type": "string", + "name": "2017488_adiodvpe0_vnf_instance_name", + "value": "mtnj309me6", + "isRequired": true, + "description": "The hostname assigned to the vpe." + }, + { + "id": "2017488_adiodvpe0_vnf_config_template_version", + "type": "string", + "name": "2017488_adiodvpe0_vnf_config_template_version", + "value": "17.2", + "isRequired": true, + "description": "VPE Software Version" + }, + { + "id": "2017488_adiodvpe0_AIC_CLLI", + "type": "string", + "name": "2017488_adiodvpe0_AIC_CLLI", + "value": "ATLMY8GA", + "isRequired": true, + "description": "AIC Site CLLI" + }, + { + "id": "adiodvpe0_bandwidth_units", + "type": "string", + "name": "adiodvpe0_bandwidth_units", + "value": "Gbps", + "isRequired": true, + "description": "Units of bandwidth" + } + ], + "dynamicModelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi" + } + ] + }, + { + "parentType": '', + "action": 'None', + "modelId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "modelUniqueId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "missingData": false, + "id": "sf3zth68xjf", + "name": "<Automatically Assigned>", + "statusMessage": "Network failed message", + "modelName": "ExtVL 0", + "type": "VL", + "isEcompGeneratedNaming": true, + "networkStoreKey": "ExtVL 0", + "typeName": "N", + "statusProperties": [Object({ + key: 'Prov Status:', + value: undefined, + testId: 'provStatus' + }), Object({ key: 'Orch Status:', value: undefined, testId: 'orchStatus' })], + }, + { + "parentType": '', + "action": 'None', + "originalAction": 'None', + "modelId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "missingData": false, + "id": "2mdxioxca9h", + "name": "<Automatically Assigned>", + "modelName": "ExtVL 0", + "type": "VL", + "isEcompGeneratedNaming": true, + "networkStoreKey": "ExtVL 0:0001", + "typeName": "M" + }, + { + "parentType": '', + "action": 'None', + "originalAction": 'None', + "modelId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "missingData": false, + "id": "z7vd1gmpbs", + "name": "ExtVL", + "modelName": "ExtVL 0", + "type": "VL", + "isEcompGeneratedNaming": true, + "networkStoreKey": "ExtVL 0_1", + "typeName": "M" + } + ]; + } +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts new file mode 100644 index 000000000..1fc439ea3 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts @@ -0,0 +1,163 @@ +import {Injectable} from "@angular/core"; +import {ILevelNodeInfo} from "../models/basic.model.info"; +import {ObjectToTreeService} from "../objectToTree.service"; +import {DefaultDataGeneratorService} from "../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import * as _ from "lodash"; +import {ServiceInstanceActions} from "../../../../shared/models/serviceInstanceActions"; +import {ErrorMsgService} from "../../../../shared/components/error-msg/error-msg.service"; +import {FeatureFlagsService, Features} from "../../../../shared/services/featureFlag/feature-flags.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../shared/store/reducers"; + +@Injectable() +export class ObjectToInstanceTreeService { + constructor(private _objectToTreeService: ObjectToTreeService, private _errorMsgService: ErrorMsgService, private store: NgRedux) { + this.numberOfFailed = 0; + this.numberOfElements = 0; + + } + + /** store number of failed ******** ONLY IN RETRY MODE ******** **/ + numberOfFailed: number = 0; + + /** store number of existing elements **/ + numberOfElements: number = 0; + + /***************************************************************** + * return array of first level node with there child's + * @param serviceInstance - The service instance object from store + * @param serviceHierarchy - The service Hierarchy store + ****************************************************************/ + convertServiceInstanceToTreeData(serviceInstance, serviceHierarchy): any[] { + this._errorMsgService.triggerClearError.next(); + let nodes = []; + this.numberOfFailed = 0; + this.numberOfElements = 0; + let _this = this; + const firstLevelOptions: ILevelNodeInfo[] = _this._objectToTreeService.getFirstLevelOptions(); + for (let option of firstLevelOptions) { + _.forOwn(serviceInstance[option.name], function (instance, modelName) { + nodes.push(_this.getNodeInstance(modelName, null, instance, serviceHierarchy, option)); + }); + } + return this.sortElementsByPosition(nodes); + } + + /***************************************************************** + * should increase number of failed + * @param node - the current node + ****************************************************************/ + increaseNumberOfFailed(node) { + if (node.isFailed) { + this.numberOfFailed++; + node['errors'] = !_.isNil(node['errors']) ? node['errors'] : {}; + node['errors']["isFailed"] = true; + this._errorMsgService.triggerShowError.next(this._errorMsgService.getRetryErrorObject(this.numberOfFailed)); + } + } + + /***************************************************************** + * should increase number of existing elements + * @param node - the current node + ****************************************************************/ + increaseNumberOfExcitingElements() { + this.numberOfElements++; + } + + /***************************************************************** + * return array of first level node with there child's + * @param modelName + * @param parentModel + * @param instance + * @param serviceHierarchy - The service Hierarchy store + * @param option + * @param parentType + ****************************************************************/ + getNodeInstance(modelName: string, parentModel: any, instance: any, serviceHierarchy, option: ILevelNodeInfo, parentType ?: string) { + const model = option.getModel(modelName, instance, serviceHierarchy); + + let optionalNodes = option.createInstanceTreeNode(instance, model, parentModel, modelName); + this.increaseNumberOfFailed(optionalNodes); + this.increaseNumberOfExcitingElements(); + let nodes: any[] = _.isArray(optionalNodes) ? optionalNodes : [optionalNodes]; + for (let node of nodes) { + node = this.addingExtraDataToNode(node, modelName, parentModel, instance, serviceHierarchy, option, parentType); + let children = this.addNextInstanceTreeNode(instance, model, option, node, serviceHierarchy); + if (!_.isNil(children) && children.length > 0) { + node.children = this.sortElementsByPosition(children); + } + this.updateScalingPolicy(node); + } + return nodes.length === 1 ? nodes[0] : nodes; + } + + addingExtraDataToNode(node, modelName: string, parentModel: any, instance: any, serviceHierarchy, option: ILevelNodeInfo, parentType ?: string) { + node.trackById = _.isNil(node.trackById) ? DefaultDataGeneratorService.createRandomTrackById() : node['trackById']; + node.parentType = !_.isNil(parentType) ? parentType : ""; + node.updatePoistionFunction = option.updatePosition; + node.position = option.getNodePosition(instance, node.dynamicModelName); + node.onSelectedNode = option.onSelectedNode; + return node; + } + + sortElementsByPosition(nodes: any[]): any[] { + if (!FeatureFlagsService.getFlagState(Features.DRAG_AND_DROP_OPERATION, this.store)) return nodes; + return nodes.sort((nodeA, nodeB) => { + return nodeA.position - nodeB.position; + }); + } + + /***************************************************************** + * return next level node with there child's + * @param parentInstance + * @param parentModel + * @param levelNodeInfo + * @param parentNode + * @param serviceHierarchy - The service Hierarchy store + ****************************************************************/ + addNextInstanceTreeNode(parentInstance, parentModel, levelNodeInfo: ILevelNodeInfo, parentNode, serviceHierarchy): any[] { + if (!_.isNil(levelNodeInfo.childName)) { + parentNode.children = []; + if (!_.isNil(parentInstance[levelNodeInfo.childName])) { + let parentType = levelNodeInfo.type; + let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this); + Object.keys(parentInstance[levelNodeInfo.childName]).map((modelName) => { + let nextLevelInstance = parentInstance[levelNodeInfo.childName][modelName]; + let nodes: any[] | any = this.getNodeInstance(modelName, parentModel, nextLevelInstance, serviceHierarchy, nextLevelNodeInfo, parentType); + if (_.isArray(nodes)) { + parentNode.children = parentNode.children.concat(nodes); + } else { + parentNode.children.push(nodes); + } + }); + return this.sortElementsByPosition(parentNode.children); + } + } + return parentNode.children; + } + + + /************************************************************************************ + * update instance scaling policy according to instance limit and existing children + * @param node + *********************************************************************************/ + updateScalingPolicy(node): void { + node['errors'] = !_.isNil(node['errors']) ? node['errors'] : {}; + if (!_.isNil(node['limitMembers']) && !_.isNil(node.children)) { + let effectiveChildren = (node.children).filter(child => [ + ServiceInstanceActions.Create, + ServiceInstanceActions.None, + ServiceInstanceActions.Update + ].includes(child.action)); + + + if (effectiveChildren.length > node.limitMembers) { + node['errors']["scalingError"] = true; + this._errorMsgService.triggerShowError.next(this._errorMsgService.getScalingErrorObject()); + } else { + delete node['errors']["scalingError"]; + } + + } + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts new file mode 100644 index 000000000..41ad23f07 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts @@ -0,0 +1,727 @@ +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {NgRedux} from "@angular-redux/store"; +import {ObjectToTreeService} from "../objectToTree.service"; +import {ObjectToModelTreeService} from "./objectToModelTree.service"; +import {DefaultDataGeneratorService} from "../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {DynamicInputsService} from "../dynamicInputs.service"; +import {SharedTreeService} from "../shared.tree.service"; +import {DrawingBoardModes} from "../../drawing-board.modes"; +import {AvailableModelsTreeService} from "../../available-models-tree/available-models-tree.service"; +import {DialogService} from "ng2-bootstrap-modal"; +import {VnfPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {BasicControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/basic.control.generator"; +import {GenericFormService} from "../../../../shared/components/genericForm/generic-form.service"; +import {FormBuilder} from "@angular/forms"; +import {LogService} from "../../../../shared/utils/log/log.service"; +import {IframeService} from "../../../../shared/utils/iframe.service"; +import {BasicPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/basic.popup.service"; +import {NetworkPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import {NetworkControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator"; +import {VfModulePopuopService} from "../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {VfModuleControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator"; +import {FeatureFlagsService} from "../../../../shared/services/featureFlag/feature-flags.service"; +import {VnfControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator"; +import {AaiService} from "../../../../shared/services/aaiService/aai.service"; +import {VnfGroupPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import {VnfGroupControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator"; +import {DuplicateService} from "../../duplicate/duplicate.service"; +import {SdcUiComponentsModule} from "onap-ui-angular"; +import {ComponentInfoService} from "../../component-info/component-info.service"; + +class MockAppStore { + getState() { + return { + global: { + 'drawingBoardStatus': DrawingBoardModes.CREATE + } + } + } +} + +describe('Model Tree Generator service', () => { + let injector; + let service: ObjectToModelTreeService; + let httpMock: HttpTestingController; + + beforeEach(() => { + + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule, SdcUiComponentsModule], + providers: [ + AvailableModelsTreeService, + ObjectToTreeService, + ObjectToModelTreeService, + DefaultDataGeneratorService, + DynamicInputsService, + SharedTreeService, + DialogService, + VnfPopupService, + VnfGroupPopupService, + BasicControlGenerator, + GenericFormService, + FormBuilder, + LogService, + IframeService, + BasicPopupService, + NetworkPopupService, + NetworkControlGenerator, + VfModulePopuopService, + VfModuleControlGenerator, + VnfGroupControlGenerator, + DialogService, + FeatureFlagsService, + VnfControlGenerator, + AaiService, + DialogService, + DuplicateService, + ComponentInfoService, + {provide: NgRedux, useClass: MockAppStore}, + MockNgRedux] + }).compileComponents(); + + injector = getTestBed(); + service = injector.get(ObjectToModelTreeService); + httpMock = injector.get(HttpTestingController); + }); + + test('ObjectToModelTreeService should be defined', () => { + expect(service).toBeDefined(); + }); + + test('should return nodes correctly: VNF', () => { + + let convertToNodes = service.convertServiceHierarchyModelToTreeNodes(getServiceHeirarchyVNF()); + convertToNodes.map((item) => { + delete item['onAddClick']; + delete item['getNodeCount']; + delete item['showNodeIcons']; + delete item['menuActions']; + delete item['getMenuAction']; + delete item['trackById']; + + if (item.children) { + item.children.map((child) => { + delete child['onAddClick']; + delete child['getNodeCount']; + delete child['showNodeIcons']; + delete child['menuActions']; + delete child['getMenuAction']; + delete child['trackById']; + }); + } + }); + + expect(Object.assign({}, convertToNodes)).toEqual(Object.assign({}, expectNodesResultVNF())); + }); + + + function expectNodesResultVNF() { + return [{ + "id": "280dec31-f16d-488b-9668-4aae55d6648a", + "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413", + "name": "2017-388_ADIOD-vPE 1", + "tooltip": "VF", + "type": "VF", + "count": 0, + "max": 1, + "children": [], + "disabled": false, + "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a", + "modelUniqueId": "280dec31-f16d-488b-9668-4aae55d6648a", + "dynamicInputs": [], + "isEcompGeneratedNaming": true, + "typeName": 'VNF' + }, { + "id": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168", + "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "modelUniqueId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "name": "2017-388_ADIOD-vPE 0", + "tooltip": "VF", + "type": "VF", + "count": 0, + "max": 1, + "children": [], + "disabled": false, + "dynamicInputs": [], + "isEcompGeneratedNaming": true, + "typeName": 'VNF' + }, { + "id": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "name": "2017-488_ADIOD-vPE 0", + "tooltip": "VF", + "type": "VF", + "count": 0, + "max": 1, + "children": [{ + "id": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5", + "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "tooltip": "VFmodule", + "type": "VFmodule", + "count": 0, + "max": 1, + "children": [], + "disabled": false, + "dynamicInputs": [], + "isEcompGeneratedNaming": true, + "typeName": 'M' + }, { + "id": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "tooltip": "VFmodule", + "type": "VFmodule", + "count": 0, + "max": 1, + "children": [], + "disabled": false, + "dynamicInputs": [], + "isEcompGeneratedNaming": true, + "typeName": 'M' + }, { + "id": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "modelVersionId": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "modelCustomizationId": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "modelUniqueId": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "tooltip": "VFmodule", + "type": "VFmodule", + "count": 0, + "max": 1, + "children": [], + "disabled": false, + "dynamicInputs": [], + "isEcompGeneratedNaming": true, + "typeName": 'M' + }], + "disabled": false, + "dynamicInputs": [], + "isEcompGeneratedNaming": true, + "typeName": 'VNF' + }] + + } + + function getServiceHeirarchyVNF() { + return { + "service": { + "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "pnf", + "serviceRole": "Testing", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": {}, + "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other"} + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "true", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "true", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "true", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {} + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {} + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {} + } + } +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts new file mode 100644 index 000000000..e941faad3 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts @@ -0,0 +1,98 @@ +import {Injectable} from "@angular/core"; +import {ILevelNodeInfo} from "../models/basic.model.info"; +import {ObjectToTreeService} from "../objectToTree.service"; +import * as _ from "lodash"; + +@Injectable() +export class ObjectToModelTreeService { + constructor(private _objectToTreeService: ObjectToTreeService) { + } + + /*********************************************************** + * return array of first level node with there child's + * @param serviceModel - The serviceHierarchy object + ************************************************************/ + convertServiceHierarchyModelToTreeNodes(serviceModel): any[] { + let _this = this; + const firstLevelOptions: ILevelNodeInfo[] = _this._objectToTreeService.getFirstLevelOptions(); + let nodes = []; + for (let option of firstLevelOptions) { + _.forOwn(serviceModel[option.name], function (item, key) { + nodes.push(_this.addFirstLevelModel(serviceModel.service.uuid, key, item, item.type, serviceModel, option)); + }); + } + console.log('nodes', nodes); + return nodes; + } + + + /*********************************************************** + * return node with all his child's + * @param name - Model name + * @param serviceId - service id + * @param currentModel - current Model object + * @param type - current Model type + * @param parentModel - current parent Model object + * @param levelNodeInfo - current level node information + ************************************************************/ + private addFirstLevelModel(serviceId: string, name, currentModel, type, parentModel, levelNodeInfo: ILevelNodeInfo) { + let node = ObjectToModelTreeService.convertItemToTreeNode(serviceId, name, currentModel, type, null, levelNodeInfo); + node.children = this.addNextLevelNodes(serviceId, currentModel, parentModel, levelNodeInfo, node); + return node; + } + + /*********************************************************** + * return all the child's of node (is child exist) + * else return empty array. + * @param currentModel - current Model object + * @param parentModel - current parent Model object + * @param levelNodeInfo - current level node information + * @param parentNode - parent node. + ************************************************************/ + addNextLevelNodes(serviceId: string, currentModel, parentModel, levelNodeInfo: ILevelNodeInfo, parentNode): any[] { + if (!_.isNil(levelNodeInfo.childName)) { + if (!_.isNil(currentModel[levelNodeInfo.childName])) { + let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this); + parentNode.children = Object.keys(currentModel[levelNodeInfo.childName]).map((key) => + ObjectToModelTreeService.convertItemToTreeNode(serviceId, key, currentModel[levelNodeInfo.childName][key], levelNodeInfo.childName, currentModel, nextLevelNodeInfo)); + + } + } + return parentNode.children; + } + + + /*********************************************************** + * return node with his properties + * @param serviceId + * @param name - model name + * @param currentModel - current model from serviceHierarchy + * @param valueType - model type + * @param parentModel - current parent model + * @param levelNodeInfo - current levelNodeInfo object + ************************************************************/ + static convertItemToTreeNode(serviceId: string, name: string, currentModel: any, valueType: string, parentModel: string, levelNodeInfo: ILevelNodeInfo) { + let node = { + id: currentModel.customizationUuid || currentModel.uuid, + modelCustomizationId : currentModel.customizationUuid, + modelVersionId: currentModel.uuid, + modelUniqueId : currentModel.customizationUuid || currentModel.uuid, + name: name, + tooltip: levelNodeInfo.getTooltip(), + type: levelNodeInfo.getType(), + count: currentModel.count || 0, + max: currentModel.max || 1, + children: [], + disabled: false, + dynamicInputs: levelNodeInfo.updateDynamicInputsDataFromModel(currentModel), + isEcompGeneratedNaming: levelNodeInfo.isEcompGeneratedNaming(currentModel, parentModel) + }; + + node['onAddClick'] = (node, serviceId) => levelNodeInfo.onClickAdd(node, serviceId); + node['getNodeCount'] = (node, serviceId) => levelNodeInfo.getNodeCount(node, serviceId); + node['getMenuAction'] = (node, serviceId) => levelNodeInfo.getMenuAction(node, serviceId); + node['showNodeIcons'] = (node, serviceId) => levelNodeInfo.showNodeIcons(node, serviceId); + node['typeName'] = levelNodeInfo['typeName']; + return node; + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts new file mode 100644 index 000000000..338964515 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts @@ -0,0 +1,51 @@ +import {Injectable} from "@angular/core"; +import {ILevelNodeInfo} from "./models/basic.model.info"; +import {VnfModelInfo} from "./models/vnf/vnf.model.info"; +import {NetworkModelInfo} from "./models/network/network.model.info"; +import {ConfigurationModelInfo} from "./models/configuration/configuration.model.info"; +import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {DynamicInputsService} from "./dynamicInputs.service"; +import {SharedTreeService} from "./shared.tree.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {DialogService} from "ng2-bootstrap-modal"; +import {VnfPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {NetworkPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import {VfModulePopuopService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {VnfGroupingModelInfo} from "./models/vnfGrouping/vnfGrouping.model.info"; +import {VnfGroupPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import {DuplicateService} from "../duplicate/duplicate.service"; +import {SdcUiServices} from "onap-ui-angular"; +import {IframeService} from "../../../shared/utils/iframe.service"; +import {ComponentInfoService} from "../component-info/component-info.service"; + +@Injectable() +export class ObjectToTreeService { + constructor(private _defaultDataGeneratorService: DefaultDataGeneratorService, + private _dynamicInputsService: DynamicInputsService, + private _sharedTreeService : SharedTreeService, + private _dialogService : DialogService, + private _vnfPopupService : VnfPopupService, + private _networkPopupService : NetworkPopupService, + private _vfModulePopupService : VfModulePopuopService, + private _vnfGroupPopupService : VnfGroupPopupService, + private _duplicateService : DuplicateService, + private _modalService: SdcUiServices.ModalService, + private _iframeService : IframeService, + private _componentInfoService : ComponentInfoService, + private _store : NgRedux) { + } + + + + + /*********************************************************** + * return all first optional first level of the model tree + ************************************************************/ + getFirstLevelOptions(): ILevelNodeInfo[] { + return [new VnfModelInfo(this._dynamicInputsService, this._sharedTreeService, this._defaultDataGeneratorService, this._dialogService, this._vnfPopupService, this._vfModulePopupService, this._duplicateService, this._modalService, this._iframeService, this._componentInfoService, this._store) + , new NetworkModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._networkPopupService, this._duplicateService, this._modalService, this._iframeService, this._store), + new ConfigurationModelInfo(this._dynamicInputsService, this._sharedTreeService), + new VnfGroupingModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._vnfGroupPopupService, this._iframeService, this._store)]; + }; +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts new file mode 100644 index 000000000..617a81e1f --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts @@ -0,0 +1,1761 @@ +import {HttpClientTestingModule} from "@angular/common/http/testing"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {SharedTreeService} from "./shared.tree.service"; +import {ObjectToInstanceTreeService} from "./objectToInstanceTree/objectToInstanceTree.service"; +import {ObjectToTreeService} from "./objectToTree.service"; +import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service"; +import {DynamicInputsService} from "./dynamicInputs.service"; +import {DialogService} from "ng2-bootstrap-modal"; +import {VnfPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service"; +import {BasicControlGenerator} from "../../../shared/components/genericForm/formControlsServices/basic.control.generator"; +import {AaiService} from "../../../shared/services/aaiService/aai.service"; +import {NetworkPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service"; +import {NetworkControlGenerator} from "../../../shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator"; +import {VfModulePopuopService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service"; +import {VfModuleControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator"; +import {VnfGroupControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator"; +import {FeatureFlagsService} from "../../../shared/services/featureFlag/feature-flags.service"; +import {VnfControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator"; +import {NgRedux} from "@angular-redux/store"; +import {GenericFormService} from "../../../shared/components/genericForm/generic-form.service"; +import {FormBuilder} from "@angular/forms"; +import {SdcUiComponentsModule} from "onap-ui-angular"; +import {LogService} from "../../../shared/utils/log/log.service"; +import {IframeService} from "../../../shared/utils/iframe.service"; +import {BasicPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/basic.popup.service"; +import {VnfGroupPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service"; +import {DuplicateService} from "../duplicate/duplicate.service"; +import {AppState} from "../../../shared/store/reducers"; +import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service"; +import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service"; +import {AuditInfoModalComponent} from "../../../shared/components/auditInfoModal/auditInfoModal.component"; +import {ILevelNodeInfo} from "./models/basic.model.info"; +import {VnfModelInfo} from "./models/vnf/vnf.model.info"; +import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions"; +import each from "jest-each"; +import {DrawingBoardModes} from "../drawing-board.modes"; +import {ComponentInfoService} from "../component-info/component-info.service"; + +class MockAppStore { + getState() { + return getStore() + } + + dispatch() { + } +} + +class MockVnfModelInfo { + getModel() { + return {} + } +} + + +describe('Shared Tree Service', () => { + let injector; + let service: SharedTreeService; + let _objectToInstanceTreeService: ObjectToInstanceTreeService; + let store: NgRedux; + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule, SdcUiComponentsModule], + providers: [ + SharedTreeService, + ObjectToTreeService, + DefaultDataGeneratorService, + DialogService, + VnfPopupService, + BasicControlGenerator, + AaiService, + LogService, + BasicPopupService, + VnfGroupPopupService, + DuplicateService, + IframeService, + DynamicInputsService, + NetworkPopupService, + NetworkControlGenerator, + VfModulePopuopService, + VfModuleControlGenerator, + VnfGroupControlGenerator, + DialogService, + FeatureFlagsService, + VnfControlGenerator, + AaiService, + DialogService, + GenericFormService, + FormBuilder, + ErrorMsgService, + ObjectToInstanceTreeService, + ComponentInfoService, + {provide: NgRedux, useClass: MockAppStore} + ] + }); + await TestBed.compileComponents(); + injector = getTestBed(); + service = injector.get(SharedTreeService); + _objectToInstanceTreeService = injector.get(ObjectToInstanceTreeService); + store = injector.get(NgRedux); + })().then(done).catch(done.fail)); + + test('SharedTreeService should be defined', () => { + expect(service).toBeDefined(); + }); + + test('shouldShowDeleteInstanceWithChildrenModal should open modal if child exist with action create', () => { + jest.spyOn(MessageBoxService.openModal, 'next'); + let foo = () => { + + }; + let node = { + children: [{action: "Create"}, {action: "None"}], + data: { + typeName: 'VNF' + } + }; + service.shouldShowDeleteInstanceWithChildrenModal(node, "serviceModelId", foo); + expect(MessageBoxService.openModal.next).toHaveBeenCalled(); + }); + + test('openAuditInfoModal should open modal for failed instance', () => { + jest.spyOn(AuditInfoModalComponent.openInstanceAuditInfoModal, 'next'); + + let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null, null, null, null, null, null, null, null, null); + const modelMock = {"a": "a"}; + const instanceMock = {"instance": "instance", "trackById": "123456789"}; + const instanceTypeMock = "instanceTypeMock"; + jest.spyOn(modelInfoServiceMock, 'getModel').mockReturnValue(modelMock); + let node = { + data: { + modelId: '6b528779-44a3-4472-bdff-9cd15ec93450', + trackById: '1245df21', + isFailed: true + } + }; + service.openAuditInfoModal(node, "serviceModelId", instanceMock, instanceTypeMock, modelInfoServiceMock); + expect(AuditInfoModalComponent.openInstanceAuditInfoModal.next).toHaveBeenCalledWith( + { + "instance": instanceMock, + "instanceId": "serviceModelId", + "isInstanceFailed": node.data.isFailed, + "model": modelMock, + "trackById": instanceMock.trackById, + "type": instanceTypeMock + }); + }); + + test('shouldShowDeleteInstanceWithChildrfenModal should not open modal if all childs with action None', () => { + let foo = () => { + }; + spyOn(MessageBoxService.openModal, 'next'); + + let node = { + children: [{action: "None"}, {action: "None"}], + data: { + typeName: 'VNF' + } + }; + service.shouldShowDeleteInstanceWithChildrenModal(node, "serviceModelId", foo); + expect(MessageBoxService.openModal.next).not.toHaveBeenCalled(); + }); + + test('statusProperties should be prop on node according to node properties', () => { + let node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: false}); + expect(node.statusProperties).toBeDefined(); + expect(node.statusProperties).toEqual([Object({ + key: 'Prov Status:', + value: 'inProgress', + testId: 'provStatus' + }), Object({key: 'Orch Status:', value: 'completed', testId: 'orchStatus'})]); + node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: true}); + expect(node.statusProperties).toEqual([Object({ + key: 'Prov Status:', + value: 'inProgress', + testId: 'provStatus' + }), Object({key: 'Orch Status:', value: 'completed', testId: 'orchStatus'}), Object({ + key: 'In-maintenance', + value: '', + testId: 'inMaint' + })]); + }); + const enableRemoveAndEditItemsDataProvider = [ + ['Create action CREATE mode', DrawingBoardModes.CREATE ,ServiceInstanceActions.Create, true], + ['Create action VIEW mode',DrawingBoardModes.VIEW , ServiceInstanceActions.Create,false], + ['Create action RETRY_EDIT mode',DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.Create, true], + ['Create action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.Create, true], + ['Create action RETRY mode',DrawingBoardModes.RETRY, ServiceInstanceActions.Create, false], + ['None action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.None, false], + ['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]]; + each(enableRemoveAndEditItemsDataProvider).test('shouldShowEditAndDelete if child exist with %s', (description, mode, action, enabled) => { + jest.spyOn(store, 'getState').mockReturnValue({ + global: { + drawingBoardStatus: mode + } + }); + let node = { + data:{ + action: action + }, + }; + let res = service.shouldShowRemoveAndEdit(node); + expect(res).toBe(enabled); + }); +}); +function generateService() { + return { + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-488_ADIOD-vPE 0", + "isMissingData": false, + "trackById": "stigekyxrqi", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": { + "isMissingData": false, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "modelVersion": "5", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0" + }, + "instanceParams": [{}], + "trackById": "3oj23o7nupo" + } + } + }, + "vnfStoreKey": "2017-488_ADIOD-vPE 0", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "lineOfBusiness": "ONAP", + "platformName": "xxx1", + "modelInfo": { + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "5.0", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09" + }, + "legacyRegion": "11111111", + "instanceParams": [{}] + }, + "2017-388_ADIOD-vPE 0": { + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-388_ADIOD-vPE 0", + "isMissingData": false, + "trackById": "nib719t5vca", + "vfModules": {}, + "vnfStoreKey": "2017-388_ADIOD-vPE 0", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "legacyRegion": "11111", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "platformName": "platform", + "lineOfBusiness": "zzz1", + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168", + "modelName": "2017-388_ADIOD-vPE", + "modelVersion": "4.0", + "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168" + }, + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168" + }, + "2017-388_ADIOD-vPE 1": { + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-388_ADIOD-vPE 1", + "isMissingData": false, + "trackById": "cv7l1ak8vpe", + "vfModules": {}, + "vnfStoreKey": "2017-388_ADIOD-vPE 1", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "legacyRegion": "123", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "platformName": "platform", + "lineOfBusiness": "ONAP", + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413", + "modelName": "2017-388_ADIOD-vPE", + "modelVersion": "1.0", + "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413" + }, + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413" + } + }, + "instanceParams": [{}], + "validationCounter": 0, + "existingNames": {"yoav": ""}, + "existingVNFCounterMap": { + "69e09f68-8b63-4cc9-b9ff-860960b5db09": 1, + "afacccf6-397d-45d6-b5ae-94c39734b168": 1, + "0903e1c0-8e03-4936-b5c2-260653b96413": 1 + }, + "existingVnfGroupCounterMap": { + "daeb6568-cef8-417f-9075-ed259ce59f48": 0, + "c2b300e6-45de-4e5e-abda-3032bee2de56": -1 + }, + "existingNetworksCounterMap": {"ddc3f20c-08b5-40fd-af72-c6d14636b986": 1}, + "networks": { + "ExtVL 0": { + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "ExtVL 0", + "isMissingData": false, + "trackById": "s6okajvv2n8", + "networkStoreKey": "ExtVL 0", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "legacyRegion": "12355555", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "platformName": "platform", + "lineOfBusiness": null, + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c", + "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "modelName": "ExtVL", + "modelVersion": "37.0", + "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "modelCustomizationName": "ExtVL 0", + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + }, + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + } + }, + "vnfGroups": { + "groupingservicefortest..ResourceInstanceGroup..0": { + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "groupingservicefortest..ResourceInstanceGroup..0", + "isMissingData": false, + "trackById": "se0obn93qq", + "vnfGroupStoreKey": "groupingservicefortest..ResourceInstanceGroup..0", + "instanceName": "groupingservicefortestResourceInstanceGroup0", + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "4bb2e27e-ddab-4790-9c6d-1f731bc14a45", + "modelVersionId": "daeb6568-cef8-417f-9075-ed259ce59f48", + "modelName": "groupingservicefortest..ResourceInstanceGroup..0", + "modelVersion": "1", + "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..0", + "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48" + }, + "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48" + } + }, + "instanceName": "yoav", + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "ATL53", + "pause": null, + "projectName": "WATKINS", + "rollbackOnFailure": "true", + "bulkSize": 1, + "aicZoneName": "AAIATLTE-ATL53", + "owningEntityName": "WayneHolland", + "testApi": "VNF_API", + "isEcompGeneratedNaming": false, + "tenantName": "USP-SIP-IC-24335-T-01", + "modelInfo": { + "modelInvariantId": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632", + "modelVersionId": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "modelName": "action-data", + "modelVersion": "1.0", + "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd" + }, + "isALaCarte": false, + "name": "action-data", + "version": "1.0", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "category": "Network L1-3", + "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632", + "serviceType": "pnf", + "serviceRole": "Testing", + "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"}, + "isMultiStepDesign": true + }; +} + +function getStore() { + return { + "global": { + "name": null, + "flags": { + "CREATE_INSTANCE_TEST": false, + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_ASYNC_INSTANTIATION": true, + "FLAG_ASYNC_JOBS": true, + "FLAG_ADD_MSO_TESTAPI_FIELD": true, + "FLAG_UNASSIGN_SERVICE": true, + "FLAG_SERVICE_MODEL_CACHE": true, + "FLAG_COLLECTION_RESOURCE_SUPPORT": true, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_DUPLICATE_VNF": true, + "FLAG_DEFAULT_VNF": true, + "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true, + "FLAG_A_LA_CARTE_AUDIT_INFO": true, + "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true, + "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true, + "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true, + "FLAG_1902_NEW_VIEW_EDIT": true, + "FLAG_1810_IDENTIFY_SERVICE_FOR_NEW_UI": false, + "FLAG_1902_VNF_GROUPING": true, + "FLAG_SHOW_VERIFY_SERVICE": true, + "FLAG_ASYNC_ALACARTE_VFMODULE": true, + "FLAG_ASYNC_ALACARTE_VNF": true, + "FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF": true, + "FLAG_1810_AAI_LOCAL_CACHE": true, + "FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false, + "FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": false, + "FLAG_SUPPLEMENTARY_FILE": true, + "FLAG_5G_IN_NEW_INSTANTIATION_UI": true, + "FLAG_RESTRICTED_SELECT": false, + "FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY": true + }, + "drawingBoardStatus": "VIEW", + "type": "UPDATE_DRAWING_BOARD_STATUS" + }, + "service": { + "serviceHierarchy": { + "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "service": { + "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "Network L1-3", + "serviceType": "pnf", + "serviceRole": "Testing", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "serviceEcompNaming": "false", + "instantiationType": "Macro", + "inputs": {}, + "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"} + }, + "vnfs": { + "2017-388_ADIOD-vPE 1": { + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413", + "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "1.0", + "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "true", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-388_ADIOD-vPE 0": { + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-388_ADIOD-vPE", + "version": "4.0", + "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "true", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "vfModules": {}, + "volumeGroups": {}, + "vfcInstanceGroups": {} + }, + "2017-488_ADIOD-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_ADIOD-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": {}, + "commands": {}, + "properties": { + "max_instances": 1, + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "multi_stage_design": "true", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_adiodvpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:2017488_adiodvpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {} + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": { + "ExtVL 0": { + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c", + "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks", + "name": "ExtVL", + "version": "37.0", + "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "ExtVL 0" + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "ADIOD_base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vRE_BV", + "baseModule": false + }, + "inputs": {} + }, + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "ADIOD_vPFE_BV", + "baseModule": false + }, + "inputs": {} + } + }, + "pnfs": {}, + "vnfGroups": { + "groupingservicefortest..ResourceInstanceGroup..0": { + "type": "VnfGroup", + "invariantUuid": "4bb2e27e-ddab-4790-9c6d-1f731bc14a45", + "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48", + "version": "1", + "name": "groupingservicefortest..ResourceInstanceGroup..0", + "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..0", + "properties": { + "contained_resource_type": "VF", + "role": "SERVICE-ACCESS", + "function": "DATA", + "description": "DDD0", + "type": "LOAD-GROUP", + "ecomp_generated_naming": "true" + }, + "members": { + "vdbe_svc_vprs_proxy 0": { + "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c", + "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc", + "description": "A Proxy for Service vDBE_Svc_vPRS", + "name": "vDBE_Svc_vPRS Service Proxy", + "version": "1.0", + "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274", + "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14", + "sourceModelName": "vDBE_Svc_vPRS" + } + } + }, + "groupingservicefortest..ResourceInstanceGroup..1": { + "type": "VnfGroup", + "invariantUuid": "a704112d-dbc6-4e56-8d4e-aec57e95ef9a", + "uuid": "c2b300e6-45de-4e5e-abda-3032bee2de56", + "version": "1", + "name": "groupingservicefortest..ResourceInstanceGroup..1", + "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..1", + "properties": { + "contained_resource_type": "VF", + "role": "SERVICE-ACCESS", + "function": "SIGNALING", + "description": "DDD1", + "type": "LOAD-GROUP", + "ecomp_generated_naming": "true" + }, + "members": { + "tsbc0001vm001_svc_proxy 0": { + "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c", + "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc", + "description": "A Proxy for Service tsbc0001vm001_Svc", + "name": "tsbc0001vm001_Svc Service Proxy", + "version": "1.0", + "customizationUuid": "3d814462-30fb-4c62-b997-9aa360d27ead", + "inputs": {}, + "commands": {}, + "properties": {}, + "type": "Service Proxy", + "sourceModelUuid": "28aeb8f6-5620-4148-8bfb-a5fb406f0309", + "sourceModelInvariant": "c989ab9a-33c7-46ec-b521-1b2daef5f047", + "sourceModelName": "tsbc0001vm001_Svc" + } + } + } + } + }, + "b75e0d22-05ff-4448-9266-5f0d4e1dbbd6": { + "service": { + "uuid": "b75e0d22-05ff-4448-9266-5f0d4e1dbbd6", + "invariantUuid": "5b9c0f33-eec1-484a-bf77-736a6644d7a8", + "name": "Using VID for VoIP Network Instantiations Shani", + "version": "1.0", + "toscaModelURL": null, + "category": "VoIP Call Control", + "serviceType": "", + "serviceRole": "", + "description": "Using VID for VoIP Network Instantiations Shani", + "serviceEcompNaming": "true", + "instantiationType": "ClientConfig", + "inputs": {}, + "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"} + }, + "vnfs": {}, + "networks": { + "AIC30_CONTRAIL_BASIC 0": { + "uuid": "ac815c68-35b7-4ea4-9d04-92d2f844b27c", + "invariantUuid": "de01afb5-532b-451d-aac4-ff9ff0644060", + "description": "Basic contrail 3.0.x L3 network for AIC 3.x sites. ", + "name": "AIC30_CONTRAIL_BASIC", + "version": "3.0", + "customizationUuid": "e94d61f7-b4b2-489a-a4a7-30b1a1a80daf", + "inputs": {}, + "commands": {}, + "properties": { + "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}", + "exVL_naming": "{ecomp_generated_naming=true}", + "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}", + "network_scope": "Service", + "network_type": "AIC30_CONTRAIL_BASIC", + "network_technology": "Contrail", + "network_homing": "{ecomp_selected_instance_node_target=false}" + }, + "type": "VL", + "modelCustomizationName": "AIC30_CONTRAIL_BASIC 0" + } + }, + "collectionResource": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": {}, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {}, + "vnfGroups": {} + } + }, + "serviceInstance": { + "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "vnfs": { + "2017-488_ADIOD-vPE 0": { + "action": "None", + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-488_ADIOD-vPE 0", + "isMissingData": false, + "trackById": "stigekyxrqi", + "vfModules": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": { + "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": { + "isMissingData": false, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0", + "modelVersion": "5", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0" + }, + "instanceParams": [{}], + "trackById": "3oj23o7nupo" + } + } + }, + "vnfStoreKey": "2017-488_ADIOD-vPE 0", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "lineOfBusiness": "ONAP", + "platformName": "xxx1", + "modelInfo": { + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "modelName": "2017-488_ADIOD-vPE", + "modelVersion": "5.0", + "modelCustomizationName": "2017-488_ADIOD-vPE 0", + "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09" + }, + "legacyRegion": "11111111", + "instanceParams": [{}] + }, + "2017-388_ADIOD-vPE 0": { + "action": "Create", + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-388_ADIOD-vPE 0", + "isMissingData": false, + "trackById": "nib719t5vca", + "vfModules": {}, + "vnfStoreKey": "2017-388_ADIOD-vPE 0", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "legacyRegion": "11111", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "platformName": "platform", + "lineOfBusiness": "zzz1", + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168", + "modelName": "2017-388_ADIOD-vPE", + "modelVersion": "4.0", + "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c", + "modelCustomizationName": "2017-388_ADIOD-vPE 0", + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168" + }, + "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168" + }, + "2017-388_ADIOD-vPE 1": { + "action": "None", + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-388_ADIOD-vPE 1", + "isMissingData": false, + "trackById": "cv7l1ak8vpe", + "vfModules": {}, + "vnfStoreKey": "2017-388_ADIOD-vPE 1", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "legacyRegion": "123", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "platformName": "platform", + "lineOfBusiness": "ONAP", + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d", + "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413", + "modelName": "2017-388_ADIOD-vPE", + "modelVersion": "1.0", + "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a", + "modelCustomizationName": "2017-388_ADIOD-vPE 1", + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413" + }, + "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413" + } + }, + "instanceParams": [{}], + "validationCounter": 0, + "existingNames": {"yoav": ""}, + "existingVNFCounterMap": { + "69e09f68-8b63-4cc9-b9ff-860960b5db09": 1, + "afacccf6-397d-45d6-b5ae-94c39734b168": 1, + "0903e1c0-8e03-4936-b5c2-260653b96413": 1 + }, + "existingVnfGroupCounterMap": { + "daeb6568-cef8-417f-9075-ed259ce59f48": 0, + "c2b300e6-45de-4e5e-abda-3032bee2de56": -1 + }, + "existingNetworksCounterMap": {"ddc3f20c-08b5-40fd-af72-c6d14636b986": 1}, + "networks": { + "ExtVL 0": { + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "ExtVL 0", + "isMissingData": false, + "trackById": "s6okajvv2n8", + "networkStoreKey": "ExtVL 0", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "legacyRegion": "12355555", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "platformName": "platform", + "lineOfBusiness": null, + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c", + "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986", + "modelName": "ExtVL", + "modelVersion": "37.0", + "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f", + "modelCustomizationName": "ExtVL 0", + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + }, + "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986" + } + }, + "vnfGroups": { + "groupingservicefortest..ResourceInstanceGroup..0": { + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "groupingservicefortest..ResourceInstanceGroup..0", + "isMissingData": false, + "trackById": "se0obn93qq", + "vnfGroupStoreKey": "groupingservicefortest..ResourceInstanceGroup..0", + "instanceName": "groupingservicefortestResourceInstanceGroup0", + "instanceParams": [{}], + "modelInfo": { + "modelInvariantId": "4bb2e27e-ddab-4790-9c6d-1f731bc14a45", + "modelVersionId": "daeb6568-cef8-417f-9075-ed259ce59f48", + "modelName": "groupingservicefortest..ResourceInstanceGroup..0", + "modelVersion": "1", + "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..0", + "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48" + }, + "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48" + } + }, + "instanceName": "yoav", + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "lcpCloudRegionId": "JANET25", + "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", + "aicZoneId": "ATL53", + "pause": null, + "projectName": "WATKINS", + "rollbackOnFailure": "true", + "bulkSize": 1, + "aicZoneName": "AAIATLTE-ATL53", + "owningEntityName": "WayneHolland", + "testApi": "VNF_API", + "isEcompGeneratedNaming": false, + "tenantName": "USP-SIP-IC-24335-T-01", + "modelInfo": { + "modelInvariantId": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632", + "modelVersionId": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "modelName": "action-data", + "modelVersion": "1.0", + "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd" + }, + "isALaCarte": false, + "name": "action-data", + "version": "1.0", + "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM", + "category": "Network L1-3", + "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632", + "serviceType": "pnf", + "serviceRole": "Testing", + "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"}, + "isMultiStepDesign": true + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [{ + "id": "JANET25", + "name": "JANET25 (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, {"id": "hvf6", "name": "hvf6 (AIC)", "isPermitted": true, "cloudOwner": "irma-aic"}], + "lcpRegionsTenantsMap": { + "JANET25": [{ + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true, + "cloudOwner": "irma-aic" + }], + "hvf6": [{ + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true, + "cloudOwner": "irma-aic" + }] + } + }, + "subscribers": [{ + "id": "ERICA5779-Subscriber-2", + "name": "ERICA5779-Subscriber-2", + "isPermitted": false + }, { + "id": "ERICA5779-Subscriber-3", + "name": "ERICA5779-Subscriber-3", + "isPermitted": false + }, { + "id": "ERICA5779-Subscriber-4", + "name": "ERICA5779-Subscriber-5", + "isPermitted": false + }, { + "id": "ERICA5779-TestSub-PWT-101", + "name": "ERICA5779-TestSub-PWT-101", + "isPermitted": false + }, { + "id": "ERICA5779-TestSub-PWT-102", + "name": "ERICA5779-TestSub-PWT-102", + "isPermitted": false + }, { + "id": "ERICA5779-TestSub-PWT-103", + "name": "ERICA5779-TestSub-PWT-103", + "isPermitted": false + }, { + "id": "31739f3e-526b-11e6-beb8-9e71128cae77", + "name": "CRAIG/ROBERTS", + "isPermitted": false + }, {"id": "DHV1707-TestSubscriber-2", "name": "DALE BRIDGES", "isPermitted": false}, { + "id": "jimmy-example", + "name": "JimmyExampleCust-20161102", + "isPermitted": false + }, {"id": "jimmy-example2", "name": "JimmyExampleCust-20161103", "isPermitted": false}, { + "id": "CAR_2020_ER", + "name": "CAR_2020_ER", + "isPermitted": true + }, { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, { + "id": "21014aa2-526b-11e6-beb8-9e71128cae77", + "name": "JULIO ERICKSON", + "isPermitted": false + }, { + "id": "DHV1707-TestSubscriber-1", + "name": "LLOYD BRIDGES", + "isPermitted": false + }, {"id": "e433710f-9217-458d-a79d-1c7aff376d89", "name": "SILVIA ROBBINS", "isPermitted": true}], + "productFamilies": null, + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [{ + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, {"id": "16", "name": "LINDSEY", "isPermitted": false}, { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, {"id": "5", "name": "Kennedy", "isPermitted": false}, { + "id": "14", + "name": "SSD", + "isPermitted": false + }, {"id": "1", "name": "TYLER SILVIA", "isPermitted": true}, { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, {"id": "3", "name": "vJamie", "isPermitted": false}, { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, {"id": "18", "name": "vCarroll", "isPermitted": false}, { + "id": "9", + "name": "vMME", + "isPermitted": false + }, {"id": "13", "name": "vMMSC", "isPermitted": false}, { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, {"id": "15", "name": "vMOG", "isPermitted": false}, { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, {"id": "11", "name": "vSCP", "isPermitted": false}, { + "id": "6", + "name": "vSEGW", + "isPermitted": false + }, {"id": "7", "name": "vVM", "isPermitted": false}, {"id": "4", "name": "vVoiceMail", "isPermitted": false}] + }, + "aicZones": [{"id": "ATL53", "name": "AAIATLTE-ATL53"}, {"id": "ABC15", "name": "AAITESAN-ABC15"}, { + "id": "TES36", + "name": "ABCEETES-TES36" + }, {"id": "ATL54", "name": "AICFTAAI-ATL54"}, {"id": "ATL43", "name": "AICLOCID-ATL43"}, { + "id": "AMD15", + "name": "AMDFAA01-AMD15" + }, {"id": "AMF11", "name": "AMDOCS01-AMF11"}, {"id": "RCT1", "name": "AMSTERNL-RCT1"}, { + "id": "AMS1", + "name": "AMSTNLBW-AMS1" + }, {"id": "HJH1", "name": "AOEEQQQD-HJH1"}, {"id": "HJE1", "name": "AOEEWWWD-HJE1"}, { + "id": "MCS1", + "name": "ASACMAMS-MCS1" + }, {"id": "AUG1", "name": "ASDFGHJK-AUG1"}, {"id": "LUC1", "name": "ATLDFGYC-LUC1"}, { + "id": "ATL1", + "name": "ATLNGAMA-ATL1" + }, {"id": "ATL2", "name": "ATLNGANW-ATL2"}, {"id": "HPO1", "name": "ATLNGAUP-HPO1"}, { + "id": "ANI1", + "name": "ATLNGTRE-ANI1" + }, {"id": "ATL44", "name": "ATLSANAB-ATL44"}, {"id": "ATL56", "name": "ATLSANAC-ATL56"}, { + "id": "ABC11", + "name": "ATLSANAI-ABC11" + }, {"id": "ATL34", "name": "ATLSANAI-ATL34"}, {"id": "ATL63", "name": "ATLSANEW-ATL63"}, { + "id": "ABC12", + "name": "ATLSECIA-ABC12" + }, {"id": "AMD18", "name": "AUDIMA01-AMD18"}, {"id": "AVT1", "name": "AVTRFLHD-AVT1"}, { + "id": "KIT1", + "name": "BHYJFGLN-KIT1" + }, {"id": "BHY17", "name": "BHYTFRF3-BHY17"}, {"id": "RTW5", "name": "BHYTFRY4-RTW5"}, { + "id": "RTZ4", + "name": "BHYTFRZ6-RTZ4" + }, {"id": "RTD2", "name": "BHYTFRk4-RTD2"}, {"id": "BNA1", "name": "BNARAGBK-BNA1"}, { + "id": "VEL1", + "name": "BNMLKUIK-VEL1" + }, {"id": "BOT1", "name": "BOTHWAKY-BOT1"}, {"id": "CAL33", "name": "CALIFORN-CAL33"}, { + "id": "ATL84", + "name": "CANTTCOC-ATL84" + }, {"id": "HSD1", "name": "CHASKCDS-HSD1"}, {"id": "CHI1", "name": "CHILLIWE-CHI1"}, { + "id": "XCP12", + "name": "CHKGH123-XCP12" + }, {"id": "JNL1", "name": "CJALSDAC-JNL1"}, {"id": "KJN1", "name": "CKALDKSA-KJN1"}, { + "id": "CLG1", + "name": "CLGRABAD-CLG1" + }, {"id": "CKL1", "name": "CLKSKCKK-CKL1"}, {"id": "ATL66", "name": "CLLIAAII-ATL66"}, { + "id": "CQK1", + "name": "CQKSCAKK-CQK1" + }, {"id": "CWY1", "name": "CWYMOWBS-CWY1"}, {"id": "DKJ1", "name": "DKJSJDKA-DKJ1"}, { + "id": "DSF45", + "name": "DSFBG123-DSF45" + }, {"id": "DSL12", "name": "DSLFK242-DSL12"}, {"id": "FDE55", "name": "FDERT555-FDE55"}, { + "id": "VEN2", + "name": "FGHJUHIL-VEN2" + }, {"id": "ATL64", "name": "FORLOAAJ-ATL64"}, {"id": "GNV1", "name": "GNVLSCTL-GNV1"}, { + "id": "SAN22", + "name": "GNVLSCTL-SAN22" + }, {"id": "KAP1", "name": "HIOUYTRQ-KAP1"}, {"id": "LIS1", "name": "HOSTPROF-LIS1"}, { + "id": "HRG1", + "name": "HRGHRGGS-HRG1" + }, {"id": "HST25", "name": "HSTNTX01-HST25"}, {"id": "STN27", "name": "HSTNTX01-STN27"}, { + "id": "HST70", + "name": "HSTNTX70-HST70" + }, {"id": "KOR1", "name": "HYFLNBVT-KOR1"}, {"id": "RAD10", "name": "INDIPUNE-RAD10"}, { + "id": "REL1", + "name": "INGERFGT-REL1" + }, {"id": "JAD1", "name": "JADECLLI-JAD1"}, {"id": "HKA1", "name": "JAKHLASS-HKA1"}, { + "id": "JCS1", + "name": "JCSJSCJS-JCS1" + }, {"id": "JCV1", "name": "JCVLFLBW-JCV1"}, {"id": "KGM2", "name": "KGMTNC20-KGM2"}, { + "id": "KJF12", + "name": "KJFDH123-KJF12" + }, {"id": "JGS1", "name": "KSJKKKKK-JGS1"}, {"id": "LAG1", "name": "LARGIZON-LAG1"}, { + "id": "LAG1a", + "name": "LARGIZON-LAG1a" + }, {"id": "LAG45", "name": "LARGIZON-LAG1a"}, {"id": "LAG1b", "name": "LARGIZON-LAG1b"}, { + "id": "WAN1", + "name": "LEIWANGW-WAN1" + }, {"id": "DSA1", "name": "LKJHGFDS-DSA1"}, {"id": "LON1", "name": "LONEENCO-LON1"}, { + "id": "SITE", + "name": "LONEENCO-SITE" + }, {"id": "ZXL1", "name": "LWLWCANN-ZXL1"}, {"id": "MTN20", "name": "MDTWNJ21-MTN20"}, { + "id": "MTN32", + "name": "MDTWNJ21-MTN32" + }, {"id": "AMD13", "name": "MEMATLAN-AMD13"}, {"id": "MIC54", "name": "MICHIGAN-MIC54"}, { + "id": "MAR1", + "name": "MNBVCXZM-MAR1" + }, {"id": "NCA1", "name": "NCANCANN-NCA1"}, {"id": "NFT1", "name": "NFTJSSSS-NFT1"}, { + "id": "GAR1", + "name": "NGFVSJKO-GAR1" + }, {"id": "NYC1", "name": "NYCMNY54-NYC1"}, {"id": "OKC1", "name": "OKCBOK55-OKC1"}, { + "id": "OLG1", + "name": "OLHOLHOL-OLG1" + }, {"id": "OLK1", "name": "OLKOLKLS-OLK1"}, {"id": "NIR1", "name": "ORFLMANA-NIR1"}, { + "id": "JAN1", + "name": "ORFLMATT-JAN1" + }, {"id": "ORL1", "name": "ORLDFLMA-ORL1"}, {"id": "PAR1", "name": "PARSFRCG-PAR1"}, { + "id": "PBL1", + "name": "PBLAPBAI-PBL1" + }, {"id": "mac10", "name": "PKGTESTF-mac10"}, {"id": "mac20", "name": "PKGTESTF-mac20"}, { + "id": "TIR2", + "name": "PLKINHYI-TIR2" + }, {"id": "IBB1", "name": "PLMKOIJU-IBB1"}, {"id": "COM1", "name": "PLMKOPIU-COM1"}, { + "id": "POI1", + "name": "PLMNJKIU-POI1" + }, {"id": "PLT1", "name": "PLTNCA60-PLT1"}, {"id": "POI22", "name": "POIUY123-POI22"}, { + "id": "DCC1", + "name": "POIUYTGH-DCC1" + }, {"id": "DCC1a", "name": "POIUYTGH-DCC1a"}, {"id": "DCC1b", "name": "POIUYTGH-DCC1b"}, { + "id": "DCC2", + "name": "POIUYTGH-DCC2" + }, {"id": "DCC3", "name": "POIUYTGH-DCC3"}, {"id": "IAA1", "name": "QAZXSWED-IAA1"}, { + "id": "QWE1", + "name": "QWECLLI1-QWE1" + }, {"id": "NUM1", "name": "QWERTYUI-NUM1"}, {"id": "RAD1", "name": "RADICAL1-RAD1"}, { + "id": "RJN1", + "name": "RJNRBZAW-RJN1" + }, {"id": "SAA13", "name": "SAIT1AA9-SAA13"}, {"id": "SAA14", "name": "SAIT1AA9-SAA14"}, { + "id": "SDD81", + "name": "SAIT1DD6-SDD81" + }, {"id": "SDD82", "name": "SAIT1DD9-SDD82"}, {"id": "SAA11", "name": "SAIT9AA2-SAA11"}, { + "id": "SAA80", + "name": "SAIT9AA3-SAA80" + }, {"id": "SAA12", "name": "SAIT9AF8-SAA12"}, {"id": "SCC80", "name": "SAIT9CC3-SCC80"}, { + "id": "ATL75", + "name": "SANAAIRE-ATL75" + }, {"id": "ICC1", "name": "SANJITAT-ICC1"}, {"id": "SCK1", "name": "SCKSCKSK-SCK1"}, { + "id": "EHH78", + "name": "SDCSHHH5-EHH78" + }, {"id": "SAA78", "name": "SDCTAAA1-SAA78"}, {"id": "SAX78", "name": "SDCTAXG1-SAX78"}, { + "id": "SBX78", + "name": "SDCTBXG1-SBX78" + }, {"id": "SEE78", "name": "SDCTEEE4-SEE78"}, {"id": "SGG78", "name": "SDCTGGG1-SGG78"}, { + "id": "SXB78", + "name": "SDCTGXB1-SXB78" + }, {"id": "SJJ78", "name": "SDCTJJJ1-SJJ78"}, {"id": "SKK78", "name": "SDCTKKK1-SKK78"}, { + "id": "SLF78", + "name": "SDCTLFN1-SLF78" + }, {"id": "SLL78", "name": "SDCTLLL1-SLL78"}, {"id": "MAD11", "name": "SDFQWGKL-MAD11"}, { + "id": "HGD1", + "name": "SDFQWHGD-HGD1" + }, {"id": "SBB78", "name": "SDIT1BBB-SBB78"}, {"id": "SDG78", "name": "SDIT1BDG-SDG78"}, { + "id": "SBU78", + "name": "SDIT1BUB-SBU78" + }, {"id": "SHH78", "name": "SDIT1HHH-SHH78"}, {"id": "SJU78", "name": "SDIT1JUB-SJU78"}, { + "id": "SNA1", + "name": "SNANTXCA-SNA1" + }, {"id": "SAM1", "name": "SNDGCA64-SAN1"}, {"id": "SNG1", "name": "SNGPSIAU-SNG1"}, { + "id": "SSA56", + "name": "SSIT2AA7-SSA56" + }, {"id": "STG1", "name": "STTGGE62-STG1"}, {"id": "STT1", "name": "STTLWA02-STT1"}, { + "id": "SYD1", + "name": "SYDNAUBV-SYD1" + }, {"id": "ATL99", "name": "TEESTAAI-ATL43"}, {"id": "ATL98", "name": "TEESTAAI-ATL43"}, { + "id": "ATL76", + "name": "TELEPAAI-ATL76" + }, {"id": "ABC14", "name": "TESAAISA-ABC14"}, {"id": "TAT33", "name": "TESAAISA-TAT33"}, { + "id": "TAT34", + "name": "TESAAISB-TAT34" + }, {"id": "TAT37", "name": "TESAAISD-TAT37"}, {"id": "ATL62", "name": "TESSASCH-ATL62"}, { + "id": "TLP1", + "name": "TLPNXM18-TLP1" + }, {"id": "SAN13", "name": "TOKYJPFA-SAN13"}, {"id": "TOK1", "name": "TOKYJPFA-TOK1"}, { + "id": "TOL1", + "name": "TOLDOH21-TOL1" + }, {"id": "TOR1", "name": "TOROONXN-TOR1"}, {"id": "TOY1", "name": "TORYONNZ-TOY1"}, { + "id": "ATL35", + "name": "TTESSAAI-ATL35" + }, {"id": "TUF1", "name": "TUFCLLI1-TUF1"}, {"id": "SAI1", "name": "UBEKQLPD-SAI1"}, { + "id": "UUU4", + "name": "UUUAAAUU-UUU4" + }, {"id": "YYY1", "name": "UUUAIAAI-YYY1"}, {"id": "BAN1", "name": "VSDKYUTP-BAN1"}, { + "id": "WAS1", + "name": "WASHDCSW-WAS1" + }, {"id": "APP1", "name": "WBHGTYUI-APP1"}, {"id": "SUL2", "name": "WERTYUJK-SUL2"}, { + "id": "DEF2", + "name": "WSBHGTYL-DEF2" + }, {"id": "DHA12", "name": "WSXEDECF-DHA12"}, {"id": "MNT11", "name": "WSXEFBTH-MNT11"}, { + "id": "RAJ1", + "name": "YGBIJNLQ-RAJ1" + }, {"id": "JAG1", "name": "YUDFJULP-JAG1"}, {"id": "ZEN1", "name": "ZENCLLI1-ZEN1"}, { + "id": "ZOG1", + "name": "ZOGASTRO-ZOG1" + }, {"id": "SDE1", "name": "ZXCVBNMA-SDE1"}, {"id": "SIP1", "name": "ZXCVBNMK-SIP1"}, { + "id": "JUL1", + "name": "ZXCVBNMM-JUL1" + }, {"id": "ERT1", "name": "ertclli1-ERT1"}, {"id": "IOP1", "name": "iopclli1-IOP1"}, { + "id": "OPA1", + "name": "opaclli1-OPA1" + }, {"id": "RAI1", "name": "poiuytre-RAI1"}, {"id": "PUR1", "name": "purelyde-PUR1"}, { + "id": "RTY1", + "name": "rtyclli1-RTY1" + }, {"id": "SDF1", "name": "sdfclli1-SDF1"}, {"id": "SSW56", "name": "ss8126GT-SSW56"}, { + "id": "UIO1", + "name": "uioclli1-UIO1" + }], + "categoryParameters": { + "owningEntityList": [{ + "id": "aaa1", + "name": "aaa1" + }, {"id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", "name": "WayneHolland"}, { + "id": "Melissa", + "name": "Melissa" + }], + "projectList": [{"id": "WATKINS", "name": "WATKINS"}, {"id": "x1", "name": "x1"}, {"id": "yyy1", "name": "yyy1"}], + "lineOfBusinessList": [{"id": "ONAP", "name": "ONAP"}, {"id": "zzz1", "name": "zzz1"}], + "platformList": [{"id": "platform", "name": "platform"}, {"id": "xxx1", "name": "xxx1"}] + }, + "type": "UPDATE_LCP_REGIONS_AND_TENANTS" + } + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts new file mode 100644 index 000000000..5a023d55c --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts @@ -0,0 +1,278 @@ +import {Injectable} from "@angular/core"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions"; +import {MessageBoxData} from "../../../shared/components/messageBox/messageBox.data"; +import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service"; +import * as _ from "lodash"; +import {DrawingBoardModes} from "../drawing-board.modes"; +import {AuditInfoModalComponent} from "../../../shared/components/auditInfoModal/auditInfoModal.component"; +import {VnfModelInfo} from "./models/vnf/vnf.model.info"; +import {ILevelNodeInfo} from "./models/basic.model.info"; + +@Injectable() +export class SharedTreeService { + private _sharedTreeService: SharedTreeService; + constructor(private _store: NgRedux) { + } + + /*********************************************************** + * return if instance has missing data + * @param instance - vnf instance + * @param dynamicInputs - from the instance + * @param isEcompGeneratedNaming + ************************************************************/ + selectedVNF: string = null; + + + getSelectedVNF(): string { + return this.selectedVNF; + } + + setSelectedVNF(node): void { + if (_.isNil(node) || node.data.type !== 'VF') { + this.selectedVNF = null; + } else { + this.selectedVNF = node.data.vnfStoreKey; + } + } + + hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean, requiredFields: string[]): boolean { + if (!isEcompGeneratedNaming && _.isEmpty(instance.instanceName)) { + return true; + } + + for (let field of requiredFields) { + if (_.isEmpty(instance[field])) { + return true; + } + } + + for (let field of dynamicInputs) { + if (field.isRequired && !_.isNil(instance.instanceParams) && _.isEmpty(instance.instanceParams[0][field.id])) { + return true; + } + } + return false; + } + + + addingStatusProperty(node) { + node['statusProperties'] = []; + node['statusProperties'].push({key: 'Prov Status:', value: node.provStatus, testId: 'provStatus'}); + node['statusProperties'].push({key: 'Orch Status:', value: node.orchStatus, testId: 'orchStatus'}); + if (node.inMaint) { + node['statusProperties'].push({key: 'In-maintenance', value: '', testId: 'inMaint'}); + } + return node; + } + + /********************************************** + * should delete or remove child instance's + "new" -> should remove + !new" -> should change action status + **********************************************/ + removeDeleteAllChild(node, serviceModelId: string, callback): void { + for (let nodeChild of node.children) { + if (nodeChild.data.action === ServiceInstanceActions.Create) { + if (!_.isNil(nodeChild.data) && !_.isNil(nodeChild.data.menuActions) && !_.isNil(nodeChild.data.menuActions['remove'])) { + nodeChild.data.menuActions['remove']['method'](nodeChild, serviceModelId); + } + } else { + if (!_.isNil(nodeChild.data) && !_.isNil(nodeChild.data.menuActions) && !_.isNil(nodeChild.data.menuActions['delete'])) { + nodeChild.data.menuActions['delete']['method'](nodeChild, serviceModelId); + } + } + } + callback(node, serviceModelId); + } + + + /********************************************** + * should undo delete child instance's + **********************************************/ + undoDeleteAllChild(node, serviceModelId: string, callback): void { + for (let nodeChild of node.children) { + if (!_.isNil(nodeChild.data) && !_.isNil(nodeChild.data.menuActions) && !_.isNil(nodeChild.data.menuActions['undoDelete'])) { + nodeChild.data.menuActions['undoDelete']['method'](nodeChild, serviceModelId); + } + } + callback(node, serviceModelId); + } + + /********************************************** + * should return true if can delete + **********************************************/ + shouldShowDelete(node): boolean { + const mode = this._store.getState().global.drawingBoardStatus; + if (!_.isNil(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && !_.isNil(node.data.menuActions['delete'])) { + if (mode !== DrawingBoardModes.EDIT || node.data.action === ServiceInstanceActions.Create) { + return false; + } else if (node.data.action === ServiceInstanceActions.None) { + return true + } + return false; + } + return false; + } + + /********************************************** + * should return true if can undo delete + **********************************************/ + shouldShowUndoDelete(node): boolean { + const mode = this._store.getState().global.drawingBoardStatus; + if (mode === DrawingBoardModes.EDIT && !_.isNil(node.data.action) && !_.isNil(node.data.menuActions['undoDelete'])) { + if (node.data.action === ServiceInstanceActions.Create || node.data.action === ServiceInstanceActions.Delete) { + return false; + } else if (node.data.action.split('_').pop() === 'Delete') { + return true + } + return false; + } + return false; + } + /********************************************** + * should return true if can remove or edit + * enabled only on edit/design mode and for new instances + **********************************************/ + shouldShowRemoveAndEdit(node): boolean { + const mode = this._store.getState().global.drawingBoardStatus; + if (!_.isNil(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && + mode !== DrawingBoardModes.VIEW && mode !== DrawingBoardModes.RETRY) { + return true; + } + return false; + } + /********************************************** + * should return true if can duplicate by mode + **********************************************/ + shouldShowDuplicate(node): boolean { + const mode = this._store.getState().global.drawingBoardStatus; + return !mode.includes('RETRY'); + } + + /********************************************** + * should return true if can audit info + **********************************************/ + shouldShowAuditInfo(node): boolean { + return this.isRetryMode() || (!_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action !== ServiceInstanceActions.Create); + } + + + isRetryMode(): boolean { + const mode = this._store.getState().global.drawingBoardStatus; + return mode.includes('RETRY'); + } + + + /********************************************** + * should return true if can add node instances + **********************************************/ + shouldShowAddIcon(): boolean{ + const mode = this._store.getState().global.drawingBoardStatus; + return mode === DrawingBoardModes.EDIT || mode=== DrawingBoardModes.CREATE; + } + /************************************************ + return number of instances with action Delete + @type: vnfs networks, vngGroups (not vfModule) + @node : node model from the left tree + ************************************************/ + getExistingInstancesWithDeleteMode(node, serviceModelId: string, type: string): number { + let counter = 0; + const existingInstances = this._store.getState().service.serviceInstance[serviceModelId][type]; + const modelUniqueId = node.data.modelUniqueId; + if (!_.isNil(existingInstances)) { + for (let instanceKey in existingInstances) { + if (!_.isNil(existingInstances[instanceKey].action)) { + if (existingInstances[instanceKey].modelInfo.modelUniqueId === modelUniqueId && existingInstances[instanceKey].action.split('_').pop() === 'Delete') { + counter++; + } + } + } + } + return counter; + } + + + isServiceOnDeleteMode(serviceId: string): boolean { + return this._store.getState().service.serviceInstance[serviceId].action === ServiceInstanceActions.Delete; + } + + + openModal(node : any | any[] , serviceModelId : string, cb : Function) : void { + let type: string = _.isArray(node) ? 'Service' : node.data.typeName; + let messageBoxData: MessageBoxData = new MessageBoxData( + "Mark for Delete", + `You are about to mark for delete this ${type} this will also mark all its children and remove all new instances just added`, + "warning", + "md", + [ + { + text: "Mark and remove", + size: "large", + callback: cb.bind(this, node, serviceModelId), + closeModal: true + }, + {text: "Don’t Remove", size: "medium", closeModal: true} + ]); + + MessageBoxService.openModal.next(messageBoxData); + } + + someChildHasCreateAction(nodes: any | any[]) : boolean { + let nodesArr = _.isArray(nodes) ? nodes : [nodes]; + for(const node of nodesArr){ + if(node.action === ServiceInstanceActions.Create) {return true;} + if(node.children){ + for (let nodeChild of node.children) { + if (nodeChild.action === ServiceInstanceActions.Create) { + return true; + } + if(nodeChild.children && nodeChild.children.length > 0){ + for(let child of nodeChild.children){ + let hasCreateAction = this.someChildHasCreateAction(child); + if(hasCreateAction) { + return true; + } + } + } + } + } + } + return false; + } + + shouldShowDeleteInstanceWithChildrenModal(node : any | any[] , serviceModelId : string, cb : Function) : void { + if(this.someChildHasCreateAction(node)){ + this.openModal(node , serviceModelId, cb); + }else { + cb(node, serviceModelId) + } + } + + + isFailed(node): boolean { + return !_.isNil(node.data) ? node.data.isFailed : false; + } + + /************************************************ + in a case the node is failed e.g. not instantiated correctly + the function will call to openRetryInstanceAuditInfoModal + @node : node model from the left tree + @serviceModelId : serviceModelId + @instance : instance + @instanceType: instanceType + @modelInfoService : the model (vnf, vfmodule, network, vnfgroup)object that call to the function (this) + ************************************************/ + openAuditInfoModal(node, serviceModelId, instance, instanceType, modelInfoService : ILevelNodeInfo){ + let isInstanceFailed = this.isFailed(node); + AuditInfoModalComponent.openInstanceAuditInfoModal.next({ + instanceId: serviceModelId, + type: instanceType, + model: modelInfoService.getModel(node.data.modelName, instance, this._store.getState().service.serviceHierarchy[serviceModelId]), + instance, + isInstanceFailed, + trackById: instance.trackById + }); + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.html new file mode 100644 index 000000000..0222b8097 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.html @@ -0,0 +1,8 @@ +
+ + +
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.scss new file mode 100644 index 000000000..5d9996256 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.scss @@ -0,0 +1,3 @@ +.search-container { + min-width: 40px; +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.spec.ts new file mode 100644 index 000000000..754dd6690 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.spec.ts @@ -0,0 +1,93 @@ +import {ComponentFixture, TestBed} from '@angular/core/testing'; +import {HttpClientTestingModule} from '@angular/common/http/testing'; +import {CUSTOM_ELEMENTS_SCHEMA} from "@angular/core"; +import {SearchComponent} from "./search.component"; +import {FormsModule, ReactiveFormsModule} from "@angular/forms"; + +describe('Spinner component', () => { + + let component: SearchComponent; + let fixture: ComponentFixture; + + beforeAll(done => (async () => { + TestBed.configureTestingModule({ + imports: [FormsModule, ReactiveFormsModule, HttpClientTestingModule], + providers: [], + declarations: [SearchComponent], + schemas: [CUSTOM_ELEMENTS_SCHEMA] + }); + await TestBed.compileComponents(); + + fixture = TestBed.createComponent(SearchComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + + })().then(done).catch(done.fail)); + + + test('component should be defined', () => { + expect(component).toBeDefined(); + }); + + test('searchTree should return all nodes that include some text: with text', () => { + component.nodes = [ + { + name: 'name_1' + }, + { + name: 'name_2' + }, + { + name: 'name_3' + }, + { + name: 'name_3' + }]; + jest.spyOn(component.updateNodes, 'emit'); + spyOn(component, 'expandParentByNodeId').and.stub(); + component.searchTree('name_1'); + + expect(component.updateNodes.emit).toHaveBeenCalledWith({ + nodes: [ + { + name: 'name_1' + }, + { + name: 'name_2' + }, + { + name: 'name_3' + }, + { + name: 'name_3' + }], + filterValue: 'name_1' + }); + }); + + test('searchTree should return all nodes that include some text: without text', () => { + component.nodes = [ + { + name: 'name_1', + children: [ + { + name: 'name_child_1' + } + ] + }, + { + name: 'name_2' + }, + { + name: 'name_3' + }, + { + name: 'name_4' + }]; + jest.spyOn(component.updateNodes, 'emit'); + spyOn(component, 'expandParentByNodeId').and.stub(); + component.searchTree(''); + + expect(component.updateNodes.emit).toHaveBeenCalled(); + }); +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.ts new file mode 100644 index 000000000..19edbcd09 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/search/search.component.ts @@ -0,0 +1,50 @@ +import {Component, EventEmitter, Input, Output} from "@angular/core"; +import {IDType, ITreeNode} from "angular-tree-component/dist/defs/api"; +import * as _ from 'lodash'; + +@Component({ + selector: 'search-component', + templateUrl: './search.component.html', + styleUrls: ['./search.component.scss'] +}) +export class SearchComponent { + @Input() tree; + @Input() nodes; + @Input() inputTestId: string; + + @Output() updateNodes: EventEmitter = new EventEmitter(); + + searchTree(searchText: string): void { + if(_.isNil(searchText)){ + return; + } + let __this = this; + let results: ITreeNode[] = []; + this.nodes.forEach( (node) => { + __this.searchTreeNode(node, searchText, results); + }); + results.forEach(function (result) { + __this.expandParentByNodeId(result.id) + }); + this.updateNodes.emit({ + nodes: this.nodes, + filterValue: searchText + }); + return; + } + + expandParentByNodeId(id: IDType): void { + this.tree.treeModel.getNodeById(id).parent.expand(); + } + + searchTreeNode(node, searchText: string, results): void { + if (node.name.toLowerCase().indexOf(searchText.toLowerCase()) != -1) { + results.push(node); + } + if (node.children != null) { + for (let i = 0; i < node.children.length; i++) { + this.searchTreeNode(node.children[i], searchText, results); + } + } + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html index 5b2f22d5f..059937f6d 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html @@ -1,13 +1,13 @@ -
- -
-
- - - - - - - +
+
+ +
+
+ + + +
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.scss index 69546a6c0..641af7acb 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.scss +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.scss @@ -2,6 +2,8 @@ .service-planning-content { display: flex; flex: 1; + position: relative; + z-index: 0; } .span-over { @@ -14,3 +16,13 @@ height: 117px; margin-top: 32px; } + +component-info { + border-left: 1px solid #D2D2D2; + height: calc(100vh - 60px); + overflow: auto; + + &.col-md-2{ + padding: 0; + } +} diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.ts index 1ce0e8100..cbe8445ca 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.ts @@ -1,8 +1,17 @@ -import {Component, ViewChild} from '@angular/core'; -import {DrawingBoardTreeComponent} from "../drawing-board-tree/drawing-board-tree.component"; -import {AvailableModelsTreeComponent} from "../available-models-tree/available-models-tree.component"; +import {Component, OnInit, ViewChild} from '@angular/core'; +import {DrawingBoardTreeComponent} from "./drawing-board-tree/drawing-board-tree.component"; +import {AvailableModelsTreeComponent} from "./available-models-tree/available-models-tree.component"; import {ITreeNode} from "angular-tree-component/dist/defs/api"; import {TreeComponent} from 'angular-tree-component'; +import {ActivatedRoute} from "@angular/router"; +import * as _ from 'lodash'; +import {DrawingBoardModes} from "./drawing-board.modes"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../shared/store/reducers"; +import {updateDrawingBoardStatus} from "../../shared/storeUtil/utils/global/global.actions"; +import {FeatureFlagsService, Features} from "../../shared/services/featureFlag/feature-flags.service"; +import {ComponentInfoService} from "./component-info/component-info.service"; +import {ComponentInfoModel, ComponentInfoType} from "./component-info/component-info-model"; @Component({ selector: 'service-planning', @@ -10,8 +19,13 @@ import {TreeComponent} from 'angular-tree-component'; styleUrls: ['./service-planning.component.scss'] }) -export class ServicePlanningComponent { +export class ServicePlanningComponent implements OnInit { + constructor(private route: ActivatedRoute, + private store: NgRedux) { + } + + pageMode: DrawingBoardModes = DrawingBoardModes.CREATE; @ViewChild(DrawingBoardTreeComponent) drawingModelTree; @ViewChild(AvailableModelsTreeComponent) availableModelTree; @@ -20,18 +34,23 @@ export class ServicePlanningComponent { } public highlightNodeBySelectingInstance(modelId: number): void { - this.availableModelTree.tree.treeModel.getNodeBy((node: ITreeNode) => node.data.id === modelId) - .setActiveAndVisible().expand(); + // modelId might be undefined, e.g., if selected instance has no source in model + let matchInstance = modelId ? this.availableModelTree.tree.treeModel.getNodeBy((node: ITreeNode) => (node.data.modelUniqueId) === modelId) : undefined; + if (matchInstance) { + matchInstance.setActiveAndVisible().expand(); + } else { + this.clearSelectionInTree(this.availableModelTree.tree); + } } - public highlightInstancesBySelectingNode(id: number): void { - if(this.isShowTree()) { + public highlightInstancesBySelectingNode(uniqueId: string): void { + if (this.isShowTree()) { let _this = this; - let matchInstances = _this.searchTree(id); + let matchInstances = _this.searchTree(uniqueId); if (!matchInstances.length) _this.clearSelectionInTree(_this.drawingModelTree.tree); matchInstances.forEach(function (instance, index) { - let multi : boolean = !!index; + let multi: boolean = !!index; _this.drawingModelTree.tree.treeModel.getNodeById(instance.id) .setActiveAndVisible(multi).expand(); }); @@ -44,34 +63,47 @@ export class ServicePlanningComponent { activateNode ? activateNode.toggleActivated().blur() : null; } - searchTree(modelId: number) { + searchTree(uniqueId: string) { let _this = this; let results = []; let nodes = _this.drawingModelTree.nodes; nodes.forEach(function (node) { - _this.searchTreeNode(node, modelId, results); + _this.searchTreeNode(node, uniqueId, results); }); return results; } - searchTreeNode(node, modelId: number, results): void { - if(node.modelId === modelId){ + searchTreeNode(node, uniqueId: string, results): void { + if ((node.modelUniqueId) === uniqueId) { results.push(node); } - if (node.children != null){ - for(let i = 0; i < node.children.length; i++){ - this.searchTreeNode(node.children[i], modelId, results); + + if (node.children != null) { + for (let i = 0; i < node.children.length; i++) { + this.searchTreeNode(node.children[i], uniqueId, results); } } } + ngOnInit(): void { + this.pageMode = (!_.isNil(this.route.routeConfig.path) && this.route.routeConfig.path !== "") ? this.route.routeConfig.path as DrawingBoardModes : DrawingBoardModes.CREATE; + this.store.dispatch(updateDrawingBoardStatus(this.pageMode)); + } + + isShowComponentInfo():boolean { + return FeatureFlagsService.getFlagState(Features.FLAG_1906_COMPONENT_INFO, this.store) + } + clickOutside(): void{ + this.clearSelectionInTree(this.drawingModelTree.tree); + this.clearSelectionInTree(this.availableModelTree.tree); + ComponentInfoService.triggerComponentInfoChange.next(new ComponentInfoModel(ComponentInfoType.SERVICE, [], [])) + } } export class ServicePlanningEmptyComponent extends ServicePlanningComponent { - isShowTree() : boolean { + isShowTree(): boolean { return false; } } - diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.spec.ts new file mode 100644 index 000000000..a6d3b5398 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.spec.ts @@ -0,0 +1,59 @@ +import {TestBed, getTestBed} from '@angular/core/testing'; +import { + HttpClientTestingModule, +} from '@angular/common/http/testing'; +import {TypeNodeInformation} from "./typeNodeInformation.model"; + +describe('Available Models Tree Service', () => { + let injector; + beforeEach(() => { + + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [] + }).compileComponents(); + + injector = getTestBed(); + }); + + + test('TypeNodeInformation VNF', () => { + let type: TypeNodeInformation = new TypeNodeInformation({ + data: { + type: 'VF' + } + }); + expect(type.hierarchyName).toEqual('vnfs'); + expect(type.existingMappingCounterName).toEqual('existingVNFCounterMap'); + }); + + test('TypeNodeInformation VNF group', () => { + let type: TypeNodeInformation = new TypeNodeInformation({ + data: { + type: 'VnfGroup' + } + }); + expect(type.hierarchyName).toEqual('vnfGroups'); + expect(type.existingMappingCounterName).toEqual('existingVnfGroupCounterMap'); + }); + + test('TypeNodeInformation VL', () => { + let type: TypeNodeInformation = new TypeNodeInformation({ + data: { + type: 'VL' + } + }); + expect(type.hierarchyName).toEqual('networks'); + expect(type.existingMappingCounterName).toEqual('existingNetworksCounterMap'); + }); + + test('TypeNodeInformation Network', () => { + let type: TypeNodeInformation = new TypeNodeInformation({ + data: { + type: 'Network' + } + }); + expect(type.hierarchyName).toEqual('networks'); + expect(type.existingMappingCounterName).toEqual('existingNetworksCounterMap'); + }); +}); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.ts new file mode 100644 index 000000000..e8e22a422 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/typeNodeInformation.model.ts @@ -0,0 +1,39 @@ +import {ITreeNode} from "angular-tree-component/dist/defs/api"; +import * as _ from 'lodash'; + +export class TypeNodeInformation { + hierarchyName: string; + existingMappingCounterName: string; + + constructor(node: ITreeNode) { + if (!_.isNil(node)) { + switch (node.data.type) { + case 'VF' : { + this.hierarchyName = 'vnfs'; + this.existingMappingCounterName = 'existingVNFCounterMap'; + break; + } + case 'VnfGroup' : { + this.hierarchyName = 'vnfGroups'; + this.existingMappingCounterName = 'existingVnfGroupCounterMap'; + break; + } + case 'VL' : { + this.hierarchyName = 'networks'; + this.existingMappingCounterName = 'existingNetworksCounterMap'; + break; + } + case 'Network': { + this.hierarchyName = 'networks'; + this.existingMappingCounterName = 'existingNetworksCounterMap'; + break; + } + default : { + console.error("Node type is not recognize"); + } + } + } + } +} + + diff --git a/vid-webpack-master/src/app/factories/models/requestDetails.model.ts b/vid-webpack-master/src/app/factories/models/requestDetails.model.ts index 4ccc4781b..1663f7af7 100644 --- a/vid-webpack-master/src/app/factories/models/requestDetails.model.ts +++ b/vid-webpack-master/src/app/factories/models/requestDetails.model.ts @@ -14,6 +14,7 @@ export class ModelInfo { modelVersion: string; modelCustomizationId: string; modelCustomizationName: string; + customizationUuid: string; } export class RequestParameters { @@ -109,7 +110,7 @@ export class RootObject { // “relatedInstance”: { // “instanceId”: “{instanceGroupId}”, // “modelInfo”: { -// “modelType”: “networkCollection”, +// “modelType”: “networkInstanceGroup”, // “modelInvariantId”: “9ea660dc-155f-44d3-b45c-cc7648b4f31c”, // “modelVersionId”: “bb07aad1-ce2d-40c1-85cb-5392f76bb1ef”, // “modelName”: “{network collection model name}”, diff --git a/vid-webpack-master/src/app/factories/mso.factory.spec.ts b/vid-webpack-master/src/app/factories/mso.factory.spec.ts index 16efd2970..75f205804 100644 --- a/vid-webpack-master/src/app/factories/mso.factory.spec.ts +++ b/vid-webpack-master/src/app/factories/mso.factory.spec.ts @@ -1,24 +1,25 @@ import {createRequest} from './mso.factory'; -sessionStorage.setItem("msoRequestParametersTestApiValue","GR_API"); + describe('Vlantagging', () => { - it('should create a correct request', (done: DoneFn) => { + test('should create a correct request', () => { + sessionStorage.setItem("msoRequestParametersTestApiValue","GR_API"); let userInputs_withEcompGeneratedNaming = { "productFamily": "e433710f-9217-458d-a79d-1c7aff376d89", - "lcpRegion": "AAIAIC25", + "lcpRegion": "JANET25", "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", "aicZone": "YYY1", "platformName": "plat1", - "lineOfBusiness": "ecomp" + "lineOfBusiness": "onap" }; let userInputs_withoutEcompGeneratedNaming = { "instanceName": "New Name", "productFamily": "e433710f-9217-458d-a79d-1c7aff376d89", - "lcpRegion": "AAIAIC25", + "lcpRegion": "JANET25", "tenantId": "092eb9e8e4b7412e8787dd091bc58e86", "aicZone": "YYY1", "platformName": "plat1", - "lineOfBusiness": "ecomp" + "lineOfBusiness": "onap" }; let service = { "service": { @@ -249,9 +250,9 @@ describe('Vlantagging', () => { "requestorId": "az2016", "suppressRollback": false }, - "lineOfBusiness": Object({ lineOfBusinessName: "ecomp" }), + "lineOfBusiness": Object({ lineOfBusinessName: "onap" }), "cloudConfiguration": { - "lcpCloudRegionId": "AAIAIC25", + "lcpCloudRegionId": "JANET25", "tenantId": "092eb9e8e4b7412e8787dd091bc58e86" }, "platform": Object({ platformName: "plat1" }), @@ -285,11 +286,7 @@ describe('Vlantagging', () => { "relatedInstance": { "instanceId": "AAI-12002-test3-vm230w", "modelInfo": { - "modelName": "oam_group", - "modelType": "networkCollection", - "modelVersion": "1", - "modelVersionId": "a0efd5fc-f7be-4502-936a-a6c6392b958f", - "modelInvariantId": "9384abf9-1231-4da4-bd8d-89e4d2f8a749" + "modelType": "networkInstanceGroup" } } }, @@ -297,11 +294,7 @@ describe('Vlantagging', () => { "relatedInstance": { "instanceId": "AAI-12002-test3-vm230w", "modelInfo": { - "modelName": "oam_group", - "modelType": "networkCollection", - "modelVersion": "1", - "modelVersionId": "a0efd5fc-f7be-4502-936a-a6c6392b958f", - "modelInvariantId": "9384abf9-1231-4da4-bd8d-89e4d2f8a749" + "modelType": "networkInstanceGroup" } } } @@ -314,6 +307,6 @@ describe('Vlantagging', () => { expectedResult["requestInfo"]["instanceName"] = "New Name"; let actualResult_withoutEcompGeneratedNaming = createRequest("az2016",userInputs_withoutEcompGeneratedNaming, service, serviceInstanceId, networkInstanceGroups,'vDBE 0','1'); expect(actualResult_withoutEcompGeneratedNaming).toEqual(expectedResult); - done(); + sessionStorage.removeItem("msoRequestParametersTestApiValue"); }); }); diff --git a/vid-webpack-master/src/app/factories/mso.factory.ts b/vid-webpack-master/src/app/factories/mso.factory.ts index c26296edf..ebca83412 100644 --- a/vid-webpack-master/src/app/factories/mso.factory.ts +++ b/vid-webpack-master/src/app/factories/mso.factory.ts @@ -1,4 +1,12 @@ -import { RequestInfo, RequestDetails, ModelInfo, CloudConfiguration, LineOfBusiness, Platform, RelatedInstanceList, VfcModel } from "./models/requestDetails.model"; +import { + CloudConfiguration, + LineOfBusiness, + ModelInfo, + Platform, + RelatedInstanceList, + RequestDetails, + RequestInfo +} from "./models/requestDetails.model"; import * as _ from "lodash"; function extractModelInfoFromNodeTemplate(node: any, type: string) { @@ -33,10 +41,6 @@ function extractPlatform(userInputs: any): Platform { return platform; } -function extractVfcGroupModelAccordingToUuid(vnfModel: any, vfcUuid: string) { - return _.find(vnfModel.vfcInstanceGroups, { uuid: vfcUuid }); -} - function extractLineOfBusiness(userInputs: any) { let lob: LineOfBusiness = {}; lob.lineOfBusinessName = userInputs["lineOfBusiness"]; @@ -50,13 +54,9 @@ function extractCloudConfiguration(userInputs: any) { return cloudConfig; } -function extractModelInfoFromVfcNode(vfcModel: VfcModel): ModelInfo { +function extractModelInfoFromVfcNode(): ModelInfo { let modelinfo: ModelInfo = {}; - modelinfo.modelName = vfcModel.name; - modelinfo.modelType = "networkCollection"; - modelinfo.modelVersion = vfcModel.version; - modelinfo.modelVersionId = vfcModel.uuid; - modelinfo.modelInvariantId = vfcModel.invariantUuid; + modelinfo.modelType = "networkInstanceGroup"; return modelinfo; } @@ -77,12 +77,10 @@ export function createRequest(userId: string, userInputs: any, service: any, ser }; request.relatedInstanceList.push(serviceRelatedInstance); _.forOwn(networkInstanceGroups, function(group) { - let modelUuid = group["instance-group"]["model-version-id"]; - let vfcModel = extractVfcGroupModelAccordingToUuid(service.vnfs[vnfCustomizationName], modelUuid); let networkInstanceGroup: RelatedInstanceList = { relatedInstance: { instanceId: group["instance-group"].id, - modelInfo: extractModelInfoFromVfcNode(vfcModel) + modelInfo: extractModelInfoFromVfcNode() } }; request.relatedInstanceList.push(networkInstanceGroup); diff --git a/vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.spec.ts b/vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.spec.ts new file mode 100644 index 000000000..5722aa795 --- /dev/null +++ b/vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.spec.ts @@ -0,0 +1,93 @@ +import {TestBed, ComponentFixture, tick, inject} from '@angular/core/testing'; +import {Component, DebugElement, Renderer2, Type} from "@angular/core"; +import {By} from "@angular/platform-browser"; +import {BasicFeatureFlagDirective} from "./basic.featureFlag.directive"; +import {FeatureFlagService} from "../../service/featureFlag.service"; +import {ConfigurationService} from "../../../shared/services/configuration.service"; +import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; +import {NgRedux} from "@angular-redux/store"; +import {of} from "rxjs"; + +@Component({ + template: ` +
+
+
+
` +}) +class TestFeatureFlagComponent { +} + +class MockRenderer { + setStyle() { + + } +} + +class MockAppStore { + getState() { + return { + global: { + flags : { + + } + } + } + } +} + + +describe('Basic Feature Flag Directive', () => { + let component: TestFeatureFlagComponent; + let fixture: ComponentFixture; + let directiveInstance: BasicFeatureFlagDirective; + let elementOff: DebugElement; + let elementOn: DebugElement; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ + HttpClientTestingModule + ], + declarations: [ + TestFeatureFlagComponent, + BasicFeatureFlagDirective], + providers: [ + FeatureFlagService, + ConfigurationService, + {provide: NgRedux, useClass: MockAppStore}, + {provide: Renderer2, useClass: MockRenderer}] + }).compileComponents(); + + fixture = TestBed.createComponent(TestFeatureFlagComponent); + component = fixture.componentInstance; + elementOff = fixture.debugElement.query(By.css('#featureFlagOff')); + elementOn = fixture.debugElement.query(By.css('#featureFlagOn')); + directiveInstance = elementOff.injector.get(BasicFeatureFlagDirective); + }); + + + test('directive should be defined', () => { + expect(directiveInstance).toBeDefined(); + }); + + test('should hide element if feature flag is off', () => { + directiveInstance.flagName = 'featureFlagOff'; + + directiveInstance.ngAfterContentChecked(); + expect(elementOff.nativeElement.style.display).toEqual('none'); + }); + + test('should show element if feature flag is on', () => { + directiveInstance.flagName = 'featureFlagOn'; + + directiveInstance.ngAfterContentChecked(); + expect(elementOn.nativeElement.style.display).toEqual(''); + }); +}); diff --git a/vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.ts b/vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.ts new file mode 100644 index 000000000..e6cbb4f17 --- /dev/null +++ b/vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.ts @@ -0,0 +1,29 @@ +import {AfterContentChecked, Directive, ElementRef, Input} from '@angular/core'; +import {FeatureFlagService} from "../../service/featureFlag.service"; +import * as _ from 'lodash'; + +/************************************************************************ + Feature Flag Directive + Example: +
+ ************************************************************************/ +@Directive({ + selector: '[featureFlag]' +}) +export class BasicFeatureFlagDirective implements AfterContentChecked { + @Input() flagName: string; + element: ElementRef; + + constructor(el: ElementRef, private _featureToggleService: FeatureFlagService) { + this.element = el; + } + + ngAfterContentChecked(): void { + if (!_.isNil(this.element)) { + const isFeatureOn: boolean = this._featureToggleService.isFeatureOn(this.flagName); + if(!isFeatureOn){ + this._featureToggleService.hideElement(this.element) + } + } + } +} diff --git a/vid-webpack-master/src/app/featureFlag/featureFlag.module.ts b/vid-webpack-master/src/app/featureFlag/featureFlag.module.ts new file mode 100644 index 000000000..d22076682 --- /dev/null +++ b/vid-webpack-master/src/app/featureFlag/featureFlag.module.ts @@ -0,0 +1,32 @@ +import {ModuleWithProviders, NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {BrowserModule} from "@angular/platform-browser"; +import {HttpClientModule} from "@angular/common/http"; +import {FeatureFlagService} from "./service/featureFlag.service"; +import {BasicFeatureFlagDirective} from "./directive/basic/basic.featureFlag.directive"; + + +@NgModule({ + imports: [ + BrowserModule, + HttpClientModule, + CommonModule + ], + declarations: [ + BasicFeatureFlagDirective + ], + exports: [ + BasicFeatureFlagDirective + ], + providers: [ + FeatureFlagService + ] +}) +export class FeatureFlagModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: FeatureFlagModule, + providers: [] + }; + } +} diff --git a/vid-webpack-master/src/app/featureFlag/service/featureFlag.service.ts b/vid-webpack-master/src/app/featureFlag/service/featureFlag.service.ts new file mode 100644 index 000000000..09ce7bbf5 --- /dev/null +++ b/vid-webpack-master/src/app/featureFlag/service/featureFlag.service.ts @@ -0,0 +1,28 @@ +import {ElementRef, Injectable, Renderer2, RendererFactory2} from "@angular/core"; +import {ConfigurationService} from "../../shared/services/configuration.service"; + +@Injectable() +export class FeatureFlagService{ + private features : { [key: string]: boolean } = {}; + private renderer: Renderer2; + constructor(private _configurationService: ConfigurationService, + rendererFactory: RendererFactory2){ + this.renderer = rendererFactory.createRenderer(null, null); + this._configurationService.getFlags().subscribe((res: { [key: string]: boolean }) =>{ + this.features = res; + }) + } + + + isFeatureOn(feature : string) : boolean { + return this.features && this.getFeatureFlag()[feature] === true; + } + + getFeatureFlag() : { [key: string]: boolean } { + return this.features; + } + + hideElement(element: ElementRef) { + this.renderer.setStyle(element.nativeElement, 'display', 'none'); + } +} diff --git a/vid-webpack-master/src/app/global.actions.ts b/vid-webpack-master/src/app/global.actions.ts deleted file mode 100644 index 46575fb34..000000000 --- a/vid-webpack-master/src/app/global.actions.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Action, ActionCreator} from "redux"; -export const UPDATE_NAME= '[NAME] Update'; -export const UPDATE_FLAGS= '[FLAGS] Update'; - -export interface UpdateGlobalAction extends Action { - name?: string; -} - -export interface UpdateFlagsAction extends Action { - flags?: any; -} - -export const updateName: ActionCreator = - (name) => ({ - type: UPDATE_NAME, - name: name - }); - -export const updateFlags: ActionCreator = - (flags) => ({ - type: UPDATE_FLAGS, - flags: flags - }); diff --git a/vid-webpack-master/src/app/healthStatus/health-status.component.spec.ts b/vid-webpack-master/src/app/healthStatus/health-status.component.spec.ts new file mode 100644 index 000000000..8a37c77ee --- /dev/null +++ b/vid-webpack-master/src/app/healthStatus/health-status.component.spec.ts @@ -0,0 +1,64 @@ +import {TestBed, ComponentFixture, async} from '@angular/core/testing'; +import {HealthStatusComponent} from "./health-status.component"; +import {HealthStatusService} from "../shared/server/healthStatusService/health-status.service"; +import {HttpClientTestingModule} from "@angular/common/http/testing"; +import {ExternalComponentStatus} from "../shared/models/externalComponentStatus"; +import {Observable} from "rxjs"; +import {of} from "rxjs"; + +export class MockHealthStatusService { + + + getProbe(): Observable> { + return of(new Array( + new ExternalComponentStatus("x", true, {y:"r"}))); + } +} + +describe('HealthStatusComponent', () => { + let component: HealthStatusComponent; + let fixture: ComponentFixture; + let mockHealthStatusService : MockHealthStatusService; + + mockHealthStatusService = new MockHealthStatusService(); + + beforeAll(done => (async () => { + + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [{provide: HealthStatusService, useValue: mockHealthStatusService}], + declarations: [HealthStatusComponent] + }); + await TestBed.compileComponents(); + + fixture = TestBed.createComponent(HealthStatusComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + })().then(done).catch(done.fail)); + + test('isAvailable taken from component status available field', () => { + expect(component.isAvailable(new ExternalComponentStatus("a", true, null))).toBeTruthy(); + expect(component.isAvailable(new ExternalComponentStatus("a", false, null))).toBeFalsy(); + }); + + test('getMetadata filter rawData ', () => { + let metadata:string = JSON.stringify(component.getMetadata(new ExternalComponentStatus("a", true, {a:1, rawData:2}))); + expect(metadata).toContain("1"); + expect(metadata.indexOf("2")).toEqual(-1); + }); + + test('componentStatus is initialized on startup ', () => { + expect(JSON.stringify(component.componentStatuses[0].metadata)).toContain("y"); + }); + + test('when refresh componentStatus is updated', () => { + spyOn(mockHealthStatusService, "getProbe" ).and.returnValue( + of(new Array( + new ExternalComponentStatus("mySpecialValue", true, {y:"z"})))); + component.refreshData(); + expect(component.componentStatuses[0].component).toEqual("mySpecialValue"); + expect(mockHealthStatusService.getProbe).toHaveBeenCalledTimes(1); + + }); + +}); diff --git a/vid-webpack-master/src/app/healthStatus/health-status.component.ts b/vid-webpack-master/src/app/healthStatus/health-status.component.ts index 6a9ddfdd7..a2b175788 100644 --- a/vid-webpack-master/src/app/healthStatus/health-status.component.ts +++ b/vid-webpack-master/src/app/healthStatus/health-status.component.ts @@ -8,9 +8,9 @@ import {HealthStatusService} from "../shared/server/healthStatusService/health-s styleUrls: ['./health-status.component.scss'] }) export class HealthStatusComponent implements OnInit { - private componentStatuses: Array = []; - private dataIsReady: boolean; - private lastUpdatedDate: Date; + componentStatuses: Array = []; + dataIsReady: boolean; + lastUpdatedDate: Date; constructor(private _healthStatusService: HealthStatusService) { } diff --git a/vid-webpack-master/src/app/healthStatus/health-status.module.ts b/vid-webpack-master/src/app/healthStatus/health-status.module.ts new file mode 100644 index 000000000..7479394f1 --- /dev/null +++ b/vid-webpack-master/src/app/healthStatus/health-status.module.ts @@ -0,0 +1,25 @@ +import {NgModule} from "@angular/core"; +import {BrowserModule} from "@angular/platform-browser"; +import {FormsModule} from "@angular/forms"; +import {TooltipModule} from "ngx-tooltip"; +import {CommonModule} from "@angular/common"; +import {SharedModule} from "../shared/shared.module"; +import {FeatureFlagModule} from "../featureFlag/featureFlag.module"; +import {HealthStatusService} from "../shared/server/healthStatusService/health-status.service"; +import {HealthStatusComponent} from "./health-status.component"; + +@NgModule({ + imports: [ + BrowserModule, + FormsModule, + TooltipModule, + CommonModule, + SharedModule.forRoot(), + FeatureFlagModule.forRoot()], + providers: [HealthStatusService], + declarations: [HealthStatusComponent], + entryComponents: [HealthStatusComponent], + exports: [HealthStatusComponent] +}) + +export class HealthStatusModule {} diff --git a/vid-webpack-master/src/app/healthStatus/health-status.routing.ts b/vid-webpack-master/src/app/healthStatus/health-status.routing.ts new file mode 100644 index 000000000..5344d2e5b --- /dev/null +++ b/vid-webpack-master/src/app/healthStatus/health-status.routing.ts @@ -0,0 +1,19 @@ +import {Route} from '@angular/router'; +import {FlagsResolve} from "../shared/resolvers/flag/flag.resolver"; +import {HealthStatusComponent} from "./health-status.component"; + +export const HealthStatusRoutes: Route[] = [ + { + path: 'healthStatus', + children: [ + { + path: '', + component: HealthStatusComponent, + resolve: { + flags: FlagsResolve + }, + } + ] + } +]; + diff --git a/vid-webpack-master/src/app/home/home.component.e2e-spec.js b/vid-webpack-master/src/app/home/home.component.e2e-spec.js deleted file mode 100644 index 41203f9d8..000000000 --- a/vid-webpack-master/src/app/home/home.component.e2e-spec.js +++ /dev/null @@ -1,13 +0,0 @@ -describe('Home', function () { - - beforeEach(function () { - browser.get('/'); - }); - - it('should have ', function () { - var home = element(by.css('vid-app my-home')); - expect(home.isPresent()).toEqual(true); - expect(home.getText()).toEqual("Home Works!"); - }); - -}); diff --git a/vid-webpack-master/src/app/home/home.component.html b/vid-webpack-master/src/app/home/home.component.html deleted file mode 100644 index 604d9e1d0..000000000 --- a/vid-webpack-master/src/app/home/home.component.html +++ /dev/null @@ -1,3 +0,0 @@ -

- Home Works! -

diff --git a/vid-webpack-master/src/app/home/home.component.scss b/vid-webpack-master/src/app/home/home.component.scss deleted file mode 100644 index 5db1e17a3..000000000 --- a/vid-webpack-master/src/app/home/home.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -// component styles are encapsulated and only applied to their components -* { - color: #FFEF00; -} diff --git a/vid-webpack-master/src/app/home/home.component.ts b/vid-webpack-master/src/app/home/home.component.ts deleted file mode 100644 index 1adaf0ebf..000000000 --- a/vid-webpack-master/src/app/home/home.component.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { SdcService } from '../services/sdc.service'; -import { DataService } from '../services/data.service'; - -@Component({ - selector: 'my-home', - templateUrl: './home.component.html', - styleUrls: ['./home.component.scss'], - providers: [SdcService, DataService] -}) -export class HomeComponent implements OnInit { - - constructor(private _sdcService: SdcService) { - // Do stuff - } - - ngOnInit() { - console.log('Hello Home'); - console.log('getServicesModels: '); - this._sdcService.getServicesModels().subscribe( - // onNext() function - value => console.log('value is ', value), - // onError() function - error => console.log('error is ', error), - // onComplete() function - () => console.log('completed') - ); - } - -} diff --git a/vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.module.ts b/vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.module.ts index 01db0f187..6d14b149d 100644 --- a/vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.module.ts +++ b/vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.module.ts @@ -1,33 +1,30 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { InputsModule } from '../modules/inputs.module'; import { DataTableModule } from 'angular2-datatable'; import { BootstrapModalModule } from 'ng2-bootstrap-modal'; import { TooltipModule } from 'ngx-tooltip'; import { InstantiationStatusComponent } from './instantiationStatus.component'; import { InstantiationStatusComponentService } from './instantiationStatus.component.service'; import { SharedModule } from '../shared/shared.module'; -import { AngularSvgIconModule } from 'angular-svg-icon'; import { ContextMenuModule, ContextMenuService } from 'ngx-contextmenu'; import {ModalModule, PopoverModule} from 'ngx-bootstrap'; -import {AuditInfoModalComponent} from "./auditInfoModal/auditInfoModal.component"; +import {SdcUiComponentsModule} from "onap-ui-angular"; @NgModule({ imports: [ CommonModule, FormsModule, ReactiveFormsModule, + SdcUiComponentsModule, BootstrapModalModule, DataTableModule, TooltipModule, ModalModule, - InputsModule, - AngularSvgIconModule, ContextMenuModule, SharedModule.forRoot(), PopoverModule.forRoot()], - declarations: [InstantiationStatusComponent, AuditInfoModalComponent], + declarations: [InstantiationStatusComponent, ], providers: [InstantiationStatusComponentService, ContextMenuService] }) export class InstantiationStatusModule { } diff --git a/vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.routing.ts b/vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.routing.ts new file mode 100644 index 000000000..6991eefef --- /dev/null +++ b/vid-webpack-master/src/app/instantiationStatus/InstantiationStatus.routing.ts @@ -0,0 +1,19 @@ +import {Route} from "@angular/router"; +import {FlagsResolve} from "../shared/resolvers/flag/flag.resolver"; +import {InstantiationStatusComponent} from "./instantiationStatus.component"; + +export const InstantiationStatusRoutes: Route[] = [ + { + path: 'instantiationStatus', + children: [ + { + path: '', + component: InstantiationStatusComponent, + resolve: { + flags: FlagsResolve + }, + } + ] + } +]; + diff --git a/vid-webpack-master/src/app/instantiationStatus/auditInfoModal/auditInfoModal.component.ts b/vid-webpack-master/src/app/instantiationStatus/auditInfoModal/auditInfoModal.component.ts deleted file mode 100644 index 1cff97f5b..000000000 --- a/vid-webpack-master/src/app/instantiationStatus/auditInfoModal/auditInfoModal.component.ts +++ /dev/null @@ -1,83 +0,0 @@ -import {Component, ViewChild} from '@angular/core'; -import {Subject} from 'rxjs/Subject'; -import {ModalDirective} from 'ngx-bootstrap' -import {Constants} from '../../shared/utils/constants'; -import {ModelInformationItem} from '../../shared/components/model-information/model-information.component'; -import {ServiceModel} from '../../shared/models/serviceModel'; -import {ServiceInfoService} from '../../shared/server/serviceInfo/serviceInfo.service'; -import {ServiceInfoModel} from '../../shared/server/serviceInfo/serviceInfo.model'; -import {AuditStatus} from '../../shared/server/serviceInfo/AuditStatus.model'; -import {IframeService} from "../../shared/utils/iframe.service"; - -@Component({ - selector: 'audit-info-modal', - templateUrl: './auditInfoModal.component.html', - styleUrls: ['./auditInfoModal.component.scss'] -}) -export class AuditInfoModalComponent { - static openModal: Subject = new Subject(); - @ViewChild('auditInfoModal') public auditInfoModal: ModalDirective; - title: string = Constants.AuditInfoModal.TITLE; - modelInfoItems: Array = []; - serviceModel: ServiceModel; - serviceModelName: string; - vidInfoData: Array = []; - msoInfoData: Array = []; - parentElementClassName = 'content'; - isLoading = true; - - constructor(private _serviceInfoService: ServiceInfoService, private _iframeService : IframeService) { - AuditInfoModalComponent.openModal.subscribe((jobData: ServiceInfoModel) => { - this.initializeProperties(); - if (jobData) { - this.openAuditInfoModal(jobData); - _iframeService.addClassOpenModal(this.parentElementClassName); - this.serviceModelName = jobData.serviceModelName ? jobData.serviceModelName : ''; - this.auditInfoModal.show(); - } else { - _iframeService.removeClassCloseModal(this.parentElementClassName); - this.auditInfoModal.hide(); - } - }) - } - - initializeProperties() : void { - this.modelInfoItems = null; - this.vidInfoData = []; - this.msoInfoData = []; - this.isLoading = true; - } - - openAuditInfoModal(jobData: ServiceInfoModel): void { - this.modelInfoItems = this.createModelInformationItems(jobData); - this.initAuditInfoData(jobData['jobId']); - this.auditInfoModal.show(); - } - - initAuditInfoData(jobId: string) { - this._serviceInfoService.getJobAuditStatus(jobId) - .subscribe((res: Array>) => { - this.vidInfoData = res[0]; - this.msoInfoData = res[1]; - this.isLoading = false; - }); - } - - createModelInformationItems(serviceModel: ServiceInfoModel): Array { - return [ - new ModelInformationItem('Subscriber name', 'subscriberName', [serviceModel.subscriberName]), - new ModelInformationItem('Service type', 'serviceType', [serviceModel.serviceType]), - new ModelInformationItem('Service model version', 'serviceModelVersion', [serviceModel.serviceModelVersion]), - new ModelInformationItem('Service instance name', 'serviceInstanceName', [serviceModel.serviceInstanceName], '', true), - new ModelInformationItem('Service instance ID', 'serviceInstanceId', [serviceModel.serviceInstanceId]), - new ModelInformationItem('Requestor User ID', 'userId', [serviceModel.userId]), - ]; - } - - onCancelClick() { - this._iframeService.removeClassCloseModal(this.parentElementClassName); - this.initializeProperties(); - this.auditInfoModal.hide(); - } -} - diff --git a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html index e0641d03b..212981aaf 100644 --- a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html +++ b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html @@ -3,7 +3,7 @@
- Instantiation Status + Instantiation Status User ID + Action Model Name Instance Name Model version @@ -40,8 +41,9 @@ - + + @@ -55,37 +57,32 @@ - - + + + + - -
diff --git a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.spec.ts b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.spec.ts index c9f434e99..4848d8e99 100644 --- a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.spec.ts +++ b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.spec.ts @@ -1,5 +1,6 @@ import {getTestBed, TestBed} from '@angular/core/testing'; import { + COMPLETED_WITH_ERRORS, INPROGRESS, InstantiationStatusComponentService, PAUSE, @@ -10,24 +11,64 @@ import { X_O } from './instantiationStatus.component.service'; import {ServiceInfoModel} from '../shared/server/serviceInfo/serviceInfo.model'; -import { Observable } from 'rxjs/Rx'; +import {AaiService} from "../shared/services/aaiService/aai.service"; +import {MsoService} from "../shared/services/msoService/mso.service"; +import {NgRedux} from "@angular-redux/store"; +import {HttpClientTestingModule} from "@angular/common/http/testing"; +import {FeatureFlagsService} from "../shared/services/featureFlag/feature-flags.service"; +import {DrawingBoardModes} from "../drawingBoard/service-planning/drawing-board.modes"; +import {RouterTestingModule} from "@angular/router/testing"; +import {of} from "rxjs"; +import {UrlTree} from "@angular/router"; +class MockAppStore { + + getState() { + return { + global: { + flags: { + 'FLAG_1902_NEW_VIEW_EDIT': true, + + } + } + } + } + + dispatch() { + + } +} describe('Instantiation Status Service', () => { let injector; + let aaiService: AaiService; + let msoService: MsoService; let service: InstantiationStatusComponentService; - beforeEach(() => { + + beforeAll(done => (async () => { TestBed.configureTestingModule({ - imports: [], - providers: [InstantiationStatusComponentService] + imports: [ + HttpClientTestingModule, + RouterTestingModule, + ], + providers: [ + InstantiationStatusComponentService, + AaiService, + MsoService, + FeatureFlagsService, + {provide: NgRedux, useClass: MockAppStore}] }); + await TestBed.compileComponents(); injector = getTestBed(); + aaiService = injector.get(AaiService); + msoService = injector.get(MsoService); service = injector.get(InstantiationStatusComponentService); - }); - it('generateServiceInfoDataMapping should return mapping of arrays', (done: DoneFn) => { - let data : Array = generateServiceInfoData(); + })().then(done).catch(done.fail)); + + test('generateServiceInfoDataMapping should return mapping of arrays', () => { + let data : ServiceInfoModel[] = generateServiceInfoData(); let result = service.generateServiceInfoDataMapping(data); expect(result['1']).toBeDefined(); @@ -37,53 +78,81 @@ describe('Instantiation Status Service', () => { expect(result['1'].length).toEqual(2); expect(result['2'].length).toEqual(2); expect(result['3'].length).toEqual(1); - done(); }); - it('generateServiceInfoDataMapping if array is empty should return empty object', (done: DoneFn) => { + test('generateServiceInfoDataMapping if array is empty should return empty object', () => { let result = service.generateServiceInfoDataMapping([]); expect(result['1']).not.toBeDefined(); expect(result['2']).not.toBeDefined(); expect(result['3']).not.toBeDefined(); - done(); }); - it('convertObjectToArray', (done: DoneFn) => { + test('convertObjectToArray', () => { - spyOn(service, 'convertObjectToArray').and.returnValue( - Observable.of([]) + jest.spyOn(service, 'convertObjectToArray').mockReturnValue( + of([]) ); - let data : Array = generateServiceInfoData(); + let data : ServiceInfoModel[] = generateServiceInfoData(); service.convertObjectToArray(data).subscribe((result) => { expect(result).toBeDefined(); - done(); }); }); - it('getStatusTooltip should return status popover', (done: DoneFn) => { + test('click on "Open" button should open new view edit' , ()=>{ + const item = { + serviceModelId : 'serviceModelId', + serviceInstanceId : 'serviceInstanceId', + serviceType : 'serviceType', + subscriberId : 'subscriberId' + }; + let params:UrlTree = service.getNewViewEditUrlTree(item, DrawingBoardModes.VIEW); + expect(params.toString().startsWith('/servicePlanning/VIEW')).toBeTruthy(); + expect(params.queryParams).toEqual( + { + serviceModelId: item.serviceModelId, + serviceInstanceId: item.serviceInstanceId, + serviceType : item.serviceType, + subscriberId : item.subscriberId + }); + }); + + test('build the View Edit url' , ()=>{ + const item = { + serviceModelId : '28aeb8f6-5620-4148-8bfb-a5fb406f0309', + }; + let serviceModelUrl: string = '/servicePlanning/EDIT?serviceModelId=28aeb8f6-5620-4148-8bfb-a5fb406f0309'; + let suffix:string = '../../serviceModels.htm#'; + let tree:UrlTree = service.getNewViewEditUrlTree(item, DrawingBoardModes.EDIT); + let result = service.getViewEditUrl(tree); + expect (suffix + serviceModelUrl).toEqual(result); + }); + + test('getStatusTooltip should return status popover', () => { let result : ServiceStatus = service.getStatus('pending'); - expect(result.tooltip).toEqual('Pending: The service will automatically be sent for instantiation as soon as possible.'); + expect(result.tooltip).toEqual('Pending: The action required will be sent as soon as possible.'); result = service.getStatus('IN_PROGRESS'); - expect(result.tooltip).toEqual('In-progress: the service is in process of instantiation.'); + expect(result.tooltip).toEqual('In-progress: the service is in process of the action required.'); result = service.getStatus('PAUSED'); expect(result.tooltip).toEqual('Paused: Service has paused and waiting for your action.\n Select actions from the menu to the right.'); result = service.getStatus('FAILED'); - expect(result.tooltip).toEqual('Failed: Service instantiation has failed, load the service to see the error returned.'); + expect(result.tooltip).toEqual('Failed: All planned actions have failed.'); result = service.getStatus('COMPLETED'); - expect(result.tooltip).toEqual('Completed successfully: Service is successfully instantiated.'); + expect(result.tooltip).toEqual('Completed successfully: Service is successfully instantiated, updated or deleted.'); result = service.getStatus('STOPPED'); expect(result.tooltip).toEqual('Stopped: Due to previous failure, will not be instantiated.'); - done(); + + result = service.getStatus('COMPLETED_WITH_ERRORS'); + expect(result.tooltip).toEqual('Completed with errors: some of the planned actions where successfully committed while other have not.\n Open the service to check it out.'); }); - it('getStatusTooltip should return correct icon per job status', (done: DoneFn) => { + test('getStatusTooltip should return correct icon per job status', () => { let result : ServiceStatus = service.getStatus('pending'); expect(result.iconClassName).toEqual(PENDING); @@ -101,9 +170,10 @@ describe('Instantiation Status Service', () => { result = service.getStatus('STOPPED'); expect(result.iconClassName).toEqual(STOPED); - done(); - }); + result = service.getStatus('COMPLETED_WITH_ERRORS'); + expect(result.iconClassName).toEqual(COMPLETED_WITH_ERRORS); + }); function generateServiceInfoData(){ return JSON.parse(JSON.stringify([ diff --git a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.ts b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.ts index 293397cc9..0e4451ca8 100644 --- a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.ts +++ b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.ts @@ -1,23 +1,38 @@ import {Injectable} from '@angular/core'; import {ServiceInfoModel, ServiceInfoUiModel} from '../shared/server/serviceInfo/serviceInfo.model'; -import {isNullOrUndefined} from "util"; -import { Observable } from 'rxjs/Observable'; -import 'rxjs/observable/of'; - +import * as _ from 'lodash'; +import {Observable} from 'rxjs/Observable'; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../shared/store/reducers"; +import {AaiService} from "../shared/services/aaiService/aai.service"; +import {ServiceModel} from "../shared/models/serviceModel"; +import {FeatureFlagsService, Features} from "../shared/services/featureFlag/feature-flags.service"; +import {DrawingBoardModes} from "../drawingBoard/service-planning/drawing-board.modes"; +import {updateDrawingBoardStatus} from "../shared/storeUtil/utils/global/global.actions"; +import {Router, UrlTree} from "@angular/router"; +import {of} from "rxjs"; +import {MsoService} from "../shared/services/msoService/mso.service"; export let PENDING : string = "pending"; -export let INPROGRESS : string = "inprogress"; +export let INPROGRESS : string = "in_progress"; export let PAUSE : string = "pause"; -export let X_O : string = "X_o"; -export let SUCCESS_CIRCLE : string = "success+Circle"; -export let STOPED : string = "stoped"; +export let X_O : string = "x-circle-o"; +export let SUCCESS_CIRCLE : string = "success-circle-o"; +export let STOPED : string = "stop"; +export let COMPLETED_WITH_ERRORS : string = "success_with_warning"; @Injectable() export class InstantiationStatusComponentService { - generateServiceInfoDataMapping(arr: Array) : { [serviceInstanceId: string]: Array}{ - let serviceInfoData: { [serviceInstanceId: string]: Array; } = {}; + constructor( private _aaiService: AaiService, + private _msoService: MsoService, + private _router : Router, + private _store: NgRedux) { + } + + generateServiceInfoDataMapping(arr: ServiceInfoModel[]) : { [serviceInstanceId: string]: ServiceInfoModel[]}{ + let serviceInfoData: { [serviceInstanceId: string]: ServiceInfoModel[]; } = {}; for(let item of arr){ - if(isNullOrUndefined(serviceInfoData[item.templateId])){ + if(_.isNil(serviceInfoData[item.templateId])){ serviceInfoData[item.templateId] = [item]; }else { serviceInfoData[item.templateId].push(item); @@ -26,7 +41,7 @@ export class InstantiationStatusComponentService { return serviceInfoData; } - convertObjectToArray(arr: Array) : Observable>{ + convertObjectToArray(arr: ServiceInfoModel[]) : Observable{ const obj = this.generateServiceInfoDataMapping(arr); let index:number = 0; let result = []; @@ -40,25 +55,108 @@ export class InstantiationStatusComponentService { } console.log(result); - return Observable.of(result); + return of(result); + } + + isDrawingBoardViewEdit(serviceModel: ServiceModel): boolean { + if (!_.isNil(serviceModel.vidNotions) && !_.isNil(serviceModel.vidNotions.viewEditUI) + && serviceModel.vidNotions.viewEditUI !== 'legacy'){ + return true; + } + return false; + } + + open(item: ServiceInfoModel): void { + if (FeatureFlagsService.getFlagState(Features.FLAG_1902_VNF_GROUPING, this._store)) { + this._aaiService.getServiceModelById(item['serviceModelId']).subscribe((result)=>{ + const serviceModel = new ServiceModel(result); + + if (this.isDrawingBoardViewEdit(serviceModel)) { + this.navigateToNewViewEdit(item, DrawingBoardModes.EDIT); + return; + } + + this.navigateToNewViewOnlyOrOldEditView(item); + + }); + } + + /*this else is here only to save time in case we don't need to retrieve service model + it can be removed once it service model is always needed, and it doesn't save time*/ + else { + this.navigateToNewViewOnlyOrOldEditView(item); + } + } + + navigateToNewViewOnlyOrOldEditView(item: ServiceInfoModel) { + if (FeatureFlagsService.getFlagState(Features.FLAG_1902_NEW_VIEW_EDIT, this._store)) { + this.navigateToNewViewEdit(item, DrawingBoardModes.VIEW); + } + else { + this.navigateToOldViewEdit(item); + } + } + + navigateToOldViewEdit(item: ServiceInfoModel) { + let query = + `subscriberId=${item.subscriberId}&` + + `subscriberName=${item.subscriberName}&` + + `serviceType=${item.serviceType}&` + + `serviceInstanceId=${item.serviceInstanceId}`; + + this._store.dispatch(updateDrawingBoardStatus(DrawingBoardModes.OLD_VIEW_EDIT)); + window.parent.location.assign('../../serviceModels.htm#/instantiate?' + query); + } + + navigateToNewViewEdit(item: ServiceInfoModel, mode: DrawingBoardModes): void{ + this._store.dispatch(updateDrawingBoardStatus(mode)); + const viewEditUrlTree:UrlTree = this.getNewViewEditUrlTree(item, mode); + this._router.navigateByUrl(viewEditUrlTree); + window.parent.location.assign(this.getViewEditUrl(viewEditUrlTree)); + } + + getNewViewEditUrlTree(item: ServiceInfoModel, mode: DrawingBoardModes): UrlTree { + return this._router.createUrlTree( + ['/servicePlanning/' + mode], + { + queryParams: + { + serviceModelId: item.serviceModelId, + serviceInstanceId: item.serviceInstanceId, + serviceType : item.serviceType, + subscriberId : item.subscriberId, + jobId: item.jobId + } + }); + } + + getViewEditUrl(viewEditUrlTree:UrlTree): string { + return '../../serviceModels.htm#' + viewEditUrlTree.toString(); + } getStatus(status : string) : ServiceStatus { switch(status.toUpperCase()) { case 'PENDING' : - return new ServiceStatus(PENDING, '#009FDB', 'Pending: The service will automatically be sent for instantiation as soon as possible.'); + return new ServiceStatus(PENDING, 'primary', 'Pending: The action required will be sent as soon as possible.'); case 'IN_PROGRESS' : - return new ServiceStatus(INPROGRESS, '#009FDB', 'In-progress: the service is in process of instantiation.'); + return new ServiceStatus(INPROGRESS, 'primary', 'In-progress: the service is in process of the action required.'); case 'PAUSED' : - return new ServiceStatus(PAUSE, '#009FDB', 'Paused: Service has paused and waiting for your action.\n Select actions from the menu to the right.'); + return new ServiceStatus(PAUSE, 'primary', 'Paused: Service has paused and waiting for your action.\n Select actions from the menu to the right.'); case 'FAILED' : - return new ServiceStatus(X_O, '#D02B2B', 'Failed: Service instantiation has failed, load the service to see the error returned.'); + return new ServiceStatus(X_O, 'error', 'Failed: All planned actions have failed.'); case 'COMPLETED' : - return new ServiceStatus(SUCCESS_CIRCLE, '#53AD15', 'Completed successfully: Service is successfully instantiated.'); + return new ServiceStatus(SUCCESS_CIRCLE, 'success', 'Completed successfully: Service is successfully instantiated, updated or deleted.'); case 'STOPPED' : - return new ServiceStatus(STOPED, '#D02B2B', 'Stopped: Due to previous failure, will not be instantiated.'); + return new ServiceStatus(STOPED, 'error', 'Stopped: Due to previous failure, will not be instantiated.'); + case 'COMPLETED_WITH_ERRORS' : + return new ServiceStatus(COMPLETED_WITH_ERRORS, 'success', 'Completed with errors: some of the planned actions where successfully committed while other have not.\n Open the service to check it out.'); } } + + retry(item: ServiceInfoModel): void { + this.navigateToNewViewEdit(item, DrawingBoardModes.RETRY_EDIT); + } } diff --git a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.spec.ts b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.spec.ts index 00b6a9945..53dfcc1f2 100644 --- a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.spec.ts +++ b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.spec.ts @@ -1,88 +1,227 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {InstantiationStatusComponent} from './instantiationStatus.component'; import {ServiceInfoService} from '../shared/server/serviceInfo/serviceInfo.service'; import {InstantiationStatusComponentService} from './instantiationStatus.component.service'; -import { ContextMenuModule, ContextMenuService } from 'ngx-contextmenu'; +import {ContextMenuModule, ContextMenuService} from 'ngx-contextmenu'; import {CUSTOM_ELEMENTS_SCHEMA} from '@angular/core'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; -import { ConfigurationService } from '../services/configuration.service'; -import { LogService } from '../shared/utils/log/log.service'; +import {HttpClientTestingModule} from '@angular/common/http/testing'; +import {ScrollToModule} from '@nicky-lenaers/ngx-scroll-to'; +import {ConfigurationService} from '../shared/services/configuration.service'; +import {LogService} from '../shared/utils/log/log.service'; +import {NgRedux} from '@angular-redux/store'; +import {RouterTestingModule} from '@angular/router/testing'; +import {CapitalizeAndFormatPipe} from "../shared/pipes/capitalize/capitalize-and-format.pipe"; +import {AaiService} from "../shared/services/aaiService/aai.service"; +import {MsoService} from "../shared/services/msoService/mso.service"; +import {FeatureFlagsService} from "../shared/services/featureFlag/feature-flags.service"; +import {JobStatus, ServiceAction} from "../shared/models/serviceInstanceActions"; +import each from 'jest-each'; +import {ServiceInfoModel} from "../shared/server/serviceInfo/serviceInfo.model"; +import { TooltipModule } from 'ngx-tooltip'; + +class MockAppStore { + + getState() { + return { + global: { + flags: { + 'FLAG_1902_NEW_VIEW_EDIT': true + } + } + } + } + + dispatch() { + + } +} describe('Instantiation Status Component', () => { let component: InstantiationStatusComponent; let fixture: ComponentFixture; - let enableDeleteItems = [ - { jobStatus:"PENDING" }, - { jobStatus:"STOPPED" }]; - let disableDeleteItems = [ - { jobStatus:"COMPLETED" }, - { jobStatus:"FAILED" }, - {jobStatus:"IN_PROGRESS"}, - {jobStatus:"UnknownOne"}]; - +let item = new ServiceInfoModel(); + beforeAll(done => (async () => { - beforeEach(async(() => { TestBed.configureTestingModule({ - imports: [HttpClientTestingModule, ContextMenuModule, ScrollToModule.forRoot()], - providers: [ServiceInfoService, InstantiationStatusComponentService, ContextMenuService, ConfigurationService, LogService], - declarations: [InstantiationStatusComponent], + imports: [ + HttpClientTestingModule, + ContextMenuModule, + ScrollToModule.forRoot(), + RouterTestingModule, + TooltipModule + ], + providers: [ + ServiceInfoService, + InstantiationStatusComponentService, + AaiService, + MsoService, + ContextMenuService, + FeatureFlagsService, + ConfigurationService, + LogService, + {provide: NgRedux, useClass: MockAppStore} + ], + declarations: [InstantiationStatusComponent, CapitalizeAndFormatPipe], schemas: [ CUSTOM_ELEMENTS_SCHEMA ] - }).compileComponents(); - })); + }); + await TestBed.compileComponents(); - beforeEach(() => { fixture = TestBed.createComponent(InstantiationStatusComponent); component = fixture.componentInstance; fixture.detectChanges(); - }); + })().then(done).catch(done.fail)); + - it('component should initialize basic parameters', (done: DoneFn) => { + test('component should initialize basic parameters', () => { component.TIMER_TIME_IN_SECONDS = 2; expect(component.TIMER_TIME_IN_SECONDS).toEqual(2); expect(component.dataIsReady).toBeFalsy(); expect(component.lastUpdatedDate).toBeNull(); - done(); }); - it('component constructor should call activateInterval and ngOnInit', (done: DoneFn) => { + test('component constructor should call activateInterval and ngOnInit', () => { component.refreshData(); expect(component.dataIsReady).toBeFalsy(); - done(); }); - it('stopped and pending status isDeleteEnabled button should be enabled, not allowed delete statuses isDeleteEnabled button should be disabled', (done: DoneFn) => { - enableDeleteItems.forEach((item) => { - let isDeleteEnabled: boolean = component.isDeleteEnabled(item); - expect(isDeleteEnabled).toBeTruthy(); - }); + const enableDeleteItemsDataProvider = [ + ['INSTANTIATE action PENDING job status',JobStatus.PENDING , ServiceAction.INSTANTIATE], + ['DELETE action PENDING job status',JobStatus.PENDING , ServiceAction.DELETE], + ['UPDATE action PENDING job status',JobStatus.PENDING , ServiceAction.UPDATE], + ['INSTANTIATE action STOPPED job status',JobStatus.STOPPED , ServiceAction.INSTANTIATE]]; + each(enableDeleteItemsDataProvider).test('delete item should enable for %s', (desc, jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + let isDeleteEnabled: boolean = component.isDeleteEnabled(item); + expect(isDeleteEnabled).toBeTruthy(); + }); - disableDeleteItems.forEach((item) => { - let isDeleteEnabled: boolean = component.isDeleteEnabled(item); - expect(isDeleteEnabled).toBeFalsy(); - }); - done(); + const disableDeleteItemsDataProvider = [ + [ 'INSTANTIATE action COMPLETED job status', JobStatus.COMPLETED , ServiceAction.INSTANTIATE], + [ 'INSTANTIATE action FAILED job status', JobStatus.FAILED , ServiceAction.INSTANTIATE], + [ 'INSTANTIATE action IN_PROGRESS job status', JobStatus.IN_PROGRESS, ServiceAction.INSTANTIATE], + [ 'INSTANTIATE action COMPLETED_WITH_ERRORS job status', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.INSTANTIATE], + [ 'DELETE action IN_PROGRESS job status', JobStatus.IN_PROGRESS, ServiceAction.DELETE], + [ 'DELETE action COMPLETED_WITH_ERRORS job status',JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.DELETE], + [ 'UPDATE action IN_PROGRESS job status', JobStatus.IN_PROGRESS, ServiceAction.UPDATE], + [ 'UPDATE action COMPLETED_WITH_ERRORS job status', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.UPDATE], + [ 'INSTANTIATE action UNKNOWN job status', "UNKNOWN", ServiceAction.INSTANTIATE]]; + each(disableDeleteItemsDataProvider).test('delete item should disable for %s', (desc,jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + let isDeleteEnabled: boolean = component.isDeleteEnabled(item); + expect(isDeleteEnabled).toBeFalsy(); }); - it('[COMPLETED, FAILED, STOPPED] status isHideEnable button should be enabled, [IN_PROGRESS, PAUSE, PENDING] status isHideEnable button should be disabled', (done: DoneFn) => { - const enableHideItems = [ - { jobStatus:"COMPLETED" }, - { jobStatus:"FAILED" }, - { jobStatus:"STOPPED" }]; - enableHideItems.forEach((item) => { - let isDeleteEnabled: boolean = component.isHideEnabled(item); - expect(isDeleteEnabled).toBeTruthy(); - }); + const enableHideItemsDataProvider = [ + ['instantiate action job status COMPLETED',JobStatus.COMPLETED, ServiceAction.INSTANTIATE ], + ['instantiate action job status FAILED',JobStatus.FAILED, ServiceAction.INSTANTIATE ], + ['instantiate action job status STOPPED', JobStatus.STOPPED, ServiceAction.INSTANTIATE ], + ['instantiate action job status COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.INSTANTIATE ], + ['delete action job status COMPLETED', JobStatus.COMPLETED, ServiceAction.DELETE ], + ['delete action job status FAILED', JobStatus.FAILED, ServiceAction.DELETE ], + ['delete action job status STOPPED',JobStatus.STOPPED, ServiceAction.DELETE ], + ['delete action job status COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.DELETE ], + ['update action job status COMPLETED', JobStatus.COMPLETED, ServiceAction.UPDATE ], + ['update action job status FAILED',JobStatus.FAILED, ServiceAction.UPDATE ], + ['update action job status STOPPED', JobStatus.STOPPED, ServiceAction.UPDATE ], + ['update action job status COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.UPDATE ]]; + each(enableHideItemsDataProvider).test('hide item should be enabled for %s', (desc, jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + let isHideEnabled: boolean = component.isHideEnabled(item); + expect(isHideEnabled).toBeTruthy(); + }); - const disableHideItems = [ - { jobStatus:"IN_PROGRESS" }, - { jobStatus:"PAUSE" }, - { jobStatus:"PENDING" }, - { jobStatus:"NOT_MATTER"}]; - disableHideItems.forEach((item) => { - let isDeleteEnabled: boolean = component.isHideEnabled(item); - expect(isDeleteEnabled).toBeFalsy(); - }); - done(); + const disableHideItemsDataProvider = [ + ['action instantiate job status IN_PROGRESS',JobStatus.IN_PROGRESS , ServiceAction.INSTANTIATE], + ['action instantiate job status PAUSE',JobStatus.PAUSE, ServiceAction.INSTANTIATE], + ['action instantiate job status PENDING', JobStatus.PENDING, ServiceAction.INSTANTIATE ], + ['action instantiate job status UNKNOWN', "UNKNOWN", ServiceAction.INSTANTIATE], + ['update instantiate job status IN_PROGRESS', JobStatus.IN_PROGRESS , ServiceAction.UPDATE], + ['update instantiate job status PAUSE', JobStatus.PAUSE, ServiceAction.UPDATE], + ['update instantiate job status PENDING', JobStatus.PENDING, ServiceAction.UPDATE ], + ['update instantiate job status UNKNOWN',"UNKNOWN", ServiceAction.UPDATE], + ['delete instantiate job status IN_PROGRESS',JobStatus.IN_PROGRESS , ServiceAction.DELETE], + ['delete instantiate job status PAUSE', JobStatus.PAUSE, ServiceAction.DELETE], + ['delete instantiate job status PENDING', JobStatus.PENDING, ServiceAction.DELETE ], + ['delete instantiate job status UNKNOWN', "UNKNOWN", ServiceAction.DELETE]]; + each(disableHideItemsDataProvider).test('hide item should disable for %s', (desc, jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + let isHideEnabled: boolean = component.isHideEnabled(item); + expect(isHideEnabled).toBeFalsy(); + }); + + const enableAuditItemsDataProvider = [ + ['instantiate action UNKNOWN job status', "UNKNOWN", ServiceAction.INSTANTIATE ], + ['delete action JobStatus IN_PROGRESS', JobStatus.IN_PROGRESS, ServiceAction.DELETE ], + ['delete action JobStatus PAUSE', JobStatus.PAUSE, ServiceAction.DELETE ], + ['delete action JobStatus FAILED', JobStatus.FAILED, ServiceAction.DELETE ], + ['delete action JobStatus COMPLETED', JobStatus.COMPLETED, ServiceAction.DELETE ], + ['delete action JobStatus COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.DELETE ], + ['update action JobStatus IN_PROGRESS', JobStatus.IN_PROGRESS, ServiceAction.UPDATE ], + ['update action JobStatus PAUSE', JobStatus.PAUSE, ServiceAction.UPDATE ], + ['update action JobStatus COMPLETED', JobStatus.COMPLETED, ServiceAction.UPDATE ], + ['update action JobStatus FAILED', JobStatus.FAILED, ServiceAction.UPDATE ], + ['update action JobStatus COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.UPDATE ]]; + + each(enableAuditItemsDataProvider).test('audit item should be enabled for %s', (desc, jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + const isAuditEnabled: boolean = component.isAuditInfoEnabled(item); + expect(isAuditEnabled).toBeTruthy(); + }); + + const disableAuditItemsDataProvider = [ + ['Job status STOPPED action update', JobStatus.STOPPED, ServiceAction.UPDATE ], + ['Job status PENDING action update', JobStatus.PENDING, ServiceAction.UPDATE ], + ['Job status UNKNOWN action update', "UNKNOWN", ServiceAction.UPDATE], + ['Job status STOPPED action delete',JobStatus.STOPPED, ServiceAction.DELETE], + ['Job status PENDING action delete', JobStatus.PENDING, ServiceAction.DELETE ], + ['Job status UNKNOWN action delete', "UNKNOWN", ServiceAction.DELETE]]; + each(disableAuditItemsDataProvider).test('audit item should be disabled for %s', (desc, jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + let isAuditEnabled: boolean = component.isAuditInfoEnabled(item); + expect(isAuditEnabled).toBeFalsy(); + }); + + const enableOpenItemsDataProvider = [ + ['action instantiate job status PAUSE', JobStatus.PAUSE, ServiceAction.INSTANTIATE ], + ['action instantiate job status COMPLETED', JobStatus.COMPLETED, ServiceAction.INSTANTIATE ], + ['action instantiate job status COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.INSTANTIATE ], + ['action delete job status PENDING', JobStatus.PENDING, ServiceAction.DELETE ], + ['action delete job status FAILED', JobStatus.FAILED, ServiceAction.DELETE ], + ['action delete job status COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.DELETE ], + ['action update job status PENDING', JobStatus.PENDING, ServiceAction.UPDATE ], + ['action update job status PAUSE', JobStatus.PAUSE, ServiceAction.UPDATE ], + ['action update job status COMPLETED', JobStatus.COMPLETED, ServiceAction.UPDATE ], + ['action update job status FAILED', JobStatus.FAILED, ServiceAction.UPDATE ], + ['action update job status COMPLETED_WITH_ERRORS', JobStatus.COMPLETED_WITH_ERRORS, ServiceAction.UPDATE ]]; + each(enableOpenItemsDataProvider).test('open item should be enabled for %s', (desc, jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + let isOpenEnabled: boolean = component.isOpenEnabled(item); + expect(isOpenEnabled).toBeTruthy(); }); + + const disableOpenItemsDataProvider = [ + ['action instantiate job status STOPPED', JobStatus.STOPPED, ServiceAction.INSTANTIATE], + ['action instantiate job status FAILED', JobStatus.FAILED, ServiceAction.INSTANTIATE], + ['action instantiate job status UNKNOWN', "UNKNOWN", ServiceAction.INSTANTIATE], + ['action update job status STOPPED', JobStatus.STOPPED, ServiceAction.UPDATE ], + ['action update job status IN_PROGRESS', JobStatus.IN_PROGRESS, ServiceAction.UPDATE ], + ['action update job status UNKNOWN', "UNKNOWN", ServiceAction.UPDATE], + ['action delete job status COMPLETED', JobStatus.COMPLETED, ServiceAction.DELETE], + ['action delete job status PAUSE', JobStatus.PAUSE, ServiceAction.DELETE], + ['action delete job status IN_PROGRESS', JobStatus.IN_PROGRESS, ServiceAction.DELETE ], + ['action delete job status UNKNOWN',"UNKNOWN", ServiceAction.DELETE]]; + each(disableOpenItemsDataProvider).test('open item should be disabled for %s', (desc, jobStatus, action ) => { + item.action=action; + item.jobStatus=jobStatus; + let isOpenEnabled: boolean = component.isOpenEnabled(item); + expect(isOpenEnabled).toBeFalsy(); + }); + }); diff --git a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.ts b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.ts index ed45ce43c..f3f651960 100644 --- a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.ts +++ b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.ts @@ -1,40 +1,97 @@ -import {AfterViewChecked, Component, ViewChild} from '@angular/core'; +import {Component, ViewChild} from '@angular/core'; import {ServiceInfoService} from '../shared/server/serviceInfo/serviceInfo.service'; import {ServiceInfoModel} from '../shared/server/serviceInfo/serviceInfo.model'; import {InstantiationStatusComponentService} from './instantiationStatus.component.service'; import {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu'; -import {AuditInfoModalComponent} from "./auditInfoModal/auditInfoModal.component"; +import {AuditInfoModalComponent} from "../shared/components/auditInfoModal/auditInfoModal.component"; import * as _ from 'lodash'; import {ScrollToConfigOptions, ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; -import {ConfigurationService} from "../services/configuration.service"; +import {ConfigurationService} from "../shared/services/configuration.service"; import {LogService} from '../shared/utils/log/log.service'; - +import {AppState} from "../shared/store/reducers"; +import {NgRedux} from '@angular-redux/store'; +import {JobStatus, ServiceAction} from "../shared/models/serviceInstanceActions"; +import {DrawingBoardModes} from "../drawingBoard/service-planning/drawing-board.modes"; + +export interface MenuAction{ + name: string; + dataTestId: string; + className: string; + tooltip?: string; + click(item: ServiceInfoModel): void; + enabled (item?: ServiceInfoModel): boolean; + visible (item?: ServiceInfoModel): boolean; +} @Component({ selector : 'instantiation-status', templateUrl : './instantiationStatus.component.html', styleUrls : ['./instantiationStatus.component.scss'] }) -export class InstantiationStatusComponent implements AfterViewChecked{ - +export class InstantiationStatusComponent { TIMER_TIME_IN_SECONDS : number = 0; timer = null; dataIsReady : boolean = false; scroll : boolean = false; lastUpdatedDate: Date = null; - currentJobId: string = null; instantiationStatusComponentService: InstantiationStatusComponentService; configurationService : ConfigurationService; - serviceInfoData: Array = null; + serviceInfoData: ServiceInfoModel[] = null; @ViewChild(ContextMenuComponent) public contextMenu: ContextMenuComponent; + public contextMenuActions: Array = [ + { + name: "Redeploy", + dataTestId: "context-menu-retry", + className: "fa-repeat", + click: (item: ServiceInfoModel) => this.retryItem(item), + enabled: () => true, + visible: (item: ServiceInfoModel) => item.isRetryEnabled, + }, + { + name: "Open", + dataTestId: "context-menu-open", + className: "fa-external-link", + click: (item: ServiceInfoModel) => this.instantiationStatusComponentService.open(item), + enabled: (item: ServiceInfoModel) => this.isOpenEnabled(item), + visible: () => true, + }, + { + name: "Audit info", + dataTestId: "context-menu-audit-info", + className: "fa-info-circle", + click: (item: ServiceInfoModel) => this.auditInfo(item), + enabled: (item: ServiceInfoModel) => this.isAuditInfoEnabled(item), + visible: () => true, + }, + { + name: "Delete", + dataTestId: "context-menu-remove", + className: "fa-trash-o", + click: (item: ServiceInfoModel) => this.deleteItem(item), + enabled: (item: ServiceInfoModel) => this.isDeleteEnabled(item), + visible: () => true, + }, + { + name: "Hide request", + dataTestId: "context-menu-hide", + className: "fa-eye-slash", + tooltip: "Hide this service from this table", + click: (item: ServiceInfoModel) => this.hideItem(item), + enabled: (item: ServiceInfoModel) => this.isHideEnabled(item), + visible: () => true, + } + ]; + + flags: any; constructor(private _serviceInfoService: ServiceInfoService, private _instantiationStatusComponentService : InstantiationStatusComponentService, private _contextMenuService: ContextMenuService, private _configurationService : ConfigurationService, private _scrollToService: ScrollToService, - private _logService : LogService) { + private _logService : LogService, + private _store: NgRedux) { this.instantiationStatusComponentService = _instantiationStatusComponentService; this.configurationService = this._configurationService; this.configurationService.getConfiguration("refreshTimeInstantiationDashboard").subscribe(response => { @@ -58,61 +115,73 @@ export class InstantiationStatusComponent implements AfterViewChecked{ refreshData(): void { this.dataIsReady = false; - this._serviceInfoService.getServicesJobInfo(true) - .subscribe((res: Array) => { + this._serviceInfoService.getServicesJobInfo(true, this.lastUpdatedDate === null) + .subscribe((res: ServiceInfoModel[]) => { this._instantiationStatusComponentService.convertObjectToArray(res).subscribe((res) => { this._logService.info('refresh instantiation status table', res); this.dataIsReady = true; this.lastUpdatedDate = new Date(); if (!_.isEqual(this.serviceInfoData, res)) { this.serviceInfoData = res; - this.scroll = true; + this.scrollToElement(this.findFirstVisibleJob()); } }); }) } - ngAfterViewChecked(){ - if (this.scroll) { - this.scrollToElement(); - this.scroll = false; - } + trackByFn(index: number, item: ServiceInfoModel){ + return _.isNil(item) ? null : item.jobId; } - - - isDeleteEnabled(item):boolean { - return _.includes(['PENDING', 'STOPPED'], item.jobStatus); - } - - deleteItem(item): void { + deleteItem(item: ServiceInfoModel): void { this._serviceInfoService.deleteJob(item.jobId).subscribe(() => { this.refreshData(); }); } - hideItem(item): void { + hideItem(item: ServiceInfoModel): void { this._serviceInfoService.hideJob(item.jobId).subscribe(() => { this.refreshData(); }); } + + retryItem(item: ServiceInfoModel) : void { + if (item.isRetryEnabled) { + this._instantiationStatusComponentService.retry(item); + } + } auditInfo(jobData : ServiceInfoModel): void { AuditInfoModalComponent.openModal.next(jobData); + } + isOpenEnabled(item: ServiceInfoModel):boolean { + switch(item.action) { + case ServiceAction.DELETE: + return _.includes([ JobStatus.PENDING, JobStatus.COMPLETED_WITH_ERRORS, JobStatus.FAILED], item.jobStatus); + case ServiceAction.UPDATE: + return _.includes([JobStatus.PENDING, JobStatus.PAUSE, JobStatus.COMPLETED_WITH_ERRORS, JobStatus.COMPLETED, JobStatus.FAILED], item.jobStatus); + default: + return _.includes([JobStatus.COMPLETED, JobStatus.PAUSE, JobStatus.COMPLETED_WITH_ERRORS], item.jobStatus); + } } - isOpenVisible(item):boolean { - return _.includes(['COMPLETED', 'PAUSE'], item.jobStatus); + isAuditInfoEnabled(item: ServiceInfoModel): boolean { + if(item.action === ServiceAction.DELETE || item.action=== ServiceAction.UPDATE) { + return _.includes([JobStatus.FAILED, JobStatus.IN_PROGRESS, JobStatus.COMPLETED_WITH_ERRORS, JobStatus.PAUSE, JobStatus.COMPLETED], item.jobStatus); + } + return true;// ServiceAction.INSTANTIATE } - open(item): void { - let query = - `subscriberId=${item['subscriberName']}&` + - `serviceType=${item['serviceType']}&` + - `serviceInstanceId=${item['serviceInstanceId']}`; + isDeleteEnabled(item: ServiceInfoModel):boolean { + if( item.action === ServiceAction.DELETE || item.action === ServiceAction.UPDATE){ + return _.includes([JobStatus.PENDING], item.jobStatus); + } + return _.includes([JobStatus.PENDING, JobStatus.STOPPED], item.jobStatus); + } - window.parent.location.assign('../../serviceModels.htm#/instantiate?' + query); + isHideEnabled(item: ServiceInfoModel):boolean { + return _.includes([JobStatus.COMPLETED, JobStatus.FAILED, JobStatus.STOPPED, JobStatus.COMPLETED_WITH_ERRORS], item.jobStatus); } public onContextMenu($event: MouseEvent, item: any): void { @@ -129,17 +198,36 @@ export class InstantiationStatusComponent implements AfterViewChecked{ return './' + imageName + '.svg'; } - isHideEnabled(item: any):boolean { - return _.includes(['COMPLETED', 'FAILED', 'STOPPED'], item.jobStatus); + private getHeaderHeaderClientRect(): ClientRect { + const element = document.querySelector("#instantiation-status thead") as HTMLElement; + return element.getBoundingClientRect(); } - scrollToElement() { - if(this.currentJobId){ + + findFirstVisibleJob(): HTMLElement { + const elements : any = document.querySelectorAll('#instantiation-status tr'); + const headerRect = this.getHeaderHeaderClientRect(); + if (headerRect) { + const topEdge = headerRect.bottom; + for (let i = 0; i < elements.length; i++) { + if (elements[i].getBoundingClientRect().top >= topEdge) + return elements[i]; + } + } + return null; + } + + scrollToElement(currentJob: HTMLElement) { + if (currentJob) { const config: ScrollToConfigOptions = { - target: this.currentJobId, - duration: 50, - offset: -35 //header height + target: currentJob, + duration: 0, + offset: -1 * (this.getHeaderHeaderClientRect().height + 2), }; - this._scrollToService.scrollTo(config); + + // wait after render + setTimeout(() => { + this._scrollToService.scrollTo(config); + }, 0) } } } diff --git a/vid-webpack-master/src/app/modules/inputs.module.ts b/vid-webpack-master/src/app/modules/inputs.module.ts deleted file mode 100644 index cb5f914cd..000000000 --- a/vid-webpack-master/src/app/modules/inputs.module.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { DynamicInputsComponent } from '../components/dynamic-inputs/dynamic-inputs.component'; -import { AngularMultiSelectModule } from "angular2-multiselect-dropdown"; -import { DynamicInputLabelPipe } from '../shared/pipes/dynamicInputLabel/dynamic-input-label.pipe'; - - -@NgModule({ - imports: [ - CommonModule, FormsModule, ReactiveFormsModule, AngularMultiSelectModule - ], - providers: [], - declarations: [ DynamicInputLabelPipe, DynamicInputsComponent ], - entryComponents: [], - exports: [ DynamicInputLabelPipe, DynamicInputsComponent ] - -}) - -export class InputsModule { } diff --git a/vid-webpack-master/src/app/service.actions.ts b/vid-webpack-master/src/app/service.actions.ts deleted file mode 100644 index a62fec673..000000000 --- a/vid-webpack-master/src/app/service.actions.ts +++ /dev/null @@ -1,197 +0,0 @@ -import { Action, ActionCreator } from "redux"; -import { LcpRegionsAndTenants } from "./shared/models/lcpRegionsAndTenants"; -import { ServiceInstance } from "./shared/models/serviceInstance"; -import { SelectOptionInterface } from "./shared/models/selectOption"; -import { ServiceType } from "./shared/models/serviceType"; -import { VnfInstance } from "./shared/models/vnfInstance"; - -export const UPDATE_MODEL = "[MODEL] Update"; -export const UPDATE_SERVICE_INSTANCE = "[SERVICE INSTANCE] Update"; -export const UPDATE_VNF_INSTANCE = "[VNF INSTANCE] Update"; -export const UPDATE_VF_MODULE = "[VF MODULE] Update"; -export const CREATE_VF_MODULE = "[VF MODULE] Create"; - -export const UPDATE_LCP_REGIONS_AND_TENANTS = "[LCP_REGIONS_AND_TENANTS] Update"; -export const UPDATE_SUBSCRIBERS = "[SUBSCRIBERS] Update"; -export const UPDATE_PRODUCT_FAMILIES = "[PRODUCT_FAMILIES] Update"; -export const UPDATE_SERVICE_TYPES = "[SERVICE_TYPE] Update"; -export const UPDATE_AIC_ZONES = "[AIC_ZONES] Update"; -export const DELETE_SERVICE_INSTANCE = "[SERVICE_INSTANCE] Delete"; -export const DELETE_VNF_INSTANCE = "[VNF_INSTANCE] Delete"; -export const DELETE_VNF_MODULE_INSTANCE = "[VNF_MODULE_INSTANCE] Delete"; -export const UPDATE_CATEGORY_PARAMETERS = "[CATEGORY_PARAMETERS] Update"; -export const UPDATE_NETWORK_FUNCTION = "[UPDATE_NETWORK_FUNCTION] Update"; -export const UPDATE_USER_ID = "[UPDATE_USER_ID] Update"; - - -export interface UpdateServiceModelAction extends Action { - serviceHierarchy?: any; -} - -export interface UpdateNetworkCollectionFunction extends Action { - networksAccordingToNetworkCollection: any; - network_function: any; -} - -export interface UpdateServiceInstanceAction extends Action { - serviceUuid?: string; - serviceInstance?: ServiceInstance; -} - -export interface UpdateVFModuleInstanceAction extends Action { - vfInstance: any; - vfId: string; - serviceUuid: string; -} - -export interface CreateVFModuleInstanceAction extends Action { - vfInstance: any; - vfId: string; - serviceUuid: string; - index : number -} - -export interface UpdateUserIdAction extends Action { - userId: string; -} - -export interface UpdateVnfInstanceAction extends Action { - vnfInstance?: VnfInstance; - vnfModelName?: string; - serviceUuid?: string; -} - -export interface UpdateLcpRegionsAndTenantsAction extends Action { - lcpRegionsAndTenants?: LcpRegionsAndTenants; -} - -export interface UpdateSubscribersAction extends Action { - subscribers?: SelectOptionInterface[]; -} - -export interface UpdateProductFamiliesAction extends Action { - productFamilies?: SelectOptionInterface[]; -} - -export interface UpdateAicZonesAction extends Action { - aicZones?: SelectOptionInterface[]; -} - -export interface UpdateServiceTypesAction extends Action { - serviceTypes?: ServiceType[]; - subscriberId: string; -} - -export interface DeleteServiceInstanceAction extends Action { - serviceUuid?: string; -} - -export interface DeleteVnfInstanceAction extends Action { - modelName?: string; - serviceModelId: string; -} - -export interface DeleteVfModuleInstanceAction extends Action { - modelName?: string; - serviceModelId?: string; - vfName?: string; -} - -export interface UpdateCategoryParametersAction extends Action { - categoryParameters?: string; -} - -export const updateModel: ActionCreator = serviceHierarchy => ({ - type: UPDATE_MODEL, - serviceHierarchy: serviceHierarchy -}); - -export const updateServiceInstance: ActionCreator = (serviceInstance, serviceUuid) => ({ - type: UPDATE_SERVICE_INSTANCE, - serviceInstance: serviceInstance, - serviceUuid: serviceUuid -}); - -export const updateVFModuleInstance: ActionCreator = (vfInstance, vfId, serviceUuid) => ({ - type: UPDATE_VF_MODULE, - vfInstance: vfInstance, - vfId: vfId, - serviceUuid: serviceUuid -}) - -export const createVFModuleInstance: ActionCreator = (vfInstance, vfId, serviceUuid, index) => ({ - type: CREATE_VF_MODULE, - vfInstance: vfInstance, - vfId: vfId, - serviceUuid: serviceUuid, - index : index -}) - - - -export const updateVNFInstance: ActionCreator = (vnfInstance, vnfModelName, serviceUuid) => ({ - type: UPDATE_VNF_INSTANCE, - vnfInstance: vnfInstance, - vnfModelName: vnfModelName, - serviceUuid: serviceUuid -}); - -export const updateLcpRegionsAndTenants: ActionCreator = lcpRegionsAndTenants => ({ - type: UPDATE_LCP_REGIONS_AND_TENANTS, - lcpRegionsAndTenants: lcpRegionsAndTenants -}); - -export const updateSubscribers: ActionCreator = subscribers => ({ - type: UPDATE_SUBSCRIBERS, - subscribers: subscribers -}); - -export const updateProductFamilies: ActionCreator = productFamilies => ({ - type: UPDATE_PRODUCT_FAMILIES, - productFamilies: productFamilies -}); - -export const updateAicZones: ActionCreator = aicZones => ({ - type: UPDATE_AIC_ZONES, - aicZones: aicZones -}); - -export const updateUserId: ActionCreator = userId => ({ - type: UPDATE_USER_ID, - userId: userId -}); - -export const updateCategoryParameters: ActionCreator = categoryParameters => ({ - type: UPDATE_CATEGORY_PARAMETERS, - categoryParameters: categoryParameters -}); - -export const updateServiceTypes: ActionCreator = (serviceTypes, subscriberId) => ({ - type: UPDATE_SERVICE_TYPES, - serviceTypes: serviceTypes, - subscriberId: subscriberId -}); - -export const updateNetworkCollectionFunction: ActionCreator = (ncf, networksAccordingToNetworkCollection) => ({ - type: UPDATE_NETWORK_FUNCTION, - networksAccordingToNetworkCollection: networksAccordingToNetworkCollection["results"], - network_function: ncf -}); - -export const deleteServiceInstance: ActionCreator = serviceUuid => ({ - type: DELETE_SERVICE_INSTANCE, - serviceUuid: serviceUuid -}); - -export const deleteVnfInstance: ActionCreator = (modelName, serviceModelId) => ({ - type: DELETE_VNF_INSTANCE, - modelName: modelName, - serviceModelId: serviceModelId -}); - -export const deleteVfModuleInstance: ActionCreator = (modelName, serviceModelId, vfName) => ({ - type: DELETE_VNF_MODULE_INSTANCE, - modelName: modelName, - serviceModelId: serviceModelId, - vfName: vfName -}); diff --git a/vid-webpack-master/src/app/service.reducer.spec.ts b/vid-webpack-master/src/app/service.reducer.spec.ts deleted file mode 100644 index f734979ac..000000000 --- a/vid-webpack-master/src/app/service.reducer.spec.ts +++ /dev/null @@ -1,286 +0,0 @@ -import { LcpRegionsAndTenants } from './shared/models/lcpRegionsAndTenants'; -import { ServiceReducer, ServiceState } from './service.reducer'; -import { CategoryParams } from './shared/models/categoryParams'; -import { - DELETE_VNF_INSTANCE, DELETE_VNF_MODULE_INSTANCE, DeleteVfModuleInstanceAction, - DeleteVnfInstanceAction, - UPDATE_AIC_ZONES, - UPDATE_LCP_REGIONS_AND_TENANTS, - UPDATE_PRODUCT_FAMILIES, - UPDATE_SERVICE_INSTANCE, - UPDATE_SUBSCRIBERS, - UPDATE_USER_ID, - UPDATE_VNF_INSTANCE, - UpdateAicZonesAction, - UpdateProductFamiliesAction, UpdateServiceInstanceAction, - UpdateSubscribersAction, UpdateUserIdAction, - UpdateVnfInstanceAction -} from './service.actions'; -import { VnfInstance } from './shared/models/vnfInstance'; -import { ServiceInstance } from './shared/models/serviceInstance'; -import { LcpRegion } from './shared/models/lcpRegion'; -import { Tenant } from './shared/models/tenant'; -import { SelectOption } from './shared/models/selectOption'; - - -const initialState: ServiceState = { - serviceHierarchy: {}, - serviceInstance: {}, - lcpRegionsAndTenants: new LcpRegionsAndTenants(), - subscribers: null, - productFamilies: null, - serviceTypes: {}, - aicZones: null, - categoryParameters: new CategoryParams() -}; - - -describe('service reducer', () => { - const userId: string = 'userId'; - it('should handle initial state', () => { - expect(ServiceReducer(undefined, {})).toEqual(initialState); - }); - - it('#UPDATE_USER_ID : should update userId ', (done: DoneFn) => { - expect(ServiceReducer({}, - { - type: UPDATE_USER_ID, - userId: userId - } - )['userId']).toEqual(userId); - done(); - }); - - it('#UPDATE_SERVICE_INSTANCE : should update service instance with service id ', (done: DoneFn) => { - const serviceUuid:string = 'serviceUuid'; - - let serviceInstanceObject : ServiceInstance = { - instanceName: 'instanceName', - isUserProvidedNaming: false, - globalSubscriberId: 'globalSubscriberId', - productFamilyId: 'productFamilyId', - subscriptionServiceType: 'subscriptionServiceType', - lcpCloudRegionId: 'lcpCloudRegionId', - tenantId: 'tenantId', - tenantName: 'tenantName', - aicZoneId: 'aicZoneId', - aicZoneName: 'aicZoneName', - projectName: 'projectName', - owningEntityId: 'owningEntityId', - owningEntityName: 'owningEntityName', - pause: false, - bulkSize: 1, - vnfs: {}, - instanceParams : {}, - rollbackOnFailure: false, - subscriberName: 'subscriberName' - }; - - let serviceState = ServiceReducer({serviceInstance : {}}, - { - type: UPDATE_SERVICE_INSTANCE, - serviceUuid: serviceUuid, - serviceInstance : serviceInstanceObject - }).serviceInstance['serviceUuid']; - - expect(serviceState.instanceName).toEqual(serviceInstanceObject.instanceName); - expect(serviceState.isUserProvidedNaming).toEqual(serviceInstanceObject.isUserProvidedNaming); - expect(serviceState.globalSubscriberId).toEqual(serviceInstanceObject.globalSubscriberId); - expect(serviceState.productFamilyId).toEqual(serviceInstanceObject.productFamilyId); - expect(serviceState.subscriptionServiceType).toEqual(serviceInstanceObject.subscriptionServiceType); - expect(serviceState.lcpCloudRegionId).toEqual(serviceInstanceObject.lcpCloudRegionId); - expect(serviceState.tenantId).toEqual(serviceInstanceObject.tenantId); - expect(serviceState.tenantName).toEqual(serviceInstanceObject.tenantName); - expect(serviceState.aicZoneId).toEqual(serviceInstanceObject.aicZoneId); - expect(serviceState.aicZoneName).toEqual(serviceInstanceObject.aicZoneName); - expect(serviceState.projectName).toEqual(serviceInstanceObject.projectName); - expect(serviceState.owningEntityId).toEqual(serviceInstanceObject.owningEntityId); - expect(serviceState.owningEntityName).toEqual(serviceInstanceObject.owningEntityName); - expect(serviceState.pause).toEqual(serviceInstanceObject.pause); - expect(serviceState.bulkSize).toEqual(serviceInstanceObject.bulkSize); - expect(serviceState.vnfs).toEqual(serviceInstanceObject.vnfs); - expect(serviceState.instanceParams).toEqual(serviceInstanceObject.instanceParams); - expect(serviceState.rollbackOnFailure).toEqual(serviceInstanceObject.rollbackOnFailure); - expect(serviceState.subscriberName).toEqual(serviceInstanceObject.subscriberName); - - done(); - }); - - it('#UPDATE_VNF_INSTANCE : should update vnf instance with service id and vnfModelName ', (done: DoneFn) => { - let vnfInstanceObj : VnfInstance = { - instanceName: 'instanceName', - isUserProvidedNaming: false, - productFamilyId: 'productFamilyId', - lcpCloudRegionId: 'lcpCloudRegionId', - legacyRegion: 'legacyRegion', - tenantId: 'tenantId', - platformName: 'platformName', - lineOfBusiness: 'lineOfBusiness', - rollbackOnFailure: 'false', - vfModules: {} - }; - - let vnfState = ServiceReducer({serviceInstance : { - 'serviceUuid' : { - vnfs : {} - } - }}, - { - type: UPDATE_VNF_INSTANCE, - serviceUuid : 'serviceUuid', - vnfInstance: vnfInstanceObj, - vnfModelName : 'vnfModelName' - }).serviceInstance['serviceUuid'].vnfs['vnfModelName']; - - expect(vnfState.instanceName).toEqual(vnfInstanceObj.instanceName); - expect(vnfState.isUserProvidedNaming).toEqual(vnfInstanceObj.isUserProvidedNaming); - expect(vnfState.productFamilyId).toEqual(vnfInstanceObj.productFamilyId); - expect(vnfState.lcpCloudRegionId).toEqual(vnfInstanceObj.lcpCloudRegionId); - expect(vnfState.legacyRegion).toEqual(vnfInstanceObj.legacyRegion); - expect(vnfState.tenantId).toEqual(vnfInstanceObj.tenantId); - expect(vnfState.platformName).toEqual(vnfInstanceObj.platformName); - expect(vnfState.lineOfBusiness).toEqual(vnfInstanceObj.lineOfBusiness); - expect(vnfState.vfModules).toEqual(vnfInstanceObj.vfModules); - expect(vnfState.rollbackOnFailure).toEqual(vnfInstanceObj.rollbackOnFailure); - - done(); - }); - - it('#UPDATE_LCP_REGIONS_AND_TENANTS : should update lcp region and tenants', (done: DoneFn) => { - let lcpRegionsAndTenantsObj = [ - { - lcpRegionList : [ - new LcpRegion({ - "cloudRegionID" : 'cloudRegionID', - "is-permitted" : "is-permitted" - }) - ], - lcpRegionsTenantsMap : { - "lcpRegion" : [new Tenant({ - "tenantID" : "tenantID", - "tenantName" : "tenantName", - "is-permitted" : true - })] - } - } - ]; - let lcpRegionsAndTenantsState = ServiceReducer({serviceInstance : {}}, - { - type: UPDATE_LCP_REGIONS_AND_TENANTS, - lcpRegionsAndTenants : lcpRegionsAndTenantsObj - })['lcpRegionsAndTenants']; - - expect(lcpRegionsAndTenantsState).toBeDefined(); - done(); - }); - - it('#UPDATE_SUBSCRIBERS : should update subscribers', (done: DoneFn) => { - let subscribersList = [ - new SelectOption({ - id : 'id', - name : 'name', - isPermitted : false - }) - ]; - let subscribersState = ServiceReducer({serviceInstance : {}}, - { - type: UPDATE_SUBSCRIBERS, - subscribers : subscribersList - })['subscribers']; - - expect(subscribersState).toBeDefined(); - expect(subscribersState[0].id).toEqual(subscribersList[0].id); - expect(subscribersState[0].isPermitted).toEqual(subscribersList[0].isPermitted); - expect(subscribersState[0].name).toEqual(subscribersList[0].name); - - done(); - }); - - it('#UpdateProductFamiliesAction : should update product families', (done: DoneFn) => { - let productFamiliesObj = [ - new SelectOption({ - id : 'id', - name : 'name', - isPermitted : false - }) - ]; - let productFamiliesState = ServiceReducer({serviceInstance : {}}, - { - type: UPDATE_PRODUCT_FAMILIES, - productFamilies : productFamiliesObj - })['productFamilies']; - - expect(productFamiliesState).toBeDefined(); - expect(productFamiliesState[0].id).toEqual(productFamiliesObj[0].id); - expect(productFamiliesState[0].isPermitted).toEqual(productFamiliesObj[0].isPermitted); - expect(productFamiliesState[0].name).toEqual(productFamiliesObj[0].name); - - done(); - }); - - it('#UPDATE_AIC_ZONES : should update aic zones', (done: DoneFn) => { - let aicZonesObj = [ - new SelectOption({ - id : 'id', - name : 'name', - isPermitted : false - }) - ]; - let aicZonesState = ServiceReducer({serviceInstance : {}}, - { - type: UPDATE_AIC_ZONES, - aicZones : aicZonesObj - })['aicZones']; - - expect(aicZonesState).toBeDefined(); - expect(aicZonesState[0].id).toEqual(aicZonesObj[0].id); - expect(aicZonesState[0].isPermitted).toEqual(aicZonesObj[0].isPermitted); - expect(aicZonesState[0].name).toEqual(aicZonesObj[0].name); - - done(); - }); - - it('#DELETE_VNF_INSTANCE : should delete existing vnf', (done: DoneFn) => { - let state = ServiceReducer({serviceInstance : { - 'serviceModelId' : { - vnfs : { - 'modelName' : {} - } - } - }}, - { - type: DELETE_VNF_INSTANCE, - modelName : 'modelName', - serviceModelId : 'serviceModelId' - }); - - expect(state).toBeDefined(); - expect(state.serviceInstance[ 'serviceModelId'].vnfs['modelName']).not.toBeDefined(); - done(); - }); - - it('#DELETE_VNF_MODULE_INSTANCE : should delete existing vnf module', (done: DoneFn) => { - let state = ServiceReducer({serviceInstance : { - 'serviceModelId' : { - vnfs : { - 'vfName' : { - vfModules : { - 'modelName' : {} - } - } - } - } - }}, - { - type: DELETE_VNF_MODULE_INSTANCE, - modelName : 'modelName', - vfName : 'vfName', - serviceModelId : 'serviceModelId' - }); - - expect(state).toBeDefined(); - expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']).not.toBeDefined(); - done(); - }); - -}); diff --git a/vid-webpack-master/src/app/service.reducer.ts b/vid-webpack-master/src/app/service.reducer.ts deleted file mode 100644 index a11f31e80..000000000 --- a/vid-webpack-master/src/app/service.reducer.ts +++ /dev/null @@ -1,214 +0,0 @@ -import { Action } from 'redux'; -import { - CREATE_VF_MODULE, - CreateVFModuleInstanceAction, - DELETE_SERVICE_INSTANCE, - DELETE_VNF_INSTANCE, - DELETE_VNF_MODULE_INSTANCE, - DeleteServiceInstanceAction, - DeleteVfModuleInstanceAction, - DeleteVnfInstanceAction, - UPDATE_AIC_ZONES, - UPDATE_CATEGORY_PARAMETERS, - UPDATE_LCP_REGIONS_AND_TENANTS, - UPDATE_MODEL, - UPDATE_NETWORK_FUNCTION, - UPDATE_PRODUCT_FAMILIES, - UPDATE_SERVICE_INSTANCE, - UPDATE_SERVICE_TYPES, - UPDATE_SUBSCRIBERS, - UPDATE_USER_ID, - UPDATE_VF_MODULE, - UPDATE_VNF_INSTANCE, - UpdateAicZonesAction, - UpdateCategoryParametersAction, - UpdateLcpRegionsAndTenantsAction, - UpdateNetworkCollectionFunction, - UpdateProductFamiliesAction, - UpdateServiceInstanceAction, - UpdateServiceModelAction, - UpdateServiceTypesAction, - UpdateSubscribersAction, - UpdateUserIdAction, - UpdateVFModuleInstanceAction, - UpdateVnfInstanceAction, -} from './service.actions'; -import { LcpRegionsAndTenants } from './shared/models/lcpRegionsAndTenants'; -import * as _ from 'lodash'; -import { ServiceInstance } from './shared/models/serviceInstance'; -import { CategoryParams } from './shared/models/categoryParams'; -import { SelectOptionInterface } from './shared/models/selectOption'; -import { ServiceType } from './shared/models/serviceType'; -import { VnfInstance } from './shared/models/vnfInstance'; -import { VfModuleMap } from './shared/models/vfModulesMap'; - -export interface ServiceState { - serviceHierarchy: any; - serviceInstance: { [uuid: string]: ServiceInstance; }; - lcpRegionsAndTenants: LcpRegionsAndTenants; - subscribers: SelectOptionInterface[]; - productFamilies: any; - serviceTypes: { [subscriberId: string]: ServiceType[]; }; - aicZones: SelectOptionInterface[]; - categoryParameters: CategoryParams; -} - -const initialState: ServiceState = { - serviceHierarchy: {}, - serviceInstance: {}, - lcpRegionsAndTenants: new LcpRegionsAndTenants(), - subscribers: null, - productFamilies: null, - serviceTypes: {}, - aicZones: null, - categoryParameters: new CategoryParams() -}; - -export const ServiceReducer = - function (state: ServiceState = initialState, action: Action): ServiceState { - switch (action.type) { - case UPDATE_MODEL: { - let uuid = (action).serviceHierarchy.service.uuid; - state.serviceHierarchy[uuid] = _.cloneDeep((action).serviceHierarchy); - return Object.assign({}, state); - } - case UPDATE_SERVICE_INSTANCE: { - const updateServiceInstanceAction = action; - const uuid = updateServiceInstanceAction.serviceUuid; - const newState = _.cloneDeep(state); - - const serviceInstance: ServiceInstance = newState.serviceInstance[uuid] || new ServiceInstance(); - - newState.serviceInstance[uuid] = Object.assign(serviceInstance, updateServiceInstanceAction.serviceInstance); - return newState; - } - case UPDATE_VNF_INSTANCE: { - const updateVnfInstanceAction = action; - const serviceUuid = updateVnfInstanceAction.serviceUuid; - const vnfModelName = updateVnfInstanceAction.vnfModelName; - - const newState = _.cloneDeep(state); - const vnfInstance: VnfInstance = newState.serviceInstance[serviceUuid].vnfs[vnfModelName] || new VnfInstance(); - - newState.serviceInstance[serviceUuid].vnfs[vnfModelName] = Object.assign(vnfInstance, updateVnfInstanceAction.vnfInstance); - return newState; - } - - - case UPDATE_USER_ID: { - const updateUserId : UpdateUserIdAction = action; - // var newState2 = {...state,'userId':updateUserId.userId} - var newState = _.cloneDeep(state); - newState['userId'] = updateUserId.userId; - return newState; - - // state = (... {userId:action["userId"]},state]} - } - - case UPDATE_VF_MODULE: { - const updateVFModuleInstanceAction = action; - const vfInstance = updateVFModuleInstanceAction.vfInstance; - const serviceUuid = updateVFModuleInstanceAction.serviceUuid; - const vfModuleId = updateVFModuleInstanceAction.vfId; - const newState = _.cloneDeep(state); - const vnfs = newState.serviceHierarchy[serviceUuid].vnfs; - const vnfId = getVfModuleParentVnfId(vnfs, vfModuleId); - let vfModulesMap = newState.serviceInstance[serviceUuid].vnfs[vnfId].vfModules[vfModuleId] || new VfModuleMap(); - vfModulesMap[vfModuleId] = vfInstance; - newState.serviceInstance[serviceUuid].vnfs[vnfId].vfModules[vfModuleId] = vfModulesMap; - return newState; - } - - case CREATE_VF_MODULE: { - const updateVFModuleInstanceAction = action; - const vfInstance = updateVFModuleInstanceAction.vfInstance; - const serviceUuid = updateVFModuleInstanceAction.serviceUuid; - const vfModuleId = updateVFModuleInstanceAction.vfId; - const index = updateVFModuleInstanceAction.index; - let newState = Object.assign({}, state); - const vnfs = newState.serviceHierarchy[serviceUuid].vnfs; - const vnfId = getVfModuleParentVnfId(vnfs, vfModuleId); - let vfModulesMap = newState.serviceInstance[serviceUuid].vnfs[vnfId].vfModules[vfModuleId] || new VfModuleMap(); - let randomId = generateId(); - vfModulesMap[vfModuleId + randomId] = vfInstance; - - newState.serviceInstance[serviceUuid].vnfs[vnfId].vfModules[vfModuleId] = vfModulesMap; - return newState; - } - - - case UPDATE_LCP_REGIONS_AND_TENANTS: { - Object.assign(state, (action)); - return Object.assign({}, state); - } - case UPDATE_SUBSCRIBERS: { - Object.assign(state, (action)); - return Object.assign({}, state); - } - case UPDATE_AIC_ZONES: { - Object.assign(state, (action)); - return Object.assign({}, state); - } - case UPDATE_PRODUCT_FAMILIES: { - Object.assign(state, (action)); - return Object.assign({}, state); - } - case UPDATE_NETWORK_FUNCTION: { - let networkFunctionReduxObj = state["networkFunctions"] == undefined ? {} : state["networkFunctions"]; - networkFunctionReduxObj[(action).network_function] = (action).networksAccordingToNetworkCollection; - Object.assign(state, {"networkFunctions":networkFunctionReduxObj}); - return Object.assign({}, state); - } - case UPDATE_SERVICE_TYPES: { - let subscriberId = (action).subscriberId; - let serviceTypes = (action).serviceTypes; - state.serviceTypes[subscriberId] = serviceTypes; - return Object.assign({}, state); - } - case UPDATE_CATEGORY_PARAMETERS: { - Object.assign(state, (action)); - return Object.assign({}, state); - } - case DELETE_SERVICE_INSTANCE: { - const uuid = (action).serviceUuid; - if (state.serviceHierarchy[uuid]) { - let newState = _.omit(state, ['serviceInstance[' + uuid + ']']); - return Object.assign({}, state, newState); - } - return Object.assign({}, state); - } - case DELETE_VNF_INSTANCE: { - const actionData =(action); - if(state.serviceInstance[actionData.serviceModelId]){ - delete state.serviceInstance[actionData.serviceModelId].vnfs[actionData.modelName]; - } - return Object.assign({}, state); - } - - case DELETE_VNF_MODULE_INSTANCE: { - const actionData =(action); - if(state.serviceInstance[actionData.serviceModelId]){ - delete state.serviceInstance[actionData.serviceModelId].vnfs[actionData.vfName].vfModules[actionData.modelName]; - } - return Object.assign({}, state); - } - default: - return Object.assign({}, state); - } - }; - -const generateId = () => { - return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5); -}; - - -const getVfModuleParentVnfId = (vnfs: object, vfModuleId: string) => { - let vnfId = undefined; - _.forOwn(vnfs, (value, key) => { - if (vnfs[key].vfModules && vnfs[key].vfModules[vfModuleId]) { - vnfId = vnfs[key].modelCustomizationName; - return false; - } - }); - return vnfId; -}; diff --git a/vid-webpack-master/src/app/services/aaiService/aai.service.ts b/vid-webpack-master/src/app/services/aaiService/aai.service.ts deleted file mode 100644 index dd9d9fb29..000000000 --- a/vid-webpack-master/src/app/services/aaiService/aai.service.ts +++ /dev/null @@ -1,189 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpClient, HttpHeaders} from '@angular/common/http'; -import { Constants } from '../../shared/utils/constants'; -import { ServiceType } from "../../shared/models/serviceType"; -import {GetSubDetailsResponse} from "./responseInterfaces/getSubDetailsResponseInterface"; -import {Observable} from "rxjs/Observable"; -import * as _ from 'lodash'; -import {CategoryParams} from "../../shared/models/categoryParams"; -import {GetCategoryParamsResponseInterface} from "./responseInterfaces/getCategoryParamsResponseInterface"; -import {Project} from "../../shared/models/project"; -import {OwningEntity} from "../../shared/models/owningEntity"; -import {GetServicesResponseInterface} from "./responseInterfaces/getServicesResponseInterface"; -import {Subscriber} from "../../shared/models/subscriber"; -import {GetSubscribersResponse} from "./responseInterfaces/getSubscribersResponseInterface"; -import {AicZone} from "../../shared/models/aicZone"; -import {GetAicZonesResponse} from "./responseInterfaces/getAicZonesResponseInterface"; -import {LcpRegionsAndTenants} from "../../shared/models/lcpRegionsAndTenants"; -import {LcpRegion} from "../../shared/models/lcpRegion"; -import {Tenant} from "../../shared/models/tenant"; -import {ProductFamily} from "../../shared/models/productFamily" -import { - updateAicZones, updateCategoryParameters, updateLcpRegionsAndTenants, updateModel, updateProductFamilies, - updateServiceTypes, updateSubscribers, updateUserId -} from '../../service.actions'; -import {SelectOption} from '../../shared/models/selectOption'; -import {NgRedux} from "@angular-redux/store"; -import {AppState} from "../../store/reducers"; -import {ResponseContentType, ResponseType} from "@angular/http"; -import 'rxjs/add/operator/do'; -import 'rxjs/add/observable/of'; -import 'rxjs/add/operator/catch'; - -@Injectable() -export class AaiService { - - constructor (private http: HttpClient, private store: NgRedux) {} - - public getServiceModelById(serviceModelId: string): Observable { - if (_.has(this.store.getState().service.serviceHierarchy,serviceModelId)){ - return Observable.of( JSON.parse(JSON.stringify(this.store.getState().service.serviceHierarchy[serviceModelId]))); - } - let pathQuery: string = Constants.Path.SERVICES_PATH + serviceModelId; - return this.http.get(pathQuery).map(res => res ) - .do((res) => { - this.store.dispatch(updateModel(res)); - }); - } - - public getUserId() : Observable{ - return this.http.get("../../getuserID",{responseType: 'text'}).do((res)=>this.store.dispatch(updateUserId(res))); - } - - - public getCRAccordingToNetworkFunctionId(networkCollectionFunction,cloudOwner,cloudRegionId){ - return this.http.get('../../aai_get_instance_groups_by_cloudregion/'+cloudOwner+'/'+cloudRegionId+'/' + networkCollectionFunction) - .map(res=>res).do((res)=>console.log(res)); - } - - public getCategoryParameters(familyName): Observable { - familyName = familyName || Constants.Path.PARAMETER_STANDARDIZATION_FAMILY; - let pathQuery: string = Constants.Path.GET_CATEGORY_PARAMETERS +"?familyName=" + familyName+ "&r=" + Math.random(); - - return this.http.get(pathQuery) - .map(this.categoryParametersResponseToProductAndOwningEntity) - .do(res => { - this.store.dispatch(updateCategoryParameters(res)) - }); - } - - - - categoryParametersResponseToProductAndOwningEntity(res: GetCategoryParamsResponseInterface): CategoryParams { - if (res && res.categoryParameters) { - const owningEntityList = res.categoryParameters.owningEntity.map(owningEntity => new OwningEntity(owningEntity)); - const projectList = res.categoryParameters.project.map(project => new Project(project)); - const lineOfBusinessList = res.categoryParameters.lineOfBusiness.map(owningEntity => new SelectOption(owningEntity)); - const platformList = res.categoryParameters.platform.map(platform => new SelectOption(platform)); - - return new CategoryParams(owningEntityList, projectList, lineOfBusinessList, platformList); - } else { - return new CategoryParams(); - } - } - - public getProductFamilies(): Observable { - return this.getServices().map(res => res.service.map(service => new ProductFamily(service))); - } - - public getServices(): Observable { - let pathQuery: string = Constants.Path.AAI_GET_SERVICES + Constants.Path.ASSIGN + Math.random(); - - return this.http.get(pathQuery); - } - - public getSubscribers(): Observable { - if (this.store.getState().service.subscribers){ - return Observable.of( JSON.parse(JSON.stringify(this.store.getState().service.subscribers))); - } - - let pathQuery: string = Constants.Path.AAI_GET_SUBSCRIBERS + Constants.Path.ASSIGN + Math.random(); - - return this.http.get(pathQuery).map(res => - res.customer.map( subscriber => new Subscriber(subscriber))).do((res) => { - this.store.dispatch(updateSubscribers(res)); - }); - } - - public getAicZones(): Observable { - if (this.store.getState().service.aicZones){ - return Observable.of( JSON.parse(JSON.stringify(this.store.getState().service.aicZones))); - } - - let pathQuery: string = Constants.Path.AAI_GET_AIC_ZONES + Constants.Path.ASSIGN + Math.random(); - - return this.http.get(pathQuery).map(res => - res.zone.map(aicZone => new AicZone(aicZone))).do((res) => { - this.store.dispatch(updateAicZones(res)); - }); - } - - public getLcpRegionsAndTenants(globalCustomerId, serviceType): Observable { - if (this.store.getState().service.lcpRegionsAndTenants.lcpRegionList.length !== 0){ - return Observable.of( JSON.parse(JSON.stringify(this.store.getState().service.lcpRegionsAndTenants))); - } - let pathQuery: string = Constants.Path.AAI_GET_TENANTS - + globalCustomerId + Constants.Path.FORWARD_SLASH + serviceType + Constants.Path.ASSIGN + Math.random(); - - console.log("AaiService:getSubscriptionServiceTypeList: globalCustomerId: " - + globalCustomerId); - if (globalCustomerId != null) { - return this.http.get(pathQuery) - .map(this.tenantResponseToLcpRegionsAndTenants).do((res) => { - this.store.dispatch(updateLcpRegionsAndTenants(res)); - }); - } - } - - tenantResponseToLcpRegionsAndTenants(cloudRegionTenantList): LcpRegionsAndTenants { - - const lcpRegionsTenantsMap = {}; - - const lcpRegionList = _.uniqBy(cloudRegionTenantList, 'cloudRegionID').map((cloudRegionTenant) => { - return new LcpRegion(cloudRegionTenant) - }); - - lcpRegionList.forEach(region => { - lcpRegionsTenantsMap[region.id] = _.filter(cloudRegionTenantList, {'cloudRegionID' : region.id}) - .map((cloudRegionTenant) => { - return new Tenant(cloudRegionTenant) - }); - const reducer = (accumulator, currentValue) => { - accumulator.isPermitted = accumulator.isPermitted || currentValue.isPermitted; - - return accumulator; - }; - region.isPermitted = lcpRegionsTenantsMap[region.id].reduce(reducer).isPermitted; - }); - - return new LcpRegionsAndTenants(lcpRegionList, lcpRegionsTenantsMap); - } - - public getServiceTypes(subscriberId): Observable { - console.log("AaiService:getSubscriptionServiceTypeList: globalCustomerId: " + subscriberId); - if (_.has(this.store.getState().service.serviceTypes, subscriberId)){ - return Observable.of( JSON.parse(JSON.stringify(this.store.getState().service.serviceTypes[subscriberId]))); - } - - return this.getSubscriberDetails(subscriberId) - .map(this.subDetailsResponseToServiceTypes) - .do((res) => {this.store.dispatch(updateServiceTypes(res, subscriberId));}); - } - - public getSubscriberDetails(subscriberId): Observable { - let pathQuery: string = Constants.Path.AAI_SUB_DETAILS_PATH + subscriberId + Constants.Path.ASSIGN + Math.random(); - - if (subscriberId != null) { - return this.http.get(pathQuery); - } - } - - subDetailsResponseToServiceTypes(res: GetSubDetailsResponse): ServiceType[] { - if (res && res['service-subscriptions']) { - const serviceSubscriptions = res['service-subscriptions']['service-subscription']; - return serviceSubscriptions.map((subscription, index) => new ServiceType(String(index), subscription)) - } else { - return []; - } - } -} diff --git a/vid-webpack-master/src/app/services/msoService/mso.service.ts b/vid-webpack-master/src/app/services/msoService/mso.service.ts deleted file mode 100644 index 1402b50f7..000000000 --- a/vid-webpack-master/src/app/services/msoService/mso.service.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {Injectable} from "@angular/core"; -import {HttpClient} from "@angular/common/http"; -import {Observable} from "rxjs/Observable"; -import {Constants} from "../../shared/utils/constants"; - -@Injectable() -export class MsoService { - httpClient: HttpClient; - - constructor(http: HttpClient) { - this.httpClient = http; - } - - - public submitMsoTask(instanceFields): Observable { - let path = '../../asyncInstantiation/bulk'; - return this.httpClient.post(path, instanceFields); - } - public createVnf(requestDetails, serviceInstanceId): Observable { - let pathQuery: string = Constants.Path.MSO_CREATE_VNF_INSTANCE + serviceInstanceId; - - return this.httpClient.post( pathQuery, { - requestDetails : requestDetails - }); - } -} diff --git a/vid-webpack-master/src/app/services/sdc.service.ts b/vid-webpack-master/src/app/services/sdc.service.ts deleted file mode 100644 index d4eba260a..000000000 --- a/vid-webpack-master/src/app/services/sdc.service.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import 'rxjs/add/operator/map'; -import { Constants } from '../shared/utils/constants'; -import { VidConfiguration } from '../configuration/vid.configuration'; - -@Injectable() -export class SdcService { - - - constructor (private http: HttpClient) { - } - - public getServicesModels(): any { - let pathQuery: string = Constants.Path.SERVICES_DIST_STATUS_PATH + VidConfiguration.ASDC_MODEL_STATUS; - - if ( VidConfiguration.ASDC_MODEL_STATUS === Constants.Status.ALL) { - pathQuery = Constants.Path.SERVICES_PATH; - } - - return this.http.get(pathQuery); - } - - getService(uuid: string) { - return this.http.get(Constants.Path.SERVICES_PATH + uuid); - } - -} diff --git a/vid-webpack-master/src/app/services/service-planning.service.spec.ts b/vid-webpack-master/src/app/services/service-planning.service.spec.ts deleted file mode 100644 index 5d60e29f7..000000000 --- a/vid-webpack-master/src/app/services/service-planning.service.spec.ts +++ /dev/null @@ -1,467 +0,0 @@ -import {ServicePlanningService} from "./service-planning.service"; -import {ReflectiveInjector} from "@angular/core"; -import {NgRedux} from "@angular-redux/store"; -import {ServiceNodeTypes} from "../shared/models/ServiceNodeTypes"; - -export class MockAppStore { -} - -describe('Service planning service', () => { - let injector; - let service: ServicePlanningService; - - beforeEach(() => { - - let injector = ReflectiveInjector.resolveAndCreate([ - ServicePlanningService, - {provide: NgRedux, useClass: MockAppStore} - ]); - - service = injector.get(ServicePlanningService); - }); - - describe('#updateDynamicInputsVnfDataFromModel', () => { - it('get vfModule instance params', (done: DoneFn) => { - //get vfModule instance params - let dynamicInputs = service.updateDynamicInputsVnfDataFromModel(ServiceNodeTypes.VFmodule, generateVFModule()); - expect(dynamicInputs).toEqual([{ - id: '2017488_adiodvpe0_vnf_config_template_version', - type: 'string', - name: '2017488_adiodvpe0_vnf_config_template_version', - value: '17.2', - isRequired: true, - description: 'VPE Software Version' - }, { - id: '2017488_adiodvpe0_AIC_CLLI', - type: 'string', - name: '2017488_adiodvpe0_AIC_CLLI', - value: 'ATLMY8GA', - isRequired: true, - description: 'AIC Site CLLI' - }]); - - //get vfModule with no instance params should return empty array - dynamicInputs = service.updateDynamicInputsVnfDataFromModel(ServiceNodeTypes.VFmodule, generateVFModule2); - expect(dynamicInputs).toEqual([]); - - //get vf instance params should be undefined - dynamicInputs = service.updateDynamicInputsVnfDataFromModel(ServiceNodeTypes.VF, generateVNF()); - expect(dynamicInputs).toEqual([]); - done(); - }); - }); - - describe('#isUserProvidedNaming', () => { - it('get vfModule with generate ecompNaming should return userProvided false', (done: DoneFn) => { - //get vfModule with generate ecompNaming should return userProvided false - let isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VFmodule, generateVFModule(), generateVNF()); - expect(isUserProvidedNaming).toBeFalsy(); - - //get vfModule without generate ecompNaming should return userProvided true - isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VFmodule, generateVFModule(), generateVNF_ecompNamingFalse()); - expect(isUserProvidedNaming).toBeTruthy(); - - //get vnf with generate ecompNaming should return userProvided false - isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VF, generateVNF(), null); - expect(isUserProvidedNaming).toBeFalsy(); - - //get vnf without generate ecompNaming should return userProvided true - isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VF, generateVNF_ecompNamingFalse(), null); - expect(isUserProvidedNaming).toBeTruthy(); - done(); - }); - }); - - function generateVFModule() { - return { - 'uuid': '25284168-24bb-4698-8cb4-3f509146eca5', - 'invariantUuid': '7253ff5c-97f0-4b8b-937c-77aeb4d79aa1', - 'customizationUuid': 'f7e7c365-60cf-49a9-9ebf-a1aa11b9d401', - 'description': null, - 'name': '2017488AdiodVpe..ADIOD_vRE_BV..module-1', - 'version': '6', - 'modelCustomizationName': '2017488AdiodVpe..ADIOD_vRE_BV..module-1', - 'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0}, - 'commands': {}, - 'volumeGroupAllowed': true, - 'inputs': { - '2017488_adiodvpe0_vnf_config_template_version': { - 'type': 'string', - 'description': 'VPE Software Version', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': '17.2' - }, - '2017488_adiodvpe0_AIC_CLLI': { - 'type': 'string', - 'description': 'AIC Site CLLI', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'ATLMY8GA' - } - } - }; - } - - function generateVFModule2() { - return { - 'uuid': '0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a', - 'invariantUuid': 'eff8cc59-53a1-4101-aed7-8cf24ecf8339', - 'customizationUuid': '3cd946bb-50e0-40d8-96d3-c9023520b557', - 'description': null, - 'name': '2017488AdiodVpe..ADIOD_vPFE_BV..module-2', - 'version': '6', - 'modelCustomizationName': '2017488AdiodVpe..ADIOD_vPFE_BV..module-2', - 'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0}, - 'commands': {}, - 'volumeGroupAllowed': true, - 'inputs': {} - }; - } - - function generateVNF() { - return { - 'uuid': '0903e1c0-8e03-4936-b5c2-260653b96413', - 'invariantUuid': '00beb8f9-6d39-452f-816d-c709b9cbb87d', - 'description': 'Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM', - 'name': '2017-388_ADIOD-vPE', - 'version': '1.0', - 'customizationUuid': '280dec31-f16d-488b-9668-4aae55d6648a', - 'inputs': { - 'vnf_config_template_version': { - 'type': 'string', - 'description': 'VPE Software Version', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': '17.2' - }, - 'bandwidth_units': { - 'type': 'string', - 'description': 'Units of bandwidth', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'Gbps' - }, - 'bandwidth': { - 'type': 'string', - 'description': 'Requested VPE bandwidth', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': '10' - }, - 'AIC_CLLI': { - 'type': 'string', - 'description': 'AIC Site CLLI', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'ATLMY8GA' - }, - 'ASN': { - 'type': 'string', - 'description': 'AV/PE', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'AV_vPE' - }, - 'vnf_instance_name': { - 'type': 'string', - 'description': 'The hostname assigned to the vpe.', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'mtnj309me6' - } - }, - 'commands': { - 'vnf_config_template_version': { - 'displayName': 'vnf_config_template_version', - 'command': 'get_input', - 'inputName': '2017488_adiodvpe0_vnf_config_template_version' - }, - 'bandwidth_units': { - 'displayName': 'bandwidth_units', - 'command': 'get_input', - 'inputName': 'adiodvpe0_bandwidth_units' - }, - 'bandwidth': {'displayName': 'bandwidth', 'command': 'get_input', 'inputName': 'adiodvpe0_bandwidth'}, - 'AIC_CLLI': {'displayName': 'AIC_CLLI', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_AIC_CLLI'}, - 'ASN': {'displayName': 'ASN', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_ASN'}, - 'vnf_instance_name': { - 'displayName': 'vnf_instance_name', - 'command': 'get_input', - 'inputName': '2017488_adiodvpe0_vnf_instance_name' - } - }, - 'properties': { - 'vmxvre_retype': 'RE-VMX', - 'vnf_config_template_version': 'get_input:2017488_adiodvpe0_vnf_config_template_version', - 'sriov44_net_id': '48d399b3-11ee-48a8-94d2-f0ea94d6be8d', - 'int_ctl_net_id': '2f323477-6936-4d01-ac53-d849430281d9', - 'vmxvpfe_sriov41_0_port_mac': '00:11:22:EF:AC:DF', - 'int_ctl_net_name': 'VMX-INTXI', - 'vmx_int_ctl_prefix': '128.0.0.0', - 'sriov43_net_id': 'da349ca1-6de9-4548-be88-2d88e99bfef5', - 'sriov42_net_id': '760669ba-013d-4d9b-b0e7-4151fe2e6279', - 'sriov41_net_id': '25ad52d5-c165-40f8-b3b0-ddfc2373280a', - 'nf_type': 'vPE', - 'vmxvpfe_int_ctl_ip_1': '128.0.0.16', - 'is_AVPN_service': 'false', - 'vmx_RSG_name': 'vREXI-affinity', - 'vmx_int_ctl_forwarding': 'l2', - 'vmxvre_oam_ip_0': '10.40.123.5', - 'vmxvpfe_sriov44_0_port_mac': '00:11:22:EF:AC:DF', - 'vmxvpfe_sriov41_0_port_vlanstrip': 'false', - 'vmxvpfe_sriov42_0_port_vlanfilter': '4001', - 'vmxvpfe_sriov44_0_port_unknownunicastallow': 'true', - 'vmxvre_image_name_0': 'VRE-ENGINE_17.2-S2.1.qcow2', - 'vmxvre_instance': '0', - 'vmxvpfe_sriov43_0_port_mac': '00:11:22:EF:AC:DF', - 'vmxvre_flavor_name': 'ns.c1r16d32.v5', - 'vmxvpfe_volume_size_0': '40.0', - 'vmxvpfe_sriov43_0_port_vlanfilter': '4001', - 'nf_naming': '{ecomp_generated_naming=true}', - 'nf_naming_code': 'Navneet', - 'vmxvre_name_0': 'vREXI', - 'vmxvpfe_sriov42_0_port_vlanstrip': 'false', - 'vmxvpfe_volume_name_0': 'vPFEXI_FBVolume', - 'vmx_RSG_id': 'bd89a33c-13c3-4a04-8fde-1a57eb123141', - 'vmxvpfe_image_name_0': 'VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2', - 'vmxvpfe_sriov43_0_port_unknownunicastallow': 'true', - 'vmxvpfe_sriov44_0_port_unknownmulticastallow': 'true', - 'vmxvre_console': 'vidconsole', - 'vmxvpfe_sriov44_0_port_vlanfilter': '4001', - 'vmxvpfe_sriov42_0_port_mac': '00:11:22:EF:AC:DF', - 'vmxvpfe_volume_id_0': '47cede15-da2f-4397-a101-aa683220aff3', - 'vmxvpfe_sriov42_0_port_unknownmulticastallow': 'true', - 'vmxvpfe_sriov44_0_port_vlanstrip': 'false', - 'vf_module_id': '123', - 'nf_function': 'JAI', - 'vmxvpfe_sriov43_0_port_unknownmulticastallow': 'true', - 'vmxvre_int_ctl_ip_0': '128.0.0.1', - 'AIC_CLLI': 'get_input:2017488_adiodvpe0_AIC_CLLI', - 'vnf_name': 'mtnj309me6vre', - 'vmxvpfe_sriov41_0_port_unknownunicastallow': 'true', - 'vmxvre_volume_type_1': 'HITACHI', - 'vmxvpfe_sriov44_0_port_broadcastallow': 'true', - 'vmxvre_volume_type_0': 'HITACHI', - 'vmxvpfe_volume_type_0': 'HITACHI', - 'vmxvpfe_sriov43_0_port_broadcastallow': 'true', - 'bandwidth_units': 'get_input:adiodvpe0_bandwidth_units', - 'vnf_id': '123', - 'vmxvre_oam_prefix': '24', - 'availability_zone_0': 'mtpocfo-kvm-az01', - 'ASN': 'get_input:2017488_adiodvpe0_ASN', - 'vmxvre_chassis_i2cid': '161', - 'vmxvpfe_name_0': 'vPFEXI', - 'bandwidth': 'get_input:adiodvpe0_bandwidth', - 'availability_zone_max_count': '1', - 'vmxvre_volume_size_0': '45.0', - 'vmxvre_volume_size_1': '50.0', - 'vmxvpfe_sriov42_0_port_broadcastallow': 'true', - 'vmxvre_oam_gateway': '10.40.123.1', - 'vmxvre_volume_name_1': 'vREXI_FAVolume', - 'vmxvre_ore_present': '0', - 'vmxvre_volume_name_0': 'vREXI_FBVolume', - 'vmxvre_type': '0', - 'vnf_instance_name': 'get_input:2017488_adiodvpe0_vnf_instance_name', - 'vmxvpfe_sriov41_0_port_unknownmulticastallow': 'true', - 'oam_net_id': 'b95eeb1d-d55d-4827-abb4-8ebb94941429', - 'vmx_int_ctl_len': '24', - 'vmxvpfe_sriov43_0_port_vlanstrip': 'false', - 'vmxvpfe_sriov41_0_port_broadcastallow': 'true', - 'vmxvre_volume_id_1': '6e86797e-03cd-4fdc-ba72-2957119c746d', - 'vmxvpfe_sriov41_0_port_vlanfilter': '4001', - 'nf_role': 'Testing', - 'vmxvre_volume_id_0': 'f4eacb79-f687-4e9d-b760-21847c8bb15a', - 'vmxvpfe_sriov42_0_port_unknownunicastallow': 'true', - 'vmxvpfe_flavor_name': 'ns.c20r16d25.v5' - }, - 'type': 'VF', - 'modelCustomizationName': '2017-388_ADIOD-vPE 1', - 'vfModules': {}, - 'volumeGroups': {} - }; - } - - function generateVNF_ecompNamingFalse() { - return { - 'uuid': '0903e1c0-8e03-4936-b5c2-260653b96413', - 'invariantUuid': '00beb8f9-6d39-452f-816d-c709b9cbb87d', - 'description': 'Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM', - 'name': '2017-388_ADIOD-vPE', - 'version': '1.0', - 'customizationUuid': '280dec31-f16d-488b-9668-4aae55d6648a', - 'inputs': { - 'vnf_config_template_version': { - 'type': 'string', - 'description': 'VPE Software Version', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': '17.2' - }, - 'bandwidth_units': { - 'type': 'string', - 'description': 'Units of bandwidth', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'Gbps' - }, - 'bandwidth': { - 'type': 'string', - 'description': 'Requested VPE bandwidth', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': '10' - }, - 'AIC_CLLI': { - 'type': 'string', - 'description': 'AIC Site CLLI', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'ATLMY8GA' - }, - 'ASN': { - 'type': 'string', - 'description': 'AV/PE', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'AV_vPE' - }, - 'vnf_instance_name': { - 'type': 'string', - 'description': 'The hostname assigned to the vpe.', - 'entry_schema': null, - 'constraints': [], - 'required': true, - 'default': 'mtnj309me6' - } - }, - 'commands': { - 'vnf_config_template_version': { - 'displayName': 'vnf_config_template_version', - 'command': 'get_input', - 'inputName': '2017488_adiodvpe0_vnf_config_template_version' - }, - 'bandwidth_units': { - 'displayName': 'bandwidth_units', - 'command': 'get_input', - 'inputName': 'adiodvpe0_bandwidth_units' - }, - 'bandwidth': {'displayName': 'bandwidth', 'command': 'get_input', 'inputName': 'adiodvpe0_bandwidth'}, - 'AIC_CLLI': {'displayName': 'AIC_CLLI', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_AIC_CLLI'}, - 'ASN': {'displayName': 'ASN', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_ASN'}, - 'vnf_instance_name': { - 'displayName': 'vnf_instance_name', - 'command': 'get_input', - 'inputName': '2017488_adiodvpe0_vnf_instance_name' - } - }, - 'properties': { - 'ecomp_generated_naming': "false", - 'vmxvre_retype': 'RE-VMX', - 'vnf_config_template_version': 'get_input:2017488_adiodvpe0_vnf_config_template_version', - 'sriov44_net_id': '48d399b3-11ee-48a8-94d2-f0ea94d6be8d', - 'int_ctl_net_id': '2f323477-6936-4d01-ac53-d849430281d9', - 'vmxvpfe_sriov41_0_port_mac': '00:11:22:EF:AC:DF', - 'int_ctl_net_name': 'VMX-INTXI', - 'vmx_int_ctl_prefix': '128.0.0.0', - 'sriov43_net_id': 'da349ca1-6de9-4548-be88-2d88e99bfef5', - 'sriov42_net_id': '760669ba-013d-4d9b-b0e7-4151fe2e6279', - 'sriov41_net_id': '25ad52d5-c165-40f8-b3b0-ddfc2373280a', - 'nf_type': 'vPE', - 'vmxvpfe_int_ctl_ip_1': '128.0.0.16', - 'is_AVPN_service': 'false', - 'vmx_RSG_name': 'vREXI-affinity', - 'vmx_int_ctl_forwarding': 'l2', - 'vmxvre_oam_ip_0': '10.40.123.5', - 'vmxvpfe_sriov44_0_port_mac': '00:11:22:EF:AC:DF', - 'vmxvpfe_sriov41_0_port_vlanstrip': 'false', - 'vmxvpfe_sriov42_0_port_vlanfilter': '4001', - 'vmxvpfe_sriov44_0_port_unknownunicastallow': 'true', - 'vmxvre_image_name_0': 'VRE-ENGINE_17.2-S2.1.qcow2', - 'vmxvre_instance': '0', - 'vmxvpfe_sriov43_0_port_mac': '00:11:22:EF:AC:DF', - 'vmxvre_flavor_name': 'ns.c1r16d32.v5', - 'vmxvpfe_volume_size_0': '40.0', - 'vmxvpfe_sriov43_0_port_vlanfilter': '4001', - 'nf_naming': '{ecomp_generated_naming=false}', - 'nf_naming_code': 'Navneet', - 'vmxvre_name_0': 'vREXI', - 'vmxvpfe_sriov42_0_port_vlanstrip': 'false', - 'vmxvpfe_volume_name_0': 'vPFEXI_FBVolume', - 'vmx_RSG_id': 'bd89a33c-13c3-4a04-8fde-1a57eb123141', - 'vmxvpfe_image_name_0': 'VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2', - 'vmxvpfe_sriov43_0_port_unknownunicastallow': 'true', - 'vmxvpfe_sriov44_0_port_unknownmulticastallow': 'true', - 'vmxvre_console': 'vidconsole', - 'vmxvpfe_sriov44_0_port_vlanfilter': '4001', - 'vmxvpfe_sriov42_0_port_mac': '00:11:22:EF:AC:DF', - 'vmxvpfe_volume_id_0': '47cede15-da2f-4397-a101-aa683220aff3', - 'vmxvpfe_sriov42_0_port_unknownmulticastallow': 'true', - 'vmxvpfe_sriov44_0_port_vlanstrip': 'false', - 'vf_module_id': '123', - 'nf_function': 'JAI', - 'vmxvpfe_sriov43_0_port_unknownmulticastallow': 'true', - 'vmxvre_int_ctl_ip_0': '128.0.0.1', - 'AIC_CLLI': 'get_input:2017488_adiodvpe0_AIC_CLLI', - 'vnf_name': 'mtnj309me6vre', - 'vmxvpfe_sriov41_0_port_unknownunicastallow': 'true', - 'vmxvre_volume_type_1': 'HITACHI', - 'vmxvpfe_sriov44_0_port_broadcastallow': 'true', - 'vmxvre_volume_type_0': 'HITACHI', - 'vmxvpfe_volume_type_0': 'HITACHI', - 'vmxvpfe_sriov43_0_port_broadcastallow': 'true', - 'bandwidth_units': 'get_input:adiodvpe0_bandwidth_units', - 'vnf_id': '123', - 'vmxvre_oam_prefix': '24', - 'availability_zone_0': 'mtpocfo-kvm-az01', - 'ASN': 'get_input:2017488_adiodvpe0_ASN', - 'vmxvre_chassis_i2cid': '161', - 'vmxvpfe_name_0': 'vPFEXI', - 'bandwidth': 'get_input:adiodvpe0_bandwidth', - 'availability_zone_max_count': '1', - 'vmxvre_volume_size_0': '45.0', - 'vmxvre_volume_size_1': '50.0', - 'vmxvpfe_sriov42_0_port_broadcastallow': 'true', - 'vmxvre_oam_gateway': '10.40.123.1', - 'vmxvre_volume_name_1': 'vREXI_FAVolume', - 'vmxvre_ore_present': '0', - 'vmxvre_volume_name_0': 'vREXI_FBVolume', - 'vmxvre_type': '0', - 'vnf_instance_name': 'get_input:2017488_adiodvpe0_vnf_instance_name', - 'vmxvpfe_sriov41_0_port_unknownmulticastallow': 'true', - 'oam_net_id': 'b95eeb1d-d55d-4827-abb4-8ebb94941429', - 'vmx_int_ctl_len': '24', - 'vmxvpfe_sriov43_0_port_vlanstrip': 'false', - 'vmxvpfe_sriov41_0_port_broadcastallow': 'true', - 'vmxvre_volume_id_1': '6e86797e-03cd-4fdc-ba72-2957119c746d', - 'vmxvpfe_sriov41_0_port_vlanfilter': '4001', - 'nf_role': 'Testing', - 'vmxvre_volume_id_0': 'f4eacb79-f687-4e9d-b760-21847c8bb15a', - 'vmxvpfe_sriov42_0_port_unknownunicastallow': 'true', - 'vmxvpfe_flavor_name': 'ns.c20r16d25.v5' - }, - 'type': 'VF', - 'modelCustomizationName': '2017-388_ADIOD-vPE 1', - 'vfModules': {}, - 'volumeGroups': {} - }; - } - -}); - - - - diff --git a/vid-webpack-master/src/app/services/service-planning.service.ts b/vid-webpack-master/src/app/services/service-planning.service.ts deleted file mode 100644 index 75720c8a1..000000000 --- a/vid-webpack-master/src/app/services/service-planning.service.ts +++ /dev/null @@ -1,282 +0,0 @@ -import {Injectable} from '@angular/core'; -import {Constants} from "../shared/utils/constants"; -import {Utils} from "../utils/utils"; -import * as _ from 'lodash'; -import Parameter = Constants.Parameter; -import {ITreeNode} from "angular-tree-component/dist/defs/api"; -import {ServiceInstance} from "../shared/models/serviceInstance"; -import {VNFModel} from "../shared/models/vnfModel"; -import {ServiceNodeTypes} from "../shared/models/ServiceNodeTypes"; -import {VfModuleMap} from "../shared/models/vfModulesMap"; -import {VnfInstance} from "../shared/models/vnfInstance"; -import {VfModuleTreeNode} from "../shared/models/vfModuleTreeNode"; -import {VfModule} from "../shared/models/vfModule"; -import {VnfTreeNode} from "../shared/models/vnfTreeNode"; -import {NgRedux} from "@angular-redux/store"; -import {AppState} from "../store/reducers"; -import {InputType} from "../shared/models/inputTypes"; - - -@Injectable() -export class ServicePlanningService { - - modelDataTree: any[] = []; - drawingDataTree: any[] = []; - service: any = {name:'My Service'} ; - public requiredFields = { - VF: [InputType.LCP_REGION, InputType.TENANT, InputType.PLATFORM], - VFmodule: [] - }; - - constructor(private store: NgRedux) {} - - - public getServiceName() :string{ - return this.service.name; - } - - public getServiceInstance(serviceModelId): ServiceInstance { - return this.store.getState().service.serviceInstance[serviceModelId]; - } - - public getVnfInstance(serviceModelId, vnfModelName): VnfInstance { - return this.getServiceInstance(serviceModelId).vnfs[vnfModelName]; - } - - public getVfModuleMap(serviceModelId, vnfModelName, vfModuleModelName): VfModuleMap { - let vnfInstance = this.getVnfInstance(serviceModelId, vnfModelName); - return _.get(vnfInstance, ['vfModules', vfModuleModelName]); - } - - public convertServiceModelToTreeNodes(serviceModel) { - let _this = this; - - _.forOwn(serviceModel.vnfs, function(item, key) { - _this.addFirstLevelModel(key, item, item.type, serviceModel); - }); - - _.forOwn(serviceModel.configurations, function(item, key) { - _this.addFirstLevelModel(key, item, ServiceNodeTypes.Configuration, serviceModel); - }); - - _.forOwn(serviceModel.networks, function(network, key) { - _this.addFirstLevelModel(key, network, ServiceNodeTypes.Network, serviceModel); - }); - - return this.modelDataTree; - } - - private addFirstLevelModel(key, value, valueType, serviceModel) { - - let node = this.convertItemToTreeNode(key, value, valueType, null, false); - let vnfInstance = this.getVnfInstance(serviceModel.service.uuid, key); - if(value.vfModules) { - node.children = Object.keys(value.vfModules).map((vmKey) => - this.convertItemToTreeNode(vmKey, value.vfModules[vmKey], ServiceNodeTypes.VFmodule, value, !vnfInstance)); - } - this.modelDataTree.push(node); - } - - private convertItemToTreeNode(key, value, valueType, parentModel , disabled) { - - return { - id: value.uuid, - name: key, - tooltip: valueType, - type: valueType, - count: value.count || 0, - max: value.max || 1, - children: [], - disabled: disabled, - dynamicInputs: this.updateDynamicInputsVnfDataFromModel(valueType, value), - userProvidedNaming: this.isUserProvidedNaming(valueType, value, parentModel) - } - } - - public convertServiceInstanceToTreeData(serviceInstance: ServiceInstance, modelId: string): any { - let drawingBoardData = []; - let _this = this; - _.forOwn(serviceInstance.vnfs, (vnfInstance, vnfModelName) => { - let vnfModel: VNFModel = _this.store.getState().service.serviceHierarchy[modelId].vnfs[vnfModelName]; - let vnfNode = new VnfTreeNode(vnfInstance, vnfModel); - - let vfModuleNodes = []; - _.forOwn(vnfInstance.vfModules, (vfModuleMap, vfModuleModelName) => { - _.forOwn(vfModuleMap, (vfModuleInstance, vfModuleInstsanceName) => { - let vfModule: VfModule = _this.store.getState().service.serviceHierarchy[modelId].vnfs[vnfModelName].vfModules[vfModuleModelName]; - let vfModuleNode: VfModuleTreeNode = new VfModuleTreeNode(vfModuleInstance, vfModule, vfModuleModelName); - vfModuleNodes.push(vfModuleNode); - }); - }); - vnfNode.children = vfModuleNodes; - drawingBoardData.push(vnfNode); - }); - - return drawingBoardData; - } - - public getArbitraryInputs(inputs) { - let parameter; - let parameterList = []; - for (let key in inputs) { - parameter = { - id : key, - type : Parameter.STRING, - name : key, - value : inputs[key][Parameter.DEFAULT], - isRequired : inputs[key][Parameter.REQUIRED], - description : inputs[key][Parameter.DESCRIPTION] - }; - switch (inputs[key][Parameter.TYPE]) { - case Parameter.INTEGER: - parameter.type = Parameter.NUMBER; - break; - case Parameter.BOOLEAN: - parameter.type = Parameter.BOOLEAN; - break; - case Parameter.RANGE: - break; - case Parameter.LIST: - parameter.type = Parameter.LIST; - break; - case Parameter.MAP: - parameter.type = Parameter.MAP; - break; - } - if ( Utils.hasContents(inputs[key][Parameter.CONSTRAINTS]) - && ( inputs[key][Parameter.CONSTRAINTS].length > 0 ) ) { - let constraintsArray = inputs[key][Parameter.CONSTRAINTS]; - this.addConstraintParameters (parameterList, constraintsArray, key, inputs, parameter); - } - else { - - parameterList.push(parameter); - } - } - return parameterList; - } - - private addConstraintParameters(parameterList, constraintsArray, key, inputs, parameter) { - // If there are constraints and the operator is "valid_values", - // use a select parameter type. - let i:number = constraintsArray.length; - let parameterPushed: boolean = false; - if ( i > 0 ) { - while ( (i--) && (!parameterPushed) ) { - let keys = Object.keys(constraintsArray[i]); - for ( let operator in keys ) { - switch (keys[operator]) { - case Parameter.VALID_VALUES: - let j: number = constraintsArray[i][Parameter.VALID_VALUES].length; - if ( j > 0 ) { - let oList = []; - let option; - while (j--) { - option = { - name: constraintsArray[i][Parameter.VALID_VALUES][j], - isDefault: false - }; - if ( (Utils.hasContents (inputs[key][Parameter.DEFAULT]) ) - && (inputs[key][Parameter.DEFAULT] === constraintsArray[i][Parameter.VALID_VALUES][j] ) ) { - option = { - name: constraintsArray[i][Parameter.VALID_VALUES][j], - isDefault: true - } - } - oList.push(option); - } - parameter.type = Parameter.SELECT; - parameter.optionList = oList; - parameterList.push(parameter); - parameterPushed = true; - } - break; - - case Parameter.EQUAL: - if ( constraintsArray[i][Parameter.EQUAL] != null ) { - //override parameter type - parameter.type = Parameter.STRING; - parameter.isReadOnly = true; - parameter.value = constraintsArray[i][Parameter.EQUAL]; - parameterList.push(parameter); - parameterPushed = true; - } - break; - - case Parameter.LENGTH: - if ( constraintsArray[i][Parameter.LENGTH] != null ) { - parameter.minLength = constraintsArray[i][Parameter.LENGTH]; - parameter.maxLength = constraintsArray[i][Parameter.LENGTH]; - parameterList.push(parameter); - parameterPushed = true; - } - break; - case Parameter.MAX_LENGTH: - if ( constraintsArray[i][Parameter.MAX_LENGTH] != null ) { - parameter.maxLength = constraintsArray[i][Parameter.MAX_LENGTH]; - parameterList.push(parameter); - parameterPushed = true; - } - break; - case Parameter.MIN_LENGTH: - if ( constraintsArray[i][Parameter.MIN_LENGTH] != null ) { - parameter.minLength = constraintsArray[i][Parameter.MIN_LENGTH]; - parameterList.push(parameter); - parameterPushed = true; - } - break; - case Parameter.IN_RANGE: - if ( constraintsArray[i][Parameter.IN_RANGE] != null ) { - if (constraintsArray[i][Parameter.IN_RANGE].length > 1 ) { - parameter.min = constraintsArray[i][Parameter.IN_RANGE][0]; - parameter.max = constraintsArray[i][Parameter.IN_RANGE][1]; - parameter.type = Parameter.NUMBER; - parameter.value = inputs[key][Parameter.DEFAULT]; - parameterList.push(parameter); - parameterPushed = true; - } - } - break; - case Parameter.GREATER_THAN: - if ( constraintsArray[i][Parameter.GREATER_THAN] != null ) { - parameter.type = Parameter.NUMBER; - parameter.min = constraintsArray[i][Parameter.GREATER_THAN]; - parameter.value = inputs[key][Parameter.DEFAULT]; - parameterList.push(parameter); - parameterPushed = true; - } - break; - }//switch - }//for - }//while - }//if - }; - - public static isVfModule(node:ITreeNode): boolean { - return node.data.type=='VFmodule'; - } - - public static isVnf(node:ITreeNode): boolean { - return node.data.type == ServiceNodeTypes.VF; - } - - updateDynamicInputsVnfDataFromModel(modelType: string, model: any): Array { - let displayInputs; - if (modelType === ServiceNodeTypes.VFmodule) { - displayInputs = model.inputs; - } - return _.isEmpty(displayInputs) ? [] : this.getArbitraryInputs(displayInputs); - } - - isUserProvidedNaming(type: string, nodeModel: any, parentModel: any) : boolean { - let model; - if (type === ServiceNodeTypes.VFmodule) { - model = parentModel; - } - else { - model = nodeModel; - } - const ecompGeneratedNaming = model.properties.ecomp_generated_naming; - return ecompGeneratedNaming !== undefined && ecompGeneratedNaming === "false"; - } -} diff --git a/vid-webpack-master/src/app/shared/api.service.ts b/vid-webpack-master/src/app/shared/api.service.ts deleted file mode 100644 index a69d91ea4..000000000 --- a/vid-webpack-master/src/app/shared/api.service.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable() -export class ApiService { - title = 'Angular 2'; -} diff --git a/vid-webpack-master/src/app/instantiationStatus/auditInfoModal/auditInfoModal.component.html b/vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.html similarity index 68% rename from vid-webpack-master/src/app/instantiationStatus/auditInfoModal/auditInfoModal.component.html rename to vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.html index 9386af347..1dad32376 100644 --- a/vid-webpack-master/src/app/instantiationStatus/auditInfoModal/auditInfoModal.component.html +++ b/vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.html @@ -8,14 +8,14 @@