You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by sa...@apache.org on 2019/03/27 16:58:29 UTC
[metron] branch master updated: METRON-2023 [UI] Covering Grok
Parser Creation with Cypress tests (tiborm via sardell) closes
apache/metron#1364
This is an automated email from the ASF dual-hosted git repository.
sardell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metron.git
The following commit(s) were added to refs/heads/master by this push:
new 2f1af5c METRON-2023 [UI] Covering Grok Parser Creation with Cypress tests (tiborm via sardell) closes apache/metron#1364
2f1af5c is described below
commit 2f1af5cc50ba0e5e940885a1eaf5096c40a49072
Author: tiborm <ti...@gmail.com>
AuthorDate: Wed Mar 27 17:57:57 2019 +0100
METRON-2023 [UI] Covering Grok Parser Creation with Cypress tests (tiborm via sardell) closes apache/metron#1364
---
.../metron-alerts/alerts_ui_cypress.yml | 23 -
metron-interface/metron-alerts/package-lock.json | 709 ++++++++--------
metron-interface/metron-alerts/package.json | 16 +-
metron-interface/metron-alerts/pom.xml | 14 +-
metron-interface/metron-config/cypress.json | 9 +
.../metron-config/cypress/fixtures/config.json | 351 ++++++++
.../config-list-available.json | 19 +
.../cypress/integration/grok-parser.spec.js | 85 ++
.../metron-config/cypress/support/commands.js | 30 +
.../metron-config/cypress/support/index.js | 18 +
metron-interface/metron-config/package-lock.json | 929 ++++++++++++++++++++-
metron-interface/metron-config/package.json | 7 +-
metron-interface/metron-config/pom.xml | 14 +-
.../sensors/sensor-grok/sensor-grok.component.html | 6 +-
.../sensor-parser-config.component.html | 10 +-
.../sensor-parser-list.component.html | 2 +-
.../shared/ace-editor/ace-editor.component.html | 2 +-
.../shared/sample-data/sample-data.component.html | 2 +-
18 files changed, 1802 insertions(+), 444 deletions(-)
diff --git a/metron-interface/metron-alerts/alerts_ui_cypress.yml b/metron-interface/metron-alerts/alerts_ui_cypress.yml
deleted file mode 100644
index ddf663a..0000000
--- a/metron-interface/metron-alerts/alerts_ui_cypress.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-port: 4200
-
-rest:
- host: localhost
- port: 4200
-
-dirPath: dist
\ No newline at end of file
diff --git a/metron-interface/metron-alerts/package-lock.json b/metron-interface/metron-alerts/package-lock.json
index 8ce6443..b167d07 100644
--- a/metron-interface/metron-alerts/package-lock.json
+++ b/metron-interface/metron-alerts/package-lock.json
@@ -3554,9 +3554,9 @@
}
},
"@cypress/xvfb": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz",
- "integrity": "sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
"dev": true,
"requires": {
"debug": "^3.1.0",
@@ -3564,9 +3564,9 @@
},
"dependencies": {
"debug": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz",
- "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==",
+ "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"
@@ -5470,18 +5470,6 @@
"integrity": "sha1-1YSBOWBgdUDdsgLeiz4ilQTUXP8=",
"dev": true
},
- "@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/bootstrap": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-4.1.2.tgz",
@@ -5491,22 +5479,6 @@
"popper.js": "^1.14.1"
}
},
- "@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/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/es6-promise": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/@types/es6-promise/-/es6-promise-0.0.33.tgz",
@@ -5524,24 +5496,6 @@
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.6.tgz",
"integrity": "sha512-403D4wN95Mtzt2EoQHARf5oe/jEPhzBOBNrunk+ydQGW8WmkQ/E8rViRAEB1qEt/vssfGfNVD6ujP4FVeegrLg=="
},
- "@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
- },
- "@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/moment": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@types/moment/-/moment-2.13.0.tgz",
@@ -5572,22 +5526,6 @@
"integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
"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==",
- "dev": true,
- "requires": {
- "@types/chai": "*",
- "@types/sinon": "*"
- }
- },
"@webassemblyjs/ast": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz",
@@ -6197,12 +6135,6 @@
"postcss-value-parser": "^3.2.3"
}
},
- "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.6.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
@@ -7362,13 +7294,10 @@
"dev": true
},
"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"
- }
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+ "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
+ "dev": true
},
"commondir": {
"version": "1.0.1",
@@ -7841,59 +7770,43 @@
"dev": true
},
"cypress": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.1.0.tgz",
- "integrity": "sha512-UqLbXgHvM8Y6Y+roHrepZMWcyMN5u4KcjpTbJTZi0d5O2Prvtqmnpoky7a4C65q4oRQXeSc6cBZUhxJkhU4pbQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.2.0.tgz",
+ "integrity": "sha512-PN0wz6x634QyNL56/voTzJoeScDfwtecvSfFTHfv5MkHuECVSR4VQcEZTvYtKWln3CMBMUkWbBKPIwwu2+a/kw==",
"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",
+ "@cypress/xvfb": "1.2.4",
"bluebird": "3.5.0",
"cachedir": "1.3.0",
- "chalk": "2.4.1",
+ "chalk": "2.4.2",
"check-more-types": "2.24.0",
- "commander": "2.11.0",
- "common-tags": "1.4.0",
+ "commander": "2.15.1",
+ "common-tags": "1.8.0",
"debug": "3.1.0",
"execa": "0.10.0",
"executable": "4.1.1",
- "extract-zip": "1.6.6",
+ "extract-zip": "1.6.7",
"fs-extra": "4.0.1",
"getos": "3.1.0",
- "glob": "7.1.2",
- "is-ci": "1.0.10",
+ "glob": "7.1.3",
+ "is-ci": "1.2.1",
"is-installed-globally": "0.1.0",
"lazy-ass": "1.6.0",
"listr": "0.12.0",
- "lodash": "4.17.10",
+ "lodash": "4.17.11",
"log-symbols": "2.2.0",
"minimist": "1.2.0",
- "progress": "1.1.8",
+ "moment": "2.24.0",
"ramda": "0.24.1",
- "request": "2.87.0",
- "request-progress": "0.3.1",
- "supports-color": "5.1.0",
- "tmp": "0.0.31",
+ "request": "2.88.0",
+ "request-progress": "0.4.0",
+ "supports-color": "5.5.0",
+ "tmp": "0.0.33",
"url": "0.11.0",
- "yauzl": "2.8.0"
+ "yauzl": "2.10.0"
},
"dependencies": {
- "@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
- },
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
@@ -7910,57 +7823,22 @@
"dev": true
},
"chalk": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "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"
- },
- "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==",
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
"dev": true
},
- "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"
- }
- },
- "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",
@@ -7970,51 +7848,27 @@
"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==",
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
"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"
+ "pend": "~1.2.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=",
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"requires": {
- "concat-stream": "1.6.0",
- "debug": "2.6.9",
- "mkdirp": "0.5.0",
- "yauzl": "2.4.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"
- }
- },
- "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"
- }
- }
+ "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-flag": {
@@ -8023,115 +7877,41 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"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
+ },
"minimist": {
"version": "1.2.0",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
- "mkdirp": {
- "version": "0.5.0",
- "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
- "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- }
- }
- },
- "progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
- "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"
- }
- },
- "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.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
- "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
"dev": true
},
"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
- }
- }
- },
- "tmp": {
- "version": "0.0.31",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
- "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
- "os-tmpdir": "~1.0.1"
+ "has-flag": "^3.0.0"
}
},
- "uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
- "dev": true
- },
"yauzl": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz",
- "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
"dev": true,
"requires": {
"buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.0.1"
+ "fd-slicer": "~1.1.0"
}
}
}
@@ -8155,9 +7935,9 @@
}
},
"date-fns": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
- "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
+ "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-format": {
@@ -8501,6 +8281,12 @@
"crossvent": "1.5.4"
}
},
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
"duplexify": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
@@ -8866,6 +8652,21 @@
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
"dev": true
},
+ "event-stream": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
+ "dev": true,
+ "requires": {
+ "duplexer": "~0.1.1",
+ "from": "~0",
+ "map-stream": "~0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.3",
+ "stream-combiner": "~0.0.4",
+ "through": "~2.3.1"
+ }
+ },
"eventemitter3": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
@@ -9509,28 +9310,6 @@
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"dev": true
},
- "form-data": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
- "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
- "dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "1.0.6",
- "mime-types": "^2.1.12"
- },
- "dependencies": {
- "combined-stream": {
- "version": "1.0.6",
- "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
- "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
- "dev": true,
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- }
- }
- },
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -9552,6 +9331,12 @@
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"dev": true
},
+ "from": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
+ "dev": true
+ },
"from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@@ -10419,36 +10204,6 @@
}
}
},
- "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"
- },
- "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"
- }
- }
- }
- },
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -10605,6 +10360,12 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
+ "hoek": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz",
+ "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==",
+ "dev": true
+ },
"hosted-git-info": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz",
@@ -11069,17 +10830,6 @@
}
}
},
- "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"
- }
- },
"https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -11366,12 +11116,12 @@
"dev": true
},
"is-ci": {
- "version": "1.0.10",
- "resolved": "http://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
- "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
"dev": true,
"requires": {
- "ci-info": "^1.0.0"
+ "ci-info": "^1.5.0"
}
},
"is-data-descriptor": {
@@ -11602,6 +11352,23 @@
"buffer-alloc": "^1.2.0"
}
},
+ "isemail": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
+ "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
+ "dev": true,
+ "requires": {
+ "punycode": "2.x.x"
+ },
+ "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
+ }
+ }
+ },
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -11905,6 +11672,17 @@
"colors": "1.1.2"
}
},
+ "joi": {
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz",
+ "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==",
+ "dev": true,
+ "requires": {
+ "hoek": "5.x.x",
+ "isemail": "3.x.x",
+ "topo": "3.x.x"
+ }
+ },
"jquery": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
@@ -13735,6 +13513,12 @@
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
"dev": true
},
+ "map-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
+ "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
+ "dev": true
+ },
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
@@ -14129,6 +13913,12 @@
"lower-case": "^1.1.1"
}
},
+ "node-eta": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.1.1.tgz",
+ "integrity": "sha1-QGYQmzk3HHYccrfr2pqeoKXeEh8=",
+ "dev": true
+ },
"node-forge": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
@@ -14828,7 +14618,7 @@
},
"onetime": {
"version": "1.1.0",
- "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true
},
@@ -14875,7 +14665,7 @@
},
"ora": {
"version": "0.2.3",
- "resolved": "http://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
"integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
"dev": true,
"requires": {
@@ -15136,6 +14926,15 @@
"pinkie-promise": "^2.0.0"
}
},
+ "pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "dev": true,
+ "requires": {
+ "through": "~2.3"
+ }
+ },
"pbkdf2": {
"version": "3.0.16",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
@@ -15154,12 +14953,6 @@
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
},
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
- "dev": true
- },
"pidtree": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
@@ -15619,6 +15412,15 @@
"integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
"dev": true
},
+ "ps-tree": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
+ "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
+ "dev": true,
+ "requires": {
+ "event-stream": "=3.3.4"
+ }
+ },
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -16187,12 +15989,13 @@
}
},
"request-progress": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz",
- "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.4.0.tgz",
+ "integrity": "sha1-wZVOOQhqqFJpxWYLzuAUKmpw1+c=",
"dev": true,
"requires": {
- "throttleit": "~0.0.2"
+ "node-eta": "^0.1.1",
+ "throttleit": "^0.0.2"
}
},
"require-directory": {
@@ -16314,6 +16117,12 @@
"aproba": "^1.1.1"
}
},
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
+ "dev": true
+ },
"rxjs": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.0.tgz",
@@ -17198,6 +17007,15 @@
}
}
},
+ "split": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
+ "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -17267,6 +17085,97 @@
}
}
},
+ "start-server-and-test": {
+ "version": "1.7.12",
+ "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.7.12.tgz",
+ "integrity": "sha512-ArW/prmdjQ6fwK4IQwVS1drKMZJ9hqK4ZdDh5k9qc+LZfFReYmwr4JjEvJ0lgLtTGQyJJr7xIWqXRKMsyxctvA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "3.5.3",
+ "check-more-types": "2.24.0",
+ "debug": "4.1.1",
+ "execa": "0.11.0",
+ "lazy-ass": "1.6.0",
+ "ps-tree": "1.2.0",
+ "wait-on": "3.2.0"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
+ "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==",
+ "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": "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": "0.11.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.11.0.tgz",
+ "integrity": "sha512-k5AR22vCt1DcfeiRixW46U5tMLtBg44ssdJM9PiXw3D8Bn5qyxFCSnKY/eR22y+ctFDGPqafpaXg2G4Emyua4A==",
+ "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"
+ }
+ },
+ "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
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+ "dev": true
+ }
+ }
+ },
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@@ -17322,6 +17231,15 @@
"readable-stream": "^2.0.2"
}
},
+ "stream-combiner": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+ "dev": true,
+ "requires": {
+ "duplexer": "~0.1.1"
+ }
+ },
"stream-each": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
@@ -17748,21 +17666,29 @@
}
}
},
+ "topo": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz",
+ "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==",
+ "dev": true,
+ "requires": {
+ "hoek": "6.x.x"
+ },
+ "dependencies": {
+ "hoek": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.2.tgz",
+ "integrity": "sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q==",
+ "dev": true
+ }
+ }
+ },
"toposort": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
"integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
"dev": true
},
- "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"
- }
- },
"tree-kill": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
@@ -18369,6 +18295,33 @@
"integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
"dev": true
},
+ "wait-on": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.2.0.tgz",
+ "integrity": "sha512-QUGNKlKLDyY6W/qHdxaRlXUAgLPe+3mLL/tRByHpRNcHs/c7dZXbu+OnJWGNux6tU1WFh/Z8aEwvbuzSAu79Zg==",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.5.7",
+ "joi": "^13.0.0",
+ "minimist": "^1.2.0",
+ "request": "^2.88.0",
+ "rx": "^4.1.0"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
+ "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
+ "dev": true
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
"watchpack": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
diff --git a/metron-interface/metron-alerts/package.json b/metron-interface/metron-alerts/package.json
index 4b21386..b448c4b 100644
--- a/metron-interface/metron-alerts/package.json
+++ b/metron-interface/metron-alerts/package.json
@@ -2,19 +2,18 @@
"name": "metron-alerts",
"version": "0.7.1",
"license": "Apache-2.0",
- "angular-cli": {},
"scripts": {
"build": "./node_modules/@angular/cli/bin/ng build --prod",
"start": "ng serve --aot",
+ "start:prod": "ng serve --prod",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test --browsers=Chrome",
- "testCI": "ng test --watch=false --browsers=ChromeHeadless && npm run cypress:ci",
- "pree2e": "webdriver-manager update",
- "e2e": "protractor-flake --protractor-path=./node_modules/.bin/protractor --max-attempts=3 -- ./protractor.conf.js",
- "cypress:run": "cypress run",
+ "test:ci": "ng test --watch=false --browsers=ChromeHeadless",
+ "cypress": "cypress run",
"cypress:open": "cypress open",
- "cypress:ci": "ng build --prod && run-p --race start:ci cypress:run",
- "start:ci": "node ./scripts/alerts-server.js -c alerts_ui_cypress.yml"
+ "cypress:ci": "start-server-and-test start:prod http-get://localhost:4200 cypress",
+ "pree2e": "webdriver-manager update",
+ "e2e": "protractor-flake --protractor-path=./node_modules/.bin/protractor --max-attempts=3 -- ./protractor.conf.js"
},
"private": true,
"dependencies": {
@@ -57,7 +56,7 @@
"@types/pikaday-time": "^1.4.2",
"codelyzer": "^4.0.1",
"compression": "^1.7.3",
- "cypress": "^3.1.0",
+ "cypress": "^3.2.0",
"express": "^4.16.3",
"http-proxy-middleware": "^0.18.0",
"jasmine-core": "~2.5.2",
@@ -77,6 +76,7 @@
"serve-favicon": "^2.5.0",
"serve-static": "^1.13.2",
"ssh2": "^0.5.5",
+ "start-server-and-test": "^1.7.12",
"tslint": "~5.0.0",
"typescript": "~2.9.2",
"yamljs": "^0.3.0"
diff --git a/metron-interface/metron-alerts/pom.xml b/metron-interface/metron-alerts/pom.xml
index a0644d7..40a36b4 100644
--- a/metron-interface/metron-alerts/pom.xml
+++ b/metron-interface/metron-alerts/pom.xml
@@ -72,12 +72,22 @@
</execution>
<execution>
<phase>test</phase>
- <id>npm testCI</id>
+ <id>npm test:ci</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
- <arguments>run testCI</arguments>
+ <arguments>run test:ci</arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <phase>test</phase>
+ <id>npm cypress:ci</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <configuration>
+ <arguments>run cypress:ci</arguments>
</configuration>
</execution>
</executions>
diff --git a/metron-interface/metron-config/cypress.json b/metron-interface/metron-config/cypress.json
new file mode 100644
index 0000000..19e5cf9
--- /dev/null
+++ b/metron-interface/metron-config/cypress.json
@@ -0,0 +1,9 @@
+{
+ "viewportWidth": 1435,
+ "viewportHeight": 850,
+ "video": false,
+ "pluginsFile": false,
+ "baseUrl": "http://localhost:4200",
+ "defaultCommandTimeout": 30000,
+ "requestTimeout": 30000
+}
\ No newline at end of file
diff --git a/metron-interface/metron-config/cypress/fixtures/config.json b/metron-interface/metron-config/cypress/fixtures/config.json
new file mode 100644
index 0000000..eb1b719
--- /dev/null
+++ b/metron-interface/metron-config/cypress/fixtures/config.json
@@ -0,0 +1,351 @@
+{
+ "websphere": {
+ "parserClassName": "org.apache.metron.parsers.websphere.GrokWebSphereParser",
+ "filterClassName": null,
+ "sensorTopic": "websphere",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {
+ "grokPath": "/patterns/websphere",
+ "patternLabel": "WEBSPHERE",
+ "timestampField": "timestamp_string",
+ "dateFormat": "yyyy MMM dd HH:mm:ss"
+ },
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "syslog5424": {
+ "parserClassName": "org.apache.metron.parsers.syslog.Syslog5424Parser",
+ "filterClassName": null,
+ "sensorTopic": "syslog5424",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {
+ "nilPolicy": "DASH"
+ },
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "jsonMap": {
+ "parserClassName": "org.apache.metron.parsers.json.JSONMapParser",
+ "filterClassName": null,
+ "sensorTopic": "jsonMap",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {},
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "syslog3164": {
+ "parserClassName": "org.apache.metron.parsers.syslog.Syslog3164Parser",
+ "filterClassName": null,
+ "sensorTopic": "syslog3164",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {},
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "jsonMapQuery": {
+ "parserClassName": "org.apache.metron.parsers.json.JSONMapParser",
+ "filterClassName": null,
+ "sensorTopic": "jsonMapQuery",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {
+ "jsonpQuery": "$.foo"
+ },
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "squid": {
+ "parserClassName": "org.apache.metron.parsers.GrokParser",
+ "filterClassName": null,
+ "sensorTopic": "squid",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {
+ "grokPath": "/patterns/squid",
+ "patternLabel": "SQUID_DELIMITED",
+ "timestampField": "timestamp"
+ },
+ "fieldTransformations": [
+ {
+ "input": [],
+ "output": [
+ "full_hostname",
+ "domain_without_subdomains"
+ ],
+ "transformation": "STELLAR",
+ "config": {
+ "full_hostname": "URL_TO_HOST(url)",
+ "domain_without_subdomains": "DOMAIN_REMOVE_SUBDOMAINS(full_hostname)"
+ }
+ }
+ ],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "jsonMapWrappedQuery": {
+ "parserClassName": "org.apache.metron.parsers.json.JSONMapParser",
+ "filterClassName": null,
+ "sensorTopic": "jsonMapWrappedQuery",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {
+ "jsonpQuery": "$.foo",
+ "wrapInEntityArray": "true",
+ "wrapEntityName": "foo"
+ },
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "snort": {
+ "parserClassName": "org.apache.metron.parsers.snort.BasicSnortParser",
+ "filterClassName": null,
+ "sensorTopic": "snort",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {},
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "bro": {
+ "parserClassName": "org.apache.metron.parsers.bro.BasicBroParser",
+ "filterClassName": null,
+ "sensorTopic": "bro",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {},
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "asa": {
+ "parserClassName": "org.apache.metron.parsers.asa.BasicAsaParser",
+ "filterClassName": null,
+ "sensorTopic": "asa",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {
+ "deviceTimeZone": "UTC"
+ },
+ "fieldTransformations": [],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ },
+ "yaf": {
+ "parserClassName": "org.apache.metron.parsers.GrokParser",
+ "filterClassName": null,
+ "sensorTopic": "yaf",
+ "outputTopic": null,
+ "errorTopic": null,
+ "writerClassName": null,
+ "errorWriterClassName": null,
+ "readMetadata": false,
+ "mergeMetadata": false,
+ "numWorkers": null,
+ "numAckers": null,
+ "spoutParallelism": 1,
+ "spoutNumTasks": 1,
+ "parserParallelism": 1,
+ "parserNumTasks": 1,
+ "errorWriterParallelism": 1,
+ "errorWriterNumTasks": 1,
+ "spoutConfig": {},
+ "securityProtocol": null,
+ "stormConfig": {},
+ "parserConfig": {
+ "grokPath": "/patterns/yaf",
+ "patternLabel": "YAF_DELIMITED",
+ "timestampField": "start_time",
+ "timeFields": [
+ "start_time",
+ "end_time"
+ ],
+ "dateFormat": "yyyy-MM-dd HH:mm:ss.S"
+ },
+ "fieldTransformations": [
+ {
+ "input": [
+ "protocol"
+ ],
+ "output": [
+ "protocol"
+ ],
+ "transformation": "IP_PROTOCOL",
+ "config": {}
+ }
+ ],
+ "cacheConfig": {},
+ "rawMessageStrategy": "DEFAULT",
+ "rawMessageStrategyConfig": {}
+ }
+}
\ No newline at end of file
diff --git a/metron-interface/metron-config/cypress/fixtures/sensor-config-single-parser/config-list-available.json b/metron-interface/metron-config/cypress/fixtures/sensor-config-single-parser/config-list-available.json
new file mode 100644
index 0000000..c6b8588
--- /dev/null
+++ b/metron-interface/metron-config/cypress/fixtures/sensor-config-single-parser/config-list-available.json
@@ -0,0 +1,19 @@
+{
+ "Grok": "org.apache.metron.parsers.GrokParser",
+ "CEF": "org.apache.metron.parsers.cef.CEFParser",
+ "Lancope": "org.apache.metron.parsers.lancope.BasicLancopeParser",
+ "Syslog5424": "org.apache.metron.parsers.syslog.Syslog5424Parser",
+ "CSV": "org.apache.metron.parsers.csv.CSVParser",
+ "PaloAltoFirewall": "org.apache.metron.parsers.paloalto.BasicPaloAltoFirewallParser",
+ "Logstash": "org.apache.metron.parsers.logstash.BasicLogstashParser",
+ "Sourcefire": "org.apache.metron.parsers.sourcefire.BasicSourcefireParser",
+ "FireEye": "org.apache.metron.parsers.fireeye.BasicFireEyeParser",
+ "Asa": "org.apache.metron.parsers.asa.BasicAsaParser",
+ "Syslog3164": "org.apache.metron.parsers.syslog.Syslog3164Parser",
+ "BaseSyslog": "org.apache.metron.parsers.syslog.BaseSyslogParser",
+ "Snort": "org.apache.metron.parsers.snort.BasicSnortParser",
+ "JSONMap": "org.apache.metron.parsers.json.JSONMapParser",
+ "Ise": "org.apache.metron.parsers.ise.BasicIseParser",
+ "GrokWebSphere": "org.apache.metron.parsers.websphere.GrokWebSphereParser",
+ "Bro": "org.apache.metron.parsers.bro.BasicBroParser"
+}
\ No newline at end of file
diff --git a/metron-interface/metron-config/cypress/integration/grok-parser.spec.js b/metron-interface/metron-config/cypress/integration/grok-parser.spec.js
new file mode 100644
index 0000000..c021b55
--- /dev/null
+++ b/metron-interface/metron-config/cypress/integration/grok-parser.spec.js
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+describe('Grok Parser Creation', function() {
+
+ beforeEach(function () {
+ cy.server()
+ .route('GET', '/api/v1/sensor/parser/config', 'fixture:config.json').as('config')
+ .route('GET', '/api/v1/sensor/parser/config/list/available', 'fixture:sensor-config-single-parser/config-list-available.json')
+ .route({
+ method: 'GET',
+ url: '/api/v1/kafka/topic/test-topic',
+ status: 200,
+ response: {
+ name: "bro",
+ numPartitions: 1,
+ properties: {},
+ replicationFactor: 1,
+ }
+ })
+ .route({
+ method: 'GET',
+ url: '/api/v1/kafka/topic/test-topic/sample',
+ status: 200,
+ response: '"it has length"'
+ }).as('sample')
+ .route({
+ method: 'POST',
+ url: '/api/v1/sensor/parser/config/parseMessage',
+ status: 200,
+ response: {}
+ });
+
+ cy.login();
+ });
+
+ it('should add e2e parser', () => {
+ cy.get('metron-config-sensor-parser-list [data-qe-id="add-new-sensor-btn"]').click();
+
+ cy.get('metron-config-sensor [data-qe-id="sensor-name-input"]').type('test-grok-parser');
+ cy.get('metron-config-sensor [data-qe-id="kafka-topic-input"]').type('test-topic');
+ cy.get('metron-config-sensor [data-qe-id="parser-type-select"]').select('Grok');
+ cy.wait('@sample').get('metron-config-sensor [data-qe-id="grok-statement-details"]').click();
+
+ const sampleMessage = 'DIRECT/207.109.73.154 text/html';
+ const grokStatement = '%{{}NUMBER:timestamp} %{{}INT:elapsed}';
+
+ cy.get('metron-config-sensor-grok [data-qe-id="sample-data-input"]')
+ .focus({ force: true })
+ .clear({ force: true });
+
+ cy.get('metron-config-sensor-grok [data-qe-id="sample-data-input"]').type(sampleMessage);
+
+ cy.get('metron-config-sensor-grok [data-qe-id="ace-editor"] textarea')
+ .focus({ force: true })
+ .clear({ force: true });
+
+ cy.get('metron-config-sensor-grok [data-qe-id="ace-editor"] textarea').type(grokStatement, { force: true }).type(' ', { force: true });
+
+ cy.get('metron-config-sensor-grok [data-qe-id="grok-statement-test-btn"]').click();
+
+ cy.get('metron-config-sensor-grok [data-qe-id="pattern-label-select"]').select('%{NUMBER:timestamp}');
+
+ cy.get('metron-config-sensor-grok [data-qe-id="parser-save-btn"]').click();
+
+ const expectedStatement = '%{NUMBER:timestamp} %{INT:elapsed} '
+
+ cy.get('metron-config-sensor [data-qe-id="grok-statement-input"]').should('have.value', expectedStatement);
+ });
+});
\ No newline at end of file
diff --git a/metron-interface/metron-config/cypress/support/commands.js b/metron-interface/metron-config/cypress/support/commands.js
new file mode 100644
index 0000000..fd0abef
--- /dev/null
+++ b/metron-interface/metron-config/cypress/support/commands.js
@@ -0,0 +1,30 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Cypress.Commands.add('login', () => {
+ cy.server()
+ .route({
+ method: 'GET',
+ url: '/api/v1/user',
+ status: 200,
+ response: {}
+ });
+
+ cy.visit('login');
+ cy.get('[name="user"]').type('user');
+ cy.get('[name="password"]').type('password{enter}');
+});
diff --git a/metron-interface/metron-config/cypress/support/index.js b/metron-interface/metron-config/cypress/support/index.js
new file mode 100644
index 0000000..a791c1d
--- /dev/null
+++ b/metron-interface/metron-config/cypress/support/index.js
@@ -0,0 +1,18 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import './commands';
diff --git a/metron-interface/metron-config/package-lock.json b/metron-interface/metron-config/package-lock.json
index 36b7e70..b232829 100644
--- a/metron-interface/metron-config/package-lock.json
+++ b/metron-interface/metron-config/package-lock.json
@@ -437,6 +437,72 @@
"tslib": "^1.9.0"
}
},
+ "@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"
+ }
+ },
+ "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/xvfb": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+ "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
+ }
+ }
+ },
"@ngtools/webpack": {
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-6.2.3.tgz",
@@ -905,6 +971,12 @@
"integrity": "sha512-rY3B55KSBMMARmGXtzaG5o+kqnCrEF99rngBq5fV+cbwJepVGhDT8eB7UhSDwsJxNsMzSQDLQAyWmgi9pfzssQ==",
"dev": true
},
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
"ansi-green": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz",
@@ -1667,6 +1739,12 @@
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
"dev": true
},
+ "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-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
@@ -1755,6 +1833,15 @@
"unset-value": "^1.0.0"
}
},
+ "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"
+ }
+ },
"callsite": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
@@ -1829,6 +1916,12 @@
"supports-color": "^5.3.0"
}
},
+ "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": "2.0.4",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
@@ -1864,6 +1957,12 @@
"tslib": "^1.9.0"
}
},
+ "ci-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
+ "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
+ "dev": true
+ },
"cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
@@ -1924,6 +2023,31 @@
}
}
},
+ "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"
+ }
+ },
+ "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"
+ }
+ },
"cliui": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
@@ -2046,6 +2170,12 @@
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
"dev": true
},
+ "common-tags": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+ "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
+ "dev": true
+ },
"commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -2488,6 +2618,145 @@
"integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
"dev": true
},
+ "cypress": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.2.0.tgz",
+ "integrity": "sha512-PN0wz6x634QyNL56/voTzJoeScDfwtecvSfFTHfv5MkHuECVSR4VQcEZTvYtKWln3CMBMUkWbBKPIwwu2+a/kw==",
+ "dev": true,
+ "requires": {
+ "@cypress/listr-verbose-renderer": "0.4.1",
+ "@cypress/xvfb": "1.2.4",
+ "bluebird": "3.5.0",
+ "cachedir": "1.3.0",
+ "chalk": "2.4.2",
+ "check-more-types": "2.24.0",
+ "commander": "2.15.1",
+ "common-tags": "1.8.0",
+ "debug": "3.1.0",
+ "execa": "0.10.0",
+ "executable": "4.1.1",
+ "extract-zip": "1.6.7",
+ "fs-extra": "4.0.1",
+ "getos": "3.1.0",
+ "glob": "7.1.3",
+ "is-ci": "1.2.1",
+ "is-installed-globally": "0.1.0",
+ "lazy-ass": "1.6.0",
+ "listr": "0.12.0",
+ "lodash": "4.17.11",
+ "log-symbols": "2.2.0",
+ "minimist": "1.2.0",
+ "moment": "2.24.0",
+ "ramda": "0.24.1",
+ "request": "2.88.0",
+ "request-progress": "0.4.0",
+ "supports-color": "5.5.0",
+ "tmp": "0.0.33",
+ "url": "0.11.0",
+ "yauzl": "2.10.0"
+ },
+ "dependencies": {
+ "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.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"
+ }
+ },
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "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"
+ }
+ },
+ "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.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
+ },
+ "request-progress": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.4.0.tgz",
+ "integrity": "sha1-wZVOOQhqqFJpxWYLzuAUKmpw1+c=",
+ "dev": true,
+ "requires": {
+ "node-eta": "^0.1.1",
+ "throttleit": "^0.0.2"
+ }
+ },
+ "throttleit": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
+ "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
+ "dev": true
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+ },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -2496,6 +2765,12 @@
"assert-plus": "^1.0.0"
}
},
+ "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-format": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
@@ -2837,6 +3112,12 @@
"domelementtype": "1"
}
},
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
"duplexify": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
@@ -2877,6 +3158,12 @@
"integrity": "sha512-WYMjqCnPVS5JA+XvwEnpwucJpVi2+q9cdCFpbhxgWGsCtforFBEkuP9+nCyy/wnU/0SyLcLRIeZct9ayMGcXoQ==",
"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.1",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
@@ -3155,6 +3442,21 @@
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
"dev": true
},
+ "event-stream": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
+ "dev": true,
+ "requires": {
+ "duplexer": "~0.1.1",
+ "from": "~0",
+ "map-stream": "~0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.3",
+ "stream-combiner": "~0.0.4",
+ "through": "~2.3.1"
+ }
+ },
"eventemitter3": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
@@ -3216,12 +3518,35 @@
}
}
},
+ "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-braces": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
@@ -3560,6 +3885,16 @@
"pend": "~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=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ }
+ },
"file-contents": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/file-contents/-/file-contents-0.3.2.tgz",
@@ -3807,6 +4142,12 @@
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"dev": true
},
+ "from": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
+ "dev": true
+ },
"from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@@ -4453,6 +4794,26 @@
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
},
+ "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",
@@ -4529,6 +4890,15 @@
}
}
},
+ "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"
+ }
+ },
"global-modules": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
@@ -4840,6 +5210,12 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
+ "hoek": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz",
+ "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==",
+ "dev": true
+ },
"homedir-polyfill": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
@@ -5187,7 +5563,6 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"dev": true,
- "optional": true,
"requires": {
"repeating": "^2.0.0"
}
@@ -5331,6 +5706,15 @@
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
"dev": true
},
+ "is-ci": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+ "dev": true,
+ "requires": {
+ "ci-info": "^1.5.0"
+ }
+ },
"is-data-descriptor": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
@@ -5428,6 +5812,16 @@
"is-extglob": "^2.1.1"
}
},
+ "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.0",
+ "is-path-inside": "^1.0.0"
+ }
+ },
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
@@ -5490,6 +5884,12 @@
"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-regex": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
@@ -5572,6 +5972,15 @@
"buffer-alloc": "^1.2.0"
}
},
+ "isemail": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
+ "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
+ "dev": true,
+ "requires": {
+ "punycode": "2.x.x"
+ }
+ },
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -5846,6 +6255,17 @@
"integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
"dev": true
},
+ "joi": {
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz",
+ "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==",
+ "dev": true,
+ "requires": {
+ "hoek": "5.x.x",
+ "isemail": "3.x.x",
+ "topo": "3.x.x"
+ }
+ },
"jquery": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
@@ -6125,6 +6545,12 @@
"graceful-fs": "^4.1.9"
}
},
+ "lazy-ass": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
+ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
+ "dev": true
+ },
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
@@ -6207,29 +6633,207 @@
"immediate": "~3.0.5"
}
},
- "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=",
+ "listr": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz",
+ "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
+ "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": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
- }
- }
- },
- "loader-runner": {
- "version": "2.3.0",
+ },
+ "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"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "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": {
+ "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"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "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": {
+ "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"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "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": {
+ "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
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.3.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
"integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
"dev": true
@@ -6285,6 +6889,12 @@
"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.tail": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
@@ -6301,6 +6911,25 @@
"success-symbol": "^0.1.0"
}
},
+ "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": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "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.0.0",
+ "cli-cursor": "^1.0.2"
+ }
+ },
"log4js": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.5.tgz",
@@ -6419,6 +7048,12 @@
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
"dev": true
},
+ "map-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
+ "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
+ "dev": true
+ },
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
@@ -6714,6 +7349,12 @@
"minimist": "0.0.8"
}
},
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "dev": true
+ },
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
@@ -6800,6 +7441,12 @@
"lower-case": "^1.1.1"
}
},
+ "node-eta": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.1.1.tgz",
+ "integrity": "sha1-QGYQmzk3HHYccrfr2pqeoKXeEh8=",
+ "dev": true
+ },
"node-forge": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
@@ -7246,6 +7893,12 @@
"wrappy": "1"
}
},
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
"opn": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
@@ -7286,6 +7939,45 @@
"wordwrap": "~1.0.0"
}
},
+ "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.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=",
+ "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"
+ }
+ },
+ "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.2",
"resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
@@ -7551,6 +8243,15 @@
"pify": "^3.0.0"
}
},
+ "pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "dev": true,
+ "requires": {
+ "through": "~2.3"
+ }
+ },
"pbkdf2": {
"version": "3.0.16",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
@@ -7912,6 +8613,15 @@
"integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
"dev": true
},
+ "ps-tree": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
+ "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
+ "dev": true,
+ "requires": {
+ "event-stream": "=3.3.4"
+ }
+ },
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -8045,6 +8755,12 @@
"integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
"dev": true
},
+ "ramda": {
+ "version": "0.24.1",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz",
+ "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=",
+ "dev": true
+ },
"randomatic": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
@@ -8469,6 +9185,16 @@
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
},
+ "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"
+ }
+ },
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
@@ -8522,6 +9248,12 @@
"aproba": "^1.1.1"
}
},
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
+ "dev": true
+ },
"rxjs": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz",
@@ -8911,6 +9643,12 @@
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
"dev": true
},
+ "slice-ansi": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true
+ },
"slide": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
@@ -9264,6 +10002,15 @@
"wbuf": "^1.7.2"
}
},
+ "split": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
+ "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -9302,6 +10049,91 @@
"safe-buffer": "^5.1.1"
}
},
+ "start-server-and-test": {
+ "version": "1.7.12",
+ "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.7.12.tgz",
+ "integrity": "sha512-ArW/prmdjQ6fwK4IQwVS1drKMZJ9hqK4ZdDh5k9qc+LZfFReYmwr4JjEvJ0lgLtTGQyJJr7xIWqXRKMsyxctvA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "3.5.3",
+ "check-more-types": "2.24.0",
+ "debug": "4.1.1",
+ "execa": "0.11.0",
+ "lazy-ass": "1.6.0",
+ "ps-tree": "1.2.0",
+ "wait-on": "3.2.0"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
+ "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==",
+ "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": "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": "0.11.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.11.0.tgz",
+ "integrity": "sha512-k5AR22vCt1DcfeiRixW46U5tMLtBg44ssdJM9PiXw3D8Bn5qyxFCSnKY/eR22y+ctFDGPqafpaXg2G4Emyua4A==",
+ "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"
+ }
+ },
+ "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
+ },
+ "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"
+ }
+ }
+ }
+ },
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@@ -9356,6 +10188,15 @@
"readable-stream": "^2.0.2"
}
},
+ "stream-combiner": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+ "dev": true,
+ "requires": {
+ "duplexer": "~0.1.1"
+ }
+ },
"stream-each": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
@@ -9385,6 +10226,12 @@
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
"dev": true
},
+ "stream-to-observable": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz",
+ "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=",
+ "dev": true
+ },
"streamroller": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
@@ -9800,6 +10647,23 @@
"repeat-string": "^1.6.1"
}
},
+ "topo": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz",
+ "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==",
+ "dev": true,
+ "requires": {
+ "hoek": "6.x.x"
+ },
+ "dependencies": {
+ "hoek": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.2.tgz",
+ "integrity": "sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q==",
+ "dev": true
+ }
+ }
+ },
"toposort": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
@@ -10128,6 +10992,12 @@
"imurmurhash": "^0.1.4"
}
},
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -10389,6 +11259,27 @@
"integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
"dev": true
},
+ "wait-on": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.2.0.tgz",
+ "integrity": "sha512-QUGNKlKLDyY6W/qHdxaRlXUAgLPe+3mLL/tRByHpRNcHs/c7dZXbu+OnJWGNux6tU1WFh/Z8aEwvbuzSAu79Zg==",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.5.7",
+ "joi": "^13.0.0",
+ "minimist": "^1.2.0",
+ "request": "^2.88.0",
+ "rx": "^4.1.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
"watchpack": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
diff --git a/metron-interface/metron-config/package.json b/metron-interface/metron-config/package.json
index 549036f..b450da6 100644
--- a/metron-interface/metron-config/package.json
+++ b/metron-interface/metron-config/package.json
@@ -11,7 +11,10 @@
"start": "ng serve",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test --browsers=Chrome",
- "testCI": "ng test --watch=false --browsers=ChromeHeadless",
+ "test:ci": "ng test --watch=false --browsers=ChromeHeadless",
+ "cypress": "cypress run",
+ "cypress:open": "cypress open",
+ "cypress:ci": "start-server-and-test start http-get://localhost:4200 cypress",
"pree2e": "webdriver-manager update",
"e2e": "./node_modules/.bin/protractor",
"e2e-all": "./node_modules/.bin/protractor --suite=all",
@@ -58,6 +61,7 @@
"buffer-shims": "^1.0.0",
"codelyzer": "~4.2.1",
"copy": "^0.3.0",
+ "cypress": "^3.2.0",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "^3.0.0",
@@ -67,6 +71,7 @@
"karma-jasmine-html-reporter": "^0.2.2",
"phantomjs-prebuilt": "^2.1.14",
"protractor": "^5.4.1",
+ "start-server-and-test": "^1.7.12",
"ts-node": "~5.0.1",
"tslint": "^5.11.0",
"typescript": "~2.7.2"
diff --git a/metron-interface/metron-config/pom.xml b/metron-interface/metron-config/pom.xml
index d145681..66e4bfd 100644
--- a/metron-interface/metron-config/pom.xml
+++ b/metron-interface/metron-config/pom.xml
@@ -73,12 +73,22 @@
</execution>
<execution>
<phase>test</phase>
- <id>npm testCI</id>
+ <id>npm test:ci</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
- <arguments>run testCI</arguments>
+ <arguments>run test:ci</arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <phase>test</phase>
+ <id>npm cypress:ci</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <configuration>
+ <arguments>run cypress:ci</arguments>
</configuration>
</execution>
</executions>
diff --git a/metron-interface/metron-config/src/app/sensors/sensor-grok/sensor-grok.component.html b/metron-interface/metron-config/src/app/sensors/sensor-grok/sensor-grok.component.html
index 6a5dc53..5dbc17e 100644
--- a/metron-interface/metron-config/src/app/sensors/sensor-grok/sensor-grok.component.html
+++ b/metron-interface/metron-config/src/app/sensors/sensor-grok/sensor-grok.component.html
@@ -22,15 +22,15 @@
<metron-config-sample-data [topic]="sensorParserConfig.sensorTopic"
(onSampleDataChanged)="onSampleDataChanged($event)"></metron-config-sample-data>
<label attr.for="patternLabel">PATTERN LABEL</label>
- <select class="form-control pattern-label-dropdown" [ngModelOptions]="{standalone: true}" [(ngModel)]="newPatternLabel">
+ <select data-qe-id="pattern-label-select" class="form-control pattern-label-dropdown" [ngModelOptions]="{standalone: true}" [(ngModel)]="newPatternLabel">
<option *ngFor="let patternLabel of availablePatternLabels" [value]="patternLabel"> {{ patternLabel }} </option>
</select>
<label attr.for="grokStatement">STATEMENT</label>
<metron-config-ace-editor [(ngModel)]="newGrokStatement" [ngModelOptions]="{standalone: true}" [type]="'GROK'" [options]="grokFunctionList" [placeHolder]="'Enter Grok statement'" (ngModelChange)="getAvailablePatternLabels()"> </metron-config-ace-editor>
<div class="buttons-bar">
- <button type="submit" class="btn form-enable-disable-button" [disabled]="isTestDisabled()" (click)="onTestGrokStatement()">TEST</button>
- <button type="submit" class="btn form-enable-disable-button ml-1" [disabled]="isSaveDisabled()" (click)="onSaveGrok()">SAVE</button>
+ <button type="submit" data-qe-id="grok-statement-test-btn" class="btn form-enable-disable-button" [disabled]="isTestDisabled()" (click)="onTestGrokStatement()">TEST</button>
+ <button type="submit" data-qe-id="parser-save-btn" class="btn form-enable-disable-button ml-1" [disabled]="isSaveDisabled()" (click)="onSaveGrok()">SAVE</button>
</div>
<label> PREVIEW </label>
diff --git a/metron-interface/metron-config/src/app/sensors/sensor-parser-config/sensor-parser-config.component.html b/metron-interface/metron-config/src/app/sensors/sensor-parser-config/sensor-parser-config.component.html
index b4bdd92..5b10bb7 100644
--- a/metron-interface/metron-config/src/app/sensors/sensor-parser-config/sensor-parser-config.component.html
+++ b/metron-interface/metron-config/src/app/sensors/sensor-parser-config/sensor-parser-config.component.html
@@ -47,14 +47,14 @@
<form role="form" [formGroup]="sensorConfigForm">
<div class="form-group">
<label attr.for="sensorName">NAME * </label>
- <input type="text" class="form-control" name="sensorName" formControlName="sensorName" [(ngModel)]="sensorName" (ngModelChange)="onSetSensorName()" [readonly]="editMode">
+ <input type="text" class="form-control" data-qe-id="sensor-name-input" name="sensorName" formControlName="sensorName" [(ngModel)]="sensorName" (ngModelChange)="onSetSensorName()" [readonly]="editMode">
<div *ngIf="!sensorNameUnique"><label><span class="warning-text"> Sensor already exists </span></label></div>
<div *ngIf="!sensorNameNoSpecChars"><label><span class="warning-text"> Sensor name contains special characters </span></label></div>
</div>
<div class="form-group">
<label attr.for="sensorTopic">KAFKA TOPIC </label>
- <input type="text" class="form-control" name="sensorTopic" formControlName="sensorTopic" [(ngModel)]="sensorParserConfig.sensorTopic" (ngModelChange)="onSetKafkaTopic()">
+ <input type="text" class="form-control" data-qe-id="kafka-topic-input" name="sensorTopic" formControlName="sensorTopic" [(ngModel)]="sensorParserConfig.sensorTopic" (ngModelChange)="onSetKafkaTopic()">
<div *ngIf="!kafkaTopicValid"><label ><span class="warning-text"> Kafka Topic Name Is Invalid </span></label></div>
<div *ngIf="kafkaTopicValid">
<label *ngIf="currentKafkaStatus !== null && currentKafkaStatus === kafkaStatus.NO_TOPIC"><span class="warning-text"> No Matching Kafka Topic </span></label>
@@ -65,7 +65,7 @@
<div class="form-group">
<label attr.for="parserClassName">PARSER TYPE * </label>
- <select class="form-control" formControlName="parserClassName" [(ngModel)]="sensorParserConfig.parserClassName" (ngModelChange)="onParserTypeChange()" >
+ <select class="form-control" formControlName="parserClassName" data-qe-id="parser-type-select" [(ngModel)]="sensorParserConfig.parserClassName" (ngModelChange)="onParserTypeChange()" >
<option *ngFor="let parserName of availableParserNames" [value]="availableParsers[parserName]">{{parserName}}</option>
</select>
</div>
@@ -73,8 +73,8 @@
<div class="form-group" [ngClass]="{'panel-selected': showGrokValidator }" *ngIf="isGrokParser(sensorParserConfig)" >
<label attr.for="grokStatement">GROK STATEMENT</label>
<div class="input-group" [attr.disabled]="!sensorNameValid || !parserClassValid">
- <input type="text" class="form-control" formControlName="grokStatement" [(ngModel)]="this.grokStatement" readonly>
- <span class="input-group-btn">
+ <input type="text" data-qe-id="grok-statement-input" class="form-control" formControlName="grokStatement" [(ngModel)]="this.grokStatement" readonly>
+ <span class="input-group-btn" data-qe-id="grok-statement-details">
<button class="btn btn-default" type="button" (click)="sensorNameValid && parserClassValid && onShowGrokPane()" readonly>
<i class="fa fa-columns" aria-hidden="true"></i>
<i class="fa fa-angle-double-right" style="padding-left: 3px" aria-hidden="true"></i>
diff --git a/metron-interface/metron-config/src/app/sensors/sensor-parser-list/sensor-parser-list.component.html b/metron-interface/metron-config/src/app/sensors/sensor-parser-list/sensor-parser-list.component.html
index 726cf77..af4bc7f 100644
--- a/metron-interface/metron-config/src/app/sensors/sensor-parser-list/sensor-parser-list.component.html
+++ b/metron-interface/metron-config/src/app/sensors/sensor-parser-list/sensor-parser-list.component.html
@@ -78,7 +78,7 @@
</tbody>
</table>
- <div class="metron-add-button hexa-button" (click)="addAddSensor()">
+ <div class="metron-add-button hexa-button" data-qe-id="add-new-sensor-btn" (click)="addAddSensor()">
<i class="fa fa-plus"></i>
</div>
diff --git a/metron-interface/metron-config/src/app/shared/ace-editor/ace-editor.component.html b/metron-interface/metron-config/src/app/shared/ace-editor/ace-editor.component.html
index 72489ed..298d767 100644
--- a/metron-interface/metron-config/src/app/shared/ace-editor/ace-editor.component.html
+++ b/metron-interface/metron-config/src/app/shared/ace-editor/ace-editor.component.html
@@ -13,4 +13,4 @@
OR CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the License.
-->
-<div #aceEditor class="editor"></div>
+<div #aceEditor class="editor" data-qe-id="ace-editor"></div>
diff --git a/metron-interface/metron-config/src/app/shared/sample-data/sample-data.component.html b/metron-interface/metron-config/src/app/shared/sample-data/sample-data.component.html
index 475f745..5570fca 100644
--- a/metron-interface/metron-config/src/app/shared/sample-data/sample-data.component.html
+++ b/metron-interface/metron-config/src/app/shared/sample-data/sample-data.component.html
@@ -16,7 +16,7 @@
<label attr.for="sampleData">SAMPLE ( {{sampleDataIndex + 1}} of {{sampleData.length}} )</label>
<div>
<i class="fa fa-caret-left sample-iterator sample-unavailable" aria-hidden="true" [class.sample-available]="sampleDataIndex > 0" [class.sample-unavailable]="sampleDataIndex < 1" (click)="getPreviousSample()"></i>
- <textarea #sampleDataElement type="text" class="form-control sample-input" name="sampleData" [ngModel]="sampleData[sampleDataIndex]" (blur)="onBlur()"
+ <textarea #sampleDataElement type="text" data-qe-id="sample-data-input" class="form-control sample-input" name="sampleData" [ngModel]="sampleData[sampleDataIndex]" (blur)="onBlur()"
[attr.placeholder]="placeHolderText" (focus)="sampleDataElement.placeholder=''"> </textarea>
<i class="fa fa-caret-right sample-iterator sample-available" aria-hidden="true" (click)="getNextSample()"></i>
</div>