diff --git a/.env b/.env new file mode 100644 index 000000000..abfd8c55f --- /dev/null +++ b/.env @@ -0,0 +1,6 @@ +TAG=6.2.1 +ENV=dev +PROFILE=production +AOT=no-aot +ELASTIC_VERSION=6.2.1 +ELASTIC_PASSWORD=changeme diff --git a/ELK.Docker/.env b/ELK.Docker/.env new file mode 100644 index 000000000..fcb78b08a --- /dev/null +++ b/ELK.Docker/.env @@ -0,0 +1,3 @@ +TAG=6.2.1 +ELASTIC_VERSION=6.2.1 +ELASTIC_PASSWORD=changeme diff --git a/ELK.Docker/.gitignore b/ELK.Docker/.gitignore new file mode 100644 index 000000000..0defb5cce --- /dev/null +++ b/ELK.Docker/.gitignore @@ -0,0 +1 @@ +**/*~ diff --git a/ELK.Docker/.travis.yml b/ELK.Docker/.travis.yml new file mode 100644 index 000000000..d4d074a6a --- /dev/null +++ b/ELK.Docker/.travis.yml @@ -0,0 +1,7 @@ +--- +language: python +python: ['3.5'] +script: make + +sudo: required +services: ['docker'] diff --git a/ELK.Docker/LICENSE b/ELK.Docker/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/ELK.Docker/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed 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. diff --git a/ELK.Docker/Makefile b/ELK.Docker/Makefile new file mode 100644 index 000000000..ddd402945 --- /dev/null +++ b/ELK.Docker/Makefile @@ -0,0 +1,30 @@ +SHELL=/bin/bash + +ifndef ELASTIC_VERSION +ELASTIC_VERSION := $(shell awk 'BEGIN { FS = "[= ]" } /^ELASTIC_VERSION=/ { print $$2 }' .env) +endif +export ELASTIC_VERSION + +ifndef GIT_BRANCH +GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD) +endif + +TARGETS := apm-server elasticsearch logstash kibana beats + +images: $(TARGETS) +push: $(TARGETS:%=%-push) +clean: $(TARGETS:%=%-clean) + +$(TARGETS): $(TARGETS:%=%-checkout) + (cd stack/$@ && make) + +$(TARGETS:%=%-push): $(TARGETS:%=%-checkout) + (cd stack/$(@:%-push=%) && make push) + +$(TARGETS:%=%-checkout): + test -d stack/$(@:%-checkout=%) || \ + git clone https://github.com/elastic/$(@:%-checkout=%)-docker.git stack/$(@:%-checkout=%) + (cd stack/$(@:%-checkout=%) && git fetch && git reset --hard && git checkout origin/$(GIT_BRANCH)) + +$(TARGETS:%=%-clean): + rm -rf stack/$(@:%-clean=%) diff --git a/ELK.Docker/README.md b/ELK.Docker/README.md new file mode 100644 index 000000000..852cce303 --- /dev/null +++ b/ELK.Docker/README.md @@ -0,0 +1,25 @@ +# stack-docker +This example Docker Compose configuration demonstrates many components of the +Elastic Stack, all running on a single machine under Docker. + +## Prerequisites +- Docker and Compose. Windows and Mac users get Compose installed automatically +with Docker. Linux users can: +``` +pip install docker-compose +``` + +- At least 4GiB of RAM for the containers. Windows and Mac users _must_ +configure their Docker virtual machine to have more than the default 2 GiB of +RAM: + +![Docker VM memory settings](screenshots/docker-vm-memory-settings.png) + +## Starting the stack +Try `docker-compose up` to create a demonstration Elastic Stack with +Elasticsearch, Kibana, Logstash, Auditbeat, Metricbeat, Filebeat, Packetbeat, +and Heartbeat. + +Point a browser at [`http://localhost:5601`](http://localhost:5601) to see the results. + +Log in with `elastic` / `changeme`. diff --git a/ELK.Docker/config/logstash.conf b/ELK.Docker/config/logstash.conf new file mode 100644 index 000000000..77091ee3b --- /dev/null +++ b/ELK.Docker/config/logstash.conf @@ -0,0 +1,28 @@ +input { + http { + port => 31311 # default: 8080 + } +} + +filter { + grok{ + match => { "message" => "%{GREEDYDATA:request}"} + } + json{ + source => "request" + target => "parsed" + } + split{ + field=>"entries" + } + +} + +output { + elasticsearch { + hosts => [ 'elasticsearch' ] + user => 'elastic' + password => 'changeme' + index => "data-management-plan-%{[entries][indexType]}-%{+YYYY.MM.dd}" + } +} diff --git a/ELK.Docker/docker-compose.yml b/ELK.Docker/docker-compose.yml new file mode 100644 index 000000000..28357dce4 --- /dev/null +++ b/ELK.Docker/docker-compose.yml @@ -0,0 +1,106 @@ +--- +version: '3' +services: + # The environment variable "TAG" is used throughout this file to + # specify the version of the images to run. The default is set in the + # '.env' file in this folder. It can be overridden with any normal + # technique for setting environment variables, for example: + # + # TAG=6.0.0-beta1 docker-compose up + # + # REF: https://docs.docker.com/compose/compose-file/#variable-substitution + # + # Also be sure to set the ELASTIC_VERSION variable. For released versions, + # ${TAG} and ${ELASTIC_VERSION} will be identical, but for pre-release + # versions, ${TAG} might contain an extra build identifier, like + # "6.0.0-beta1-3eab5b40", so a full invocation might look like: + # + # ELASTIC_VERSION=6.0.0-beta1 TAG=6.0.0-beta1-3eab5b40 docker-compose up + # + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:${TAG} + container_name: elasticsearch + #volumes: + # - esdata:/usr/share/elasticsearch/data + environment: ['http.host=0.0.0.0', 'transport.host=127.0.0.1', 'ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + ports: ['0.0.0.0:9200:9200'] + networks: ['stack'] + + kibana: + image: docker.elastic.co/kibana/kibana:${TAG} + container_name: kibana + ports: ['0.0.0.0:5601:5601'] + networks: ['stack'] + depends_on: ['elasticsearch'] + + logstash: + image: docker.elastic.co/logstash/logstash:${TAG} + container_name: logstash + # Provide a simple pipeline configuration for Logstash with a bind-mounted file. + volumes: + - ./config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf + ports: ['0.0.0.0:31311:31311'] + + networks: ['stack'] + depends_on: ['elasticsearch', 'setup_logstash'] + + filebeat: + image: docker.elastic.co/beats/filebeat:${TAG} + container_name: filebeat + command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}' + # If the host system has logs at "/var/log", mount them at "/mnt/log" + # inside the container, where Filebeat can find them. + # volumes: ['/var/log:/mnt/log:ro'] + networks: ['stack'] + depends_on: ['elasticsearch', 'setup_filebeat'] + + heartbeat: + image: docker.elastic.co/beats/heartbeat:${TAG} + container_name: heartbeat + command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}' + networks: ['stack'] + depends_on: ['elasticsearch', 'setup_heartbeat'] + + # Run a short-lived container to set up Logstash. + setup_logstash: + image: centos:7 + container_name: setup_logstash + volumes: ['./scripts/setup-logstash.sh:/usr/local/bin/setup-logstash.sh:ro'] + # The script may have CR/LF line endings if using Docker for Windows, so + # make sure that they don't confuse Bash. + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-logstash.sh | tr -d "\r" | bash'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['elasticsearch'] + + setup_kibana: + image: centos:7 + container_name: setup_kibana + volumes: ['./scripts/setup-kibana.sh:/usr/local/bin/setup-kibana.sh:ro'] + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-kibana.sh | tr -d "\r" | bash'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['elasticsearch'] + + setup_filebeat: + image: docker.elastic.co/beats/filebeat:${TAG} + container_name: setup_filebeat + volumes: ['./scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro'] + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s filebeat'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['kibana'] + + setup_heartbeat: + image: docker.elastic.co/beats/heartbeat:${TAG} + container_name: setup_heartbeat + volumes: ['./scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro'] + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s heartbeat'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['kibana'] + +#volumes: + #esdata: + # driver: local +networks: {stack: {}} diff --git a/ELK.Docker/screenshots/docker-vm-memory-settings.png b/ELK.Docker/screenshots/docker-vm-memory-settings.png new file mode 100644 index 000000000..69dd81388 Binary files /dev/null and b/ELK.Docker/screenshots/docker-vm-memory-settings.png differ diff --git a/ELK.Docker/scripts/setup-beat.sh b/ELK.Docker/scripts/setup-beat.sh new file mode 100644 index 000000000..70402d77a --- /dev/null +++ b/ELK.Docker/scripts/setup-beat.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -euo pipefail + +beat=$1 + +until curl -s http://kibana:5601; do + sleep 2 +done +sleep 5 + +# Load the sample dashboards for the Beat. +# REF: https://www.elastic.co/guide/en/beats/metricbeat/master/metricbeat-sample-dashboards.html +${beat} setup \ + -E setup.kibana.host=kibana \ + -E setup.kibana.username=elastic \ + -E setup.kibana.password=${ELASTIC_PASSWORD} \ + -E output.elasticsearch.password=${ELASTIC_PASSWORD} diff --git a/ELK.Docker/scripts/setup-kibana.sh b/ELK.Docker/scripts/setup-kibana.sh new file mode 100644 index 000000000..8d7a90640 --- /dev/null +++ b/ELK.Docker/scripts/setup-kibana.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -euo pipefail + +es_url=http://elastic:${ELASTIC_PASSWORD}@elasticsearch:9200 + +# Wait for Elasticsearch to start up before doing anything. +until curl -s $es_url -o /dev/null; do + sleep 1 +done diff --git a/ELK.Docker/scripts/setup-logstash.sh b/ELK.Docker/scripts/setup-logstash.sh new file mode 100644 index 000000000..8d7a90640 --- /dev/null +++ b/ELK.Docker/scripts/setup-logstash.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -euo pipefail + +es_url=http://elastic:${ELASTIC_PASSWORD}@elasticsearch:9200 + +# Wait for Elasticsearch to start up before doing anything. +until curl -s $es_url -o /dev/null; do + sleep 1 +done diff --git a/ELK.Docker/stack/.gitignore b/ELK.Docker/stack/.gitignore new file mode 100644 index 000000000..120f485d7 --- /dev/null +++ b/ELK.Docker/stack/.gitignore @@ -0,0 +1,2 @@ +* +!/.gitignore diff --git a/dmp-backend/Dockerfile b/dmp-backend/Dockerfile index 1c2d5cb72..79cf08791 100644 --- a/dmp-backend/Dockerfile +++ b/dmp-backend/Dockerfile @@ -1,5 +1,5 @@ FROM openjdk:8-jdk-alpine VOLUME /tmp -ARG JAR_FILE -ADD ${JAR_FILE} app.jar -ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] \ No newline at end of file +ARG PROFILE=dev +ADD web/target/web-1.0-SNAPSHOT.jar app.jar +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=${PROFILE}","-jar","/app.jar"] \ No newline at end of file diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java index a936a02bf..8ccd7c8c6 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java @@ -84,7 +84,7 @@ public class DMP implements DataEntity { private Project project; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"AssociatedDmps\"", columnDefinition = "xml", nullable = true) private String associatedDmps; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java index 7230854c5..729f70587 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java @@ -29,7 +29,7 @@ public class DMPProfile implements DataEntity { @Column(name = "\"Label\"") private String label; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = true) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DataRepository.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DataRepository.java index d33df2c01..72a3ed3d9 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DataRepository.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DataRepository.java @@ -33,7 +33,7 @@ public class DataRepository implements Serializable, DataEntity { @Column(name = "\"Uri\"") private String uri; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Properties\"", columnDefinition = "xml", nullable = true) private String properties; @@ -88,7 +88,7 @@ public class Dataset implements DataEntity { @JoinColumn(name = "\"Profile\"", nullable = true) private DatasetProfile profile; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Reference\"", columnDefinition = "xml", nullable = true) private String reference; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfile.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfile.java index 26a988962..193450615 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfile.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfile.java @@ -27,7 +27,7 @@ public class DatasetProfile implements DataEntity { @OneToMany(fetch = FetchType.LAZY, mappedBy = "profile") private Set dataset; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = false) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileRuleset.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileRuleset.java index 28879c861..b235cf7d2 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileRuleset.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileRuleset.java @@ -23,7 +23,7 @@ public class DatasetProfileRuleset { @Column(name = "\"Label\"") private String label; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = false) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileViewstyle.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileViewstyle.java index 02d27cc3f..03eac7b4c 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileViewstyle.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DatasetProfileViewstyle.java @@ -23,7 +23,7 @@ public class DatasetProfileViewstyle { @Column(name = "\"Label\"") private String label; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = false) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Invitation.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Invitation.java index bd8eb04e4..852bfd41f 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Invitation.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Invitation.java @@ -35,7 +35,7 @@ public class Invitation implements DataEntity { @Column(name = "\"AcceptedInvitation\"", nullable = false) private boolean acceptedInvitation; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Properties\"", columnDefinition = "xml", nullable = true) private String properties; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Organisation.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Organisation.java index 9949dc2da..f74b3bb32 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Organisation.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Organisation.java @@ -28,14 +28,14 @@ public class Organisation implements Serializable, DataEntity @Column(name = "\"Abbreviation\"") private String abbreviation; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Reference\"", columnDefinition = "xml", nullable = true) private String reference; @Column(name = "\"Uri\"") private String uri; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = true) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java index 17e7f8c7e..5a8e2dc7f 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java @@ -96,14 +96,14 @@ public class Project implements DataEntity { @Column(name = "\"Abbreviation\"") private String abbreviation; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Reference\"", columnDefinition = "xml", nullable = true) private String reference; @Column(name = "\"Uri\"") private String uri; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = true) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Registry.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Registry.java index 098cf8ede..49d2420b5 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Registry.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Registry.java @@ -34,7 +34,7 @@ public class Registry implements DataEntity { @Column(name = "\"Uri\"") private String uri; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = true) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Researcher.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Researcher.java index eede12605..186467101 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Researcher.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Researcher.java @@ -30,11 +30,11 @@ public class Researcher implements DataEntity { @Column(name = "\"PrimaryEmail\"") private String primaryEmail; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = true) private String definition; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Reference\"", columnDefinition = "xml", nullable = true) private String reference; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Service.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Service.java index 61f10ce5d..c9979bd68 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Service.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Service.java @@ -34,7 +34,7 @@ public class Service implements DataEntity { @Column(name = "\"Uri\"") private String uri; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = false) private String definition; diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/UserInfo.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/UserInfo.java index 7377898fc..3a9da482c 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/UserInfo.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/UserInfo.java @@ -51,7 +51,7 @@ public class UserInfo implements DataEntity { private Date lastloggedin = null; - @Type(type = "eu.eudat.typedefinition.XMLType") + @Type(type = "eu.eudat.configurations.typedefinition.XMLType") @Column(name = "additionalinfo", nullable = true) private String additionalinfo; diff --git a/dmp-backend/logging/src/main/java/eu/eudat/core/logger/Logger.java b/dmp-backend/logging/src/main/java/eu/eudat/core/logger/Logger.java index 2595f2911..a89dc397e 100644 --- a/dmp-backend/logging/src/main/java/eu/eudat/core/logger/Logger.java +++ b/dmp-backend/logging/src/main/java/eu/eudat/core/logger/Logger.java @@ -1,5 +1,7 @@ package eu.eudat.core.logger; +import eu.eudat.core.models.exception.ApiExceptionLoggingModel; + /** * Created by ikalyvas on 5/30/2018. */ @@ -25,6 +27,8 @@ public interface Logger { void warn(T exception,String message); + void info(String message); + void info(T model); void info(T model,String message); @@ -35,6 +39,8 @@ public interface Logger { void error(T loggingModel); + void error(ApiExceptionLoggingModel model); + void error(T exception); void error(T exception,String message); diff --git a/dmp-backend/logging/src/main/java/eu/eudat/core/logger/common/AbstractBatchLogger.java b/dmp-backend/logging/src/main/java/eu/eudat/core/logger/common/AbstractBatchLogger.java index 229af61ec..e9938a5ff 100644 --- a/dmp-backend/logging/src/main/java/eu/eudat/core/logger/common/AbstractBatchLogger.java +++ b/dmp-backend/logging/src/main/java/eu/eudat/core/logger/common/AbstractBatchLogger.java @@ -42,13 +42,15 @@ public abstract class AbstractBatchLogger { } public String tranformLog() { - Map> transformedMap = new HashMap<>(); - transformedMap.put("data",this.getAndClear().values()); - if (this.logOutputType().equals(LoggingOutputType.JSON)) - return this.concurrentHashMap.values().size() > 0 ? new JSONObject(transformedMap).toString() : null; - if (this.logOutputType().equals(LoggingOutputType.FILE)) - return this.concurrentHashMap.toString(); //TODO actual implementation of file Logger - else throw new RuntimeException("Unsupported LoggingOutputType type"); + if (this.concurrentHashMap.size() > 0) { + Map> transformedMap = new HashMap<>(); + transformedMap.put("entries", this.getAndClear().values()); + if (this.logOutputType().equals(LoggingOutputType.JSON)) + return new JSONObject(transformedMap).toString(); + if (this.logOutputType().equals(LoggingOutputType.FILE)) + return transformedMap.toString(); //TODO actual implementation of file Logger + else throw new RuntimeException("Unsupported LoggingOutputType type"); + } else return null; } public abstract void outputData(); diff --git a/dmp-backend/logging/src/main/java/eu/eudat/core/logger/remote/http/HttpRemoteLogger.java b/dmp-backend/logging/src/main/java/eu/eudat/core/logger/remote/http/HttpRemoteLogger.java index 3d90f1848..068606635 100644 --- a/dmp-backend/logging/src/main/java/eu/eudat/core/logger/remote/http/HttpRemoteLogger.java +++ b/dmp-backend/logging/src/main/java/eu/eudat/core/logger/remote/http/HttpRemoteLogger.java @@ -3,6 +3,7 @@ package eu.eudat.core.logger.remote.http; import eu.eudat.core.logger.Logger; import eu.eudat.core.logger.common.AbstractBatchLogger; import eu.eudat.core.models.LoggingModel; +import eu.eudat.core.models.exception.ApiExceptionLoggingModel; import eu.eudat.core.models.exception.ExceptionLoggingModel; import eu.eudat.core.models.simple.SimpleAuditModel; import eu.eudat.core.models.simple.SimpleLoggingModel; @@ -17,6 +18,9 @@ import org.springframework.web.client.RestTemplate; import types.LoggingOutputType; import types.LoggingType; +import java.util.HashMap; +import java.util.Map; + /** * Created by ikalyvas on 5/30/2018. */ @@ -40,11 +44,16 @@ public class HttpRemoteLogger extends AbstractBatchLogger implements Logger { @Override public void outputData() { - String log = this.tranformLog(); - if (log != null && !log.isEmpty()) { - HttpEntity requestEntity = new HttpEntity(log, headers); - ResponseEntity responseEntity = rest.exchange(this.environment.getProperty("http-logger.server-address"), HttpMethod.POST, requestEntity, String.class); + try { + String log = this.tranformLog(); + if (log != null) { + HttpEntity requestEntity = new HttpEntity(log, headers); + ResponseEntity Object = rest.exchange(this.environment.getProperty("http-logger.server-address"), HttpMethod.POST, requestEntity, String.class); + } + } catch (Exception ex) { + ex.printStackTrace(); } + } @Override @@ -79,19 +88,23 @@ public class HttpRemoteLogger extends AbstractBatchLogger implements Logger { @Override public void debug(T exception) { - ExceptionLoggingModel loggingModel = new ExceptionLoggingModel<>(); - loggingModel.setData(exception); - loggingModel.setType(LoggingType.DEBUG); - this.put(String.valueOf(exception.hashCode()), loggingModel); + ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); + exceptionLoggingModel.setType(LoggingType.DEBUG); + this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); } @Override public void debug(T exception, String message) { - ExceptionLoggingModel loggingModel = new ExceptionLoggingModel<>(); - loggingModel.setData(exception); - loggingModel.setMessage(message); - loggingModel.setType(LoggingType.DEBUG); - this.put(String.valueOf(exception.hashCode()), loggingModel); + ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); + exceptionLoggingModel.setMessage(message); + exceptionLoggingModel.setType(LoggingType.DEBUG); + this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); } @Override @@ -122,7 +135,9 @@ public class HttpRemoteLogger extends AbstractBatchLogger implements Logger { @Override public void warn(T exception) { ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); - exceptionLoggingModel.setData(exception); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); exceptionLoggingModel.setType(LoggingType.WARNING); this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); } @@ -130,12 +145,22 @@ public class HttpRemoteLogger extends AbstractBatchLogger implements Logger { @Override public void warn(T exception, String message) { ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); - exceptionLoggingModel.setData(exception); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); exceptionLoggingModel.setMessage(message); exceptionLoggingModel.setType(LoggingType.WARNING); this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); } + @Override + public void info(String message) { + SimpleAuditModel simpleAuditModel = new SimpleAuditModel<>(); + simpleAuditModel.setMessage(message); + simpleAuditModel.setType(LoggingType.INFO); + this.put(String.valueOf(simpleAuditModel.hashCode()), simpleAuditModel); + } + @Override public void info(T model) { SimpleAuditModel simpleAuditModel = new SimpleAuditModel<>(); @@ -156,7 +181,9 @@ public class HttpRemoteLogger extends AbstractBatchLogger implements Logger { @Override public void info(T exception) { ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); - exceptionLoggingModel.setData(exception); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); exceptionLoggingModel.setType(LoggingType.INFO); this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); } @@ -164,23 +191,33 @@ public class HttpRemoteLogger extends AbstractBatchLogger implements Logger { @Override public void info(T exception, String message) { ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); - exceptionLoggingModel.setData(exception); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); exceptionLoggingModel.setMessage(message); exceptionLoggingModel.setType(LoggingType.INFO); this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); } + @Override + public void error(ApiExceptionLoggingModel model) { + this.put(String.valueOf(model.hashCode()), model); + } + @Override public void error(T model) { LoggingModel loggingModel = new SimpleLoggingModel<>(); loggingModel.setType(LoggingType.DEBUG); + loggingModel.setData(model); this.put(String.valueOf(model.hashCode()), loggingModel); } @Override public void error(T exception) { ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); - exceptionLoggingModel.setData(exception); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); exceptionLoggingModel.setType(LoggingType.ERROR); this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); } @@ -188,7 +225,9 @@ public class HttpRemoteLogger extends AbstractBatchLogger implements Logger { @Override public void error(T exception, String message) { ExceptionLoggingModel exceptionLoggingModel = new ExceptionLoggingModel<>(); - exceptionLoggingModel.setData(exception); + Map map = new HashMap<>(); + map.put("exception", exception); + exceptionLoggingModel.setData(map); exceptionLoggingModel.setMessage(message); exceptionLoggingModel.setType(LoggingType.ERROR); this.put(String.valueOf(exception.hashCode()), exceptionLoggingModel); diff --git a/dmp-backend/logging/src/main/java/eu/eudat/core/models/exception/ApiExceptionLoggingModel.java b/dmp-backend/logging/src/main/java/eu/eudat/core/models/exception/ApiExceptionLoggingModel.java new file mode 100644 index 000000000..d1ca09db4 --- /dev/null +++ b/dmp-backend/logging/src/main/java/eu/eudat/core/models/exception/ApiExceptionLoggingModel.java @@ -0,0 +1,35 @@ +package eu.eudat.core.models.exception; + +import eu.eudat.core.models.LoggingModel; +import org.springframework.http.HttpStatus; + +import java.util.Map; + +/** + * Created by ikalyvas on 6/12/2018. + */ +public class ApiExceptionLoggingModel extends LoggingModel> { + private HttpStatus code; + private P user; + private final String indexType = "api-exception-logging"; + + public String getIndexType() { + return indexType; + } + + public P getUser() { + return user; + } + + public void setUser(P user) { + this.user = user; + } + + public HttpStatus getCode() { + return code; + } + + public void setCode(HttpStatus code) { + this.code = code; + } +} diff --git a/dmp-backend/logging/src/main/java/eu/eudat/core/models/exception/ExceptionLoggingModel.java b/dmp-backend/logging/src/main/java/eu/eudat/core/models/exception/ExceptionLoggingModel.java index f892fa9d5..79cbf283f 100644 --- a/dmp-backend/logging/src/main/java/eu/eudat/core/models/exception/ExceptionLoggingModel.java +++ b/dmp-backend/logging/src/main/java/eu/eudat/core/models/exception/ExceptionLoggingModel.java @@ -2,8 +2,20 @@ package eu.eudat.core.models.exception; import eu.eudat.core.models.LoggingModel; +import java.util.Map; + /** * Created by ikalyvas on 5/30/2018. */ -public class ExceptionLoggingModel extends LoggingModel { +public class ExceptionLoggingModel extends LoggingModel> { + private final String indexType = "exception-logging"; + + public String getIndexType() { + return indexType; + } + + @Override + public Map getData() { + return super.getData(); + } } diff --git a/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleAuditModel.java b/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleAuditModel.java index 65b38e9b3..20d72dc72 100644 --- a/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleAuditModel.java +++ b/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleAuditModel.java @@ -6,4 +6,9 @@ import eu.eudat.core.models.AuditModel; * Created by ikalyvas on 5/30/2018. */ public class SimpleAuditModel extends AuditModel { + private final String indexType = "simple-audit"; + + public String getIndexType() { + return indexType; + } } diff --git a/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleLoggingModel.java b/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleLoggingModel.java index 6a2ff0dae..3ce76d736 100644 --- a/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleLoggingModel.java +++ b/dmp-backend/logging/src/main/java/eu/eudat/core/models/simple/SimpleLoggingModel.java @@ -6,4 +6,9 @@ import eu.eudat.core.models.LoggingModel; * Created by ikalyvas on 5/30/2018. */ public class SimpleLoggingModel extends LoggingModel { + private final String indexType = "simple-logging"; + + public String getIndexType() { + return indexType; + } } diff --git a/dmp-backend/logging/target/logging-1.0-SNAPSHOT.jar b/dmp-backend/logging/target/logging-1.0-SNAPSHOT.jar new file mode 100644 index 000000000..202cbdeda Binary files /dev/null and b/dmp-backend/logging/target/logging-1.0-SNAPSHOT.jar differ diff --git a/dmp-backend/logging/target/maven-archiver/pom.properties b/dmp-backend/logging/target/maven-archiver/pom.properties new file mode 100644 index 000000000..25cfea2ca --- /dev/null +++ b/dmp-backend/logging/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Apache Maven +#Thu Jun 21 10:17:25 EEST 2018 +version=1.0-SNAPSHOT +groupId=dmp-backend +artifactId=logging diff --git a/dmp-backend/logging/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/dmp-backend/logging/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 000000000..e69de29bb diff --git a/dmp-backend/logging/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/dmp-backend/logging/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 000000000..206173e09 --- /dev/null +++ b/dmp-backend/logging/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,11 @@ +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\exception\ApiExceptionLoggingModel.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\types\LoggingOutputType.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\AuditModel.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\LoggingModel.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\simple\SimpleAuditModel.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\logger\common\AbstractBatchLogger.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\simple\SimpleLoggingModel.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\logger\remote\http\HttpRemoteLogger.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\logger\Logger.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\exception\ExceptionLoggingModel.java +C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\types\LoggingType.java diff --git a/dmp-backend/logging/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/dmp-backend/logging/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 000000000..e69de29bb diff --git a/dmp-backend/pom.xml b/dmp-backend/pom.xml index edbc404d3..14d450858 100644 --- a/dmp-backend/pom.xml +++ b/dmp-backend/pom.xml @@ -29,7 +29,7 @@ 0.0.1-SNAPSHOT 4.3.8.RELEASE - + 4.2.3.RELEASE 1.19.1 7.0.35 @@ -67,7 +67,7 @@ org.hibernate - hibernate-eu.eudat.core + hibernate-core ${hibernate.version} @@ -101,13 +101,13 @@ - com.fasterxml.jackson.eu.eudat.core - jackson-eu.eudat.core + com.fasterxml.jackson.core + jackson-core 2.9.4 - com.fasterxml.jackson.eu.eudat.core + com.fasterxml.jackson.core jackson-databind 2.9.4 @@ -151,7 +151,7 @@ fr.opensagres.xdocreport - org.apache.poi.xwpf.converter.eu.eudat.core + org.apache.poi.xwpf.converter.core 1.0.6 diff --git a/dmp-backend/web/src/main/java/eu/eudat/configurations/WebMVCConfiguration.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/WebMVCConfiguration.java index 1186ab6ca..79607ba35 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/configurations/WebMVCConfiguration.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/WebMVCConfiguration.java @@ -1,9 +1,9 @@ package eu.eudat.configurations; import eu.eudat.controllers.interceptors.RequestInterceptor; -import eu.eudat.handlers.PrincipalArgumentResolver; -import eu.eudat.services.ApiContext; -import eu.eudat.services.operations.AuthenticationService; +import eu.eudat.logic.handlers.PrincipalArgumentResolver; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.operations.AuthenticationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableAsync; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfiguration.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfiguration.java similarity index 52% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfiguration.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfiguration.java index b1da25e70..87cf9002e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfiguration.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfiguration.java @@ -1,7 +1,7 @@ -package eu.eudat.dynamicproject; +package eu.eudat.configurations.dynamicproject; -import eu.eudat.dynamicproject.entities.Configuration; -import eu.eudat.models.dynamicfields.DynamicField; +import eu.eudat.configurations.dynamicproject.entities.Configuration; +import eu.eudat.models.data.dynamicfields.DynamicField; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfigurationDevelImpl.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfigurationDevelImpl.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfigurationDevelImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfigurationDevelImpl.java index ece4ee086..bc20ac8b0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfigurationDevelImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfigurationDevelImpl.java @@ -1,9 +1,9 @@ -package eu.eudat.dynamicproject; +package eu.eudat.configurations.dynamicproject; -import eu.eudat.dynamicproject.entities.Configuration; -import eu.eudat.dynamicproject.entities.Property; -import eu.eudat.models.dynamicfields.Dependency; -import eu.eudat.models.dynamicfields.DynamicField; +import eu.eudat.configurations.dynamicproject.entities.Configuration; +import eu.eudat.configurations.dynamicproject.entities.Property; +import eu.eudat.models.data.dynamicfields.Dependency; +import eu.eudat.models.data.dynamicfields.DynamicField; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.core.env.Environment; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfigurationProdImpl.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfigurationProdImpl.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfigurationProdImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfigurationProdImpl.java index 13687cecb..a70fd4ed6 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/DynamicProjectConfigurationProdImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/DynamicProjectConfigurationProdImpl.java @@ -1,9 +1,9 @@ -package eu.eudat.dynamicproject; +package eu.eudat.configurations.dynamicproject; -import eu.eudat.dynamicproject.entities.Configuration; -import eu.eudat.dynamicproject.entities.Property; -import eu.eudat.models.dynamicfields.Dependency; -import eu.eudat.models.dynamicfields.DynamicField; +import eu.eudat.configurations.dynamicproject.entities.Configuration; +import eu.eudat.configurations.dynamicproject.entities.Property; +import eu.eudat.models.data.dynamicfields.Dependency; +import eu.eudat.models.data.dynamicfields.DynamicField; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.core.env.Environment; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Configuration.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Configuration.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Configuration.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Configuration.java index 52dfc93ed..c1536cfeb 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Configuration.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Configuration.java @@ -1,4 +1,4 @@ -package eu.eudat.dynamicproject.entities; +package eu.eudat.configurations.dynamicproject.entities; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Dependency.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Dependency.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Dependency.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Dependency.java index 39cd01c23..f2a25dd53 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Dependency.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Dependency.java @@ -1,4 +1,4 @@ -package eu.eudat.dynamicproject.entities; +package eu.eudat.configurations.dynamicproject.entities; import javax.xml.bind.annotation.XmlElement; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Language.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Language.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Language.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Language.java index f05ff0c5f..d628635ee 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Language.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Language.java @@ -1,4 +1,4 @@ -package eu.eudat.dynamicproject.entities; +package eu.eudat.configurations.dynamicproject.entities; import javax.xml.bind.annotation.XmlElement; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/MainProperty.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/MainProperty.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/MainProperty.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/MainProperty.java index 8225737a3..f7eb05db7 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/MainProperty.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/MainProperty.java @@ -1,6 +1,6 @@ -package eu.eudat.dynamicproject.entities; +package eu.eudat.configurations.dynamicproject.entities; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Property.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Property.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Property.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Property.java index 3802986f9..a3a0e9359 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/dynamicproject/entities/Property.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/dynamicproject/entities/Property.java @@ -1,4 +1,4 @@ -package eu.eudat.dynamicproject.entities; +package eu.eudat.configurations.dynamicproject.entities; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/DataType.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/DataType.java similarity index 72% rename from dmp-backend/web/src/main/java/eu/eudat/typedefinition/DataType.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/DataType.java index aaa6c48d7..bf144db9d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/DataType.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/DataType.java @@ -1,4 +1,4 @@ -package eu.eudat.typedefinition; +package eu.eudat.configurations.typedefinition; public enum DataType { TINY, diff --git a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/DatabaseColumnType.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/DatabaseColumnType.java similarity index 62% rename from dmp-backend/web/src/main/java/eu/eudat/typedefinition/DatabaseColumnType.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/DatabaseColumnType.java index 3d4e9998b..6e24625b4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/DatabaseColumnType.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/DatabaseColumnType.java @@ -1,4 +1,4 @@ -package eu.eudat.typedefinition; +package eu.eudat.configurations.typedefinition; public interface DatabaseColumnType { public String getType(DataType dt); diff --git a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/PostgreSQLDatabaseColumnType.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/PostgreSQLDatabaseColumnType.java similarity index 92% rename from dmp-backend/web/src/main/java/eu/eudat/typedefinition/PostgreSQLDatabaseColumnType.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/PostgreSQLDatabaseColumnType.java index fa2e379a2..bf8812277 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/PostgreSQLDatabaseColumnType.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/PostgreSQLDatabaseColumnType.java @@ -1,4 +1,4 @@ -package eu.eudat.typedefinition; +package eu.eudat.configurations.typedefinition; public class PostgreSQLDatabaseColumnType implements DatabaseColumnType { diff --git a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/UUIDType.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/UUIDType.java similarity index 98% rename from dmp-backend/web/src/main/java/eu/eudat/typedefinition/UUIDType.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/UUIDType.java index 89af38ff0..551a8d6c0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/UUIDType.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/UUIDType.java @@ -1,4 +1,4 @@ -package eu.eudat.typedefinition; +package eu.eudat.configurations.typedefinition; import org.hibernate.HibernateException; import org.hibernate.engine.spi.SharedSessionContractImplementor; diff --git a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/XMLType.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/XMLType.java similarity index 98% rename from dmp-backend/web/src/main/java/eu/eudat/typedefinition/XMLType.java rename to dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/XMLType.java index bc8f90fd3..8ac8be93a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/typedefinition/XMLType.java +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/typedefinition/XMLType.java @@ -1,4 +1,4 @@ -package eu.eudat.typedefinition; +package eu.eudat.configurations.typedefinition; import org.hibernate.HibernateException; import org.hibernate.engine.spi.SharedSessionContractImplementor; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java index 71b9f2d01..0fac64e6a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java @@ -1,11 +1,11 @@ package eu.eudat.controllers; -import eu.eudat.managers.AdminManager; -import eu.eudat.models.admin.composite.DatasetProfile; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.security.Principal; -import eu.eudat.security.claims.ClaimedAuthorities; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.managers.AdminManager; +import eu.eudat.models.data.admin.composite.DatasetProfile; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.claims.ClaimedAuthorities; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -62,7 +62,7 @@ public class Admin extends BaseController { public ResponseEntity> get(@PathVariable String id, @ClaimedAuthorities(claims = {ADMIN}) Principal principal) { try { eu.eudat.data.entities.DatasetProfile profile = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); - eu.eudat.models.admin.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile); + eu.eudat.models.data.admin.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile); datasetprofile.setLabel(profile.getLabel()); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE).payload(datasetprofile)); } catch (Exception ex) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/BaseController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/BaseController.java index f89757ede..54bc1a41d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/BaseController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/BaseController.java @@ -1,7 +1,7 @@ package eu.eudat.controllers; -import eu.eudat.services.ApiContext; -import eu.eudat.validators.*; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.models.validators.*; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/CommonController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/CommonController.java index 25e8706db..5dcda39cb 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/CommonController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/CommonController.java @@ -1,11 +1,11 @@ package eu.eudat.controllers; -import eu.eudat.dynamicproject.DynamicProjectConfiguration; -import eu.eudat.dynamicproject.entities.Language; -import eu.eudat.managers.CommonsManager; -import eu.eudat.models.externalurl.ExternalSourcesConfiguration; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.proxy.config.configloaders.ConfigLoader; +import eu.eudat.configurations.dynamicproject.DynamicProjectConfiguration; +import eu.eudat.configurations.dynamicproject.entities.Language; +import eu.eudat.logic.managers.CommonsManager; +import eu.eudat.models.data.externalurl.ExternalSourcesConfiguration; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.logic.proxy.config.configloaders.ConfigLoader; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPProfileController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPProfileController.java index cd17bb4d9..ea9549d8e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPProfileController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPProfileController.java @@ -1,15 +1,14 @@ package eu.eudat.controllers; -import eu.eudat.data.entities.DMP; import eu.eudat.data.entities.DMPProfile; import eu.eudat.data.query.items.item.dmpprofile.DataManagementPlanProfileCriteriaRequest; import eu.eudat.data.query.items.table.dmpprofile.DataManagementPlanProfileTableRequest; -import eu.eudat.managers.DataManagementProfileManager; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.listingmodels.DataManagementPlanProfileListingModel; -import eu.eudat.models.security.Principal; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.managers.DataManagementProfileManager; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.listingmodels.DataManagementPlanProfileListingModel; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java index de17ed3c3..fceb66f96 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java @@ -6,19 +6,18 @@ import eu.eudat.data.dao.criteria.RequestItem; import eu.eudat.data.entities.DMP; import eu.eudat.data.query.items.item.dmp.DataManagementPlanCriteriaRequest; import eu.eudat.data.query.items.table.dmp.DataManagementPlanTableRequest; -import eu.eudat.dynamicproject.DynamicProjectConfiguration; +import eu.eudat.configurations.dynamicproject.DynamicProjectConfiguration; import eu.eudat.exceptions.datamanagementplan.DMPWithDatasetsException; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.managers.DataManagementPlanManager; -import eu.eudat.models.dmp.DataManagementPlan; -import eu.eudat.models.helpermodels.Tuple; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.listingmodels.DataManagementPlanListingModel; -import eu.eudat.models.security.Principal; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.managers.DataManagementPlanManager; +import eu.eudat.models.data.dmp.DataManagementPlan; +import eu.eudat.models.data.helpermodels.Tuple; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.listingmodels.DataManagementPlanListingModel; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; -import eu.eudat.utilities.interfaces.Applier; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -26,7 +25,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; -import java.util.LinkedList; import java.util.List; import java.util.UUID; @@ -60,7 +58,7 @@ public class DMPs extends BaseController { public @ResponseBody ResponseEntity> getSingle(@PathVariable String id, Principal principal) { try { - eu.eudat.models.dmp.DataManagementPlan dataManagementPlan = new DataManagementPlanManager().getSingle(this.getApiContext().getOperationsContext().getDatabaseRepository().getDmpDao(), id, principal, this.dynamicProjectConfiguration); + eu.eudat.models.data.dmp.DataManagementPlan dataManagementPlan = new DataManagementPlanManager().getSingle(this.getApiContext().getOperationsContext().getDatabaseRepository().getDmpDao(), id, principal, this.dynamicProjectConfiguration); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE).payload(dataManagementPlan)); }catch (UnauthorisedException ex) { @@ -75,7 +73,7 @@ public class DMPs extends BaseController { @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/dmps/createOrUpdate"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> createOrUpdate(@RequestBody eu.eudat.models.dmp.DataManagementPlan dataManagementPlan, Principal principal) { + ResponseEntity> createOrUpdate(@RequestBody eu.eudat.models.data.dmp.DataManagementPlan dataManagementPlan, Principal principal) { try { DataManagementPlanManager.createOrUpdate(this.getApiContext(), dataManagementPlan, principal); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created")); @@ -87,7 +85,7 @@ public class DMPs extends BaseController { @RequestMapping(method = RequestMethod.POST, value = {"/dmps/new/{id}"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> newVersion(@PathVariable UUID id, @Valid @RequestBody eu.eudat.models.dmp.DataManagementPlanNewVersionModel dataManagementPlan, Principal principal) { + ResponseEntity> newVersion(@PathVariable UUID id, @Valid @RequestBody eu.eudat.models.data.dmp.DataManagementPlanNewVersionModel dataManagementPlan, Principal principal) { try { DataManagementPlanManager.newVersion(this.getApiContext(), id, dataManagementPlan, principal); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE)); @@ -99,7 +97,7 @@ public class DMPs extends BaseController { @RequestMapping(method = RequestMethod.POST, value = {"/dmps/clone/{id}"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> clone(@PathVariable UUID id, @RequestBody eu.eudat.models.dmp.DataManagementPlanNewVersionModel dataManagementPlan, Principal principal) { + ResponseEntity> clone(@PathVariable UUID id, @RequestBody eu.eudat.models.data.dmp.DataManagementPlanNewVersionModel dataManagementPlan, Principal principal) { try { DataManagementPlanManager.clone(this.getApiContext(), id, dataManagementPlan, principal); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE)); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DashBoardController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DashBoardController.java index f7d77b5fa..4155b4082 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DashBoardController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DashBoardController.java @@ -1,11 +1,11 @@ package eu.eudat.controllers; -import eu.eudat.managers.DashBoardManager; -import eu.eudat.models.dashboard.recent.RecentActivity; -import eu.eudat.models.dashboard.statistics.DashBoardStatistics; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.security.Principal; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.managers.DashBoardManager; +import eu.eudat.models.data.dashboard.recent.RecentActivity; +import eu.eudat.models.data.dashboard.statistics.DashBoardStatistics; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java index 321561bd5..bfbac37e5 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java @@ -1,9 +1,9 @@ package eu.eudat.controllers; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfileController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfileController.java index 10ad0f948..14f0e7cab 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfileController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfileController.java @@ -1,15 +1,15 @@ package eu.eudat.controllers; import eu.eudat.data.dao.criteria.RequestItem; -import eu.eudat.managers.DatasetProfileManager; -import eu.eudat.managers.UserManager; -import eu.eudat.models.components.commons.datafield.AutoCompleteData; -import eu.eudat.models.helpermodels.Tuple; -import eu.eudat.models.helpers.common.AutoCompleteLookupItem; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.properties.PropertiesModel; -import eu.eudat.models.user.composite.PagedDatasetProfile; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.managers.DatasetProfileManager; +import eu.eudat.logic.managers.UserManager; +import eu.eudat.models.data.components.commons.datafield.AutoCompleteData; +import eu.eudat.models.data.helpermodels.Tuple; +import eu.eudat.models.data.helpers.common.AutoCompleteLookupItem; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.properties.PropertiesModel; +import eu.eudat.models.data.user.composite.PagedDatasetProfile; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; @@ -17,7 +17,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; -import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.List; @@ -38,7 +37,7 @@ public class DatasetProfileController extends BaseController { public ResponseEntity> getSingle(@PathVariable String id) { try { eu.eudat.data.entities.DatasetProfile profile = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); - eu.eudat.models.user.composite.DatasetProfile datasetprofile = UserManager.generateDatasetProfileModel(profile); + eu.eudat.models.data.user.composite.DatasetProfile datasetprofile = UserManager.generateDatasetProfileModel(profile); PagedDatasetProfile pagedDatasetProfile = new PagedDatasetProfile(); pagedDatasetProfile.buildPagedDatasetProfile(datasetprofile); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE).payload(pagedDatasetProfile)); @@ -70,7 +69,7 @@ public class DatasetProfileController extends BaseController { public ResponseEntity getDataForAutocomplete(@RequestBody RequestItem lookupItem) { try { eu.eudat.data.entities.Dataset dataset = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetDao().find(UUID.fromString(lookupItem.getCriteria().getProfileID())); - eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field modelfield = DatasetProfileManager.queryForField(dataset.getProfile().getDefinition(), lookupItem.getCriteria().getFieldID()); + eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field modelfield = DatasetProfileManager.queryForField(dataset.getProfile().getDefinition(), lookupItem.getCriteria().getFieldID()); AutoCompleteData data = (AutoCompleteData) modelfield.getData(); List> items = DatasetProfileManager.getAutocomplete(data,lookupItem.getCriteria().getLike()); return ResponseEntity.status(HttpStatus.OK).body(items); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfiles.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfiles.java index 06f5f9d79..5c1eec2ea 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfiles.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetProfiles.java @@ -1,13 +1,13 @@ package eu.eudat.controllers; -import eu.eudat.managers.DatasetProfileManager; -import eu.eudat.models.datasetprofile.DatasetProfileAutocompleteItem; +import eu.eudat.logic.managers.DatasetProfileManager; +import eu.eudat.models.data.datasetprofile.DatasetProfileAutocompleteItem; import eu.eudat.data.query.items.item.datasetprofile.DatasetProfileAutocompleteRequest; -import eu.eudat.models.datasetprofile.DatasetProfileListingModel; +import eu.eudat.models.data.datasetprofile.DatasetProfileListingModel; import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java index 95509fa2a..2e04b02c5 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java @@ -1,17 +1,17 @@ package eu.eudat.controllers; -import eu.eudat.documents.helpers.FileEnvelope; +import eu.eudat.logic.utilities.documents.helpers.FileEnvelope; import eu.eudat.data.entities.Dataset; -import eu.eudat.managers.DatasetManager; -import eu.eudat.managers.DatasetWizardManager; -import eu.eudat.models.datasetwizard.DataManagentPlanListingModel; +import eu.eudat.logic.managers.DatasetManager; +import eu.eudat.logic.managers.DatasetWizardManager; +import eu.eudat.models.data.datasetwizard.DataManagentPlanListingModel; import eu.eudat.data.query.items.item.datasetprofile.DatasetProfileWizardAutocompleteRequest; import eu.eudat.data.query.items.item.dataset.DatasetWizardAutocompleteRequest; -import eu.eudat.models.datasetwizard.DatasetWizardModel; -import eu.eudat.models.dmp.AssociatedProfile; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.security.Principal; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.datasetwizard.DatasetWizardModel; +import eu.eudat.models.data.dmp.AssociatedProfile; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.apache.poi.util.IOUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Datasets.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Datasets.java index 533c18e5a..589a488f8 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Datasets.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Datasets.java @@ -1,13 +1,13 @@ package eu.eudat.controllers; import eu.eudat.data.entities.Dataset; -import eu.eudat.managers.DatasetManager; +import eu.eudat.logic.managers.DatasetManager; import eu.eudat.data.query.items.table.dataset.DatasetTableRequest; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.listingmodels.DatasetListingModel; -import eu.eudat.models.security.Principal; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.listingmodels.DatasetListingModel; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java index b4da125f7..b702534e3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java @@ -1,12 +1,12 @@ package eu.eudat.controllers; import eu.eudat.data.query.items.table.externaldataset.ExternalDatasetTableRequest; -import eu.eudat.managers.ExternalDatasetManager; -import eu.eudat.models.externaldataset.ExternalDatasetListingModel; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.security.Principal; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.managers.ExternalDatasetManager; +import eu.eudat.models.data.externaldataset.ExternalDatasetListingModel; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/FileController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/FileController.java index 4ac331a0c..0ef2c7a03 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/FileController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/FileController.java @@ -1,9 +1,9 @@ package eu.eudat.controllers; -import eu.eudat.managers.FileManager; -import eu.eudat.models.files.ContentFile; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.managers.FileManager; +import eu.eudat.models.data.files.ContentFile; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Login.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Login.java index c7f25e294..520c21837 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Login.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Login.java @@ -2,17 +2,17 @@ package eu.eudat.controllers; import eu.eudat.core.logger.Logger; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.managers.UserManager; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.login.Credentials; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.security.Principal; -import eu.eudat.security.CustomAuthenticationProvider; -import eu.eudat.security.validators.b2access.B2AccessTokenValidator; -import eu.eudat.security.validators.b2access.helpers.B2AccessRequest; -import eu.eudat.security.validators.b2access.helpers.B2AccessResponseToken; -import eu.eudat.security.validators.twitter.TwitterTokenValidator; -import eu.eudat.services.operations.AuthenticationServiceImpl; +import eu.eudat.logic.managers.UserManager; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.login.Credentials; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.CustomAuthenticationProvider; +import eu.eudat.logic.security.validators.b2access.B2AccessTokenValidator; +import eu.eudat.logic.security.validators.b2access.helpers.B2AccessRequest; +import eu.eudat.logic.security.validators.b2access.helpers.B2AccessResponseToken; +import eu.eudat.logic.security.validators.twitter.TwitterTokenValidator; +import eu.eudat.logic.services.operations.AuthenticationServiceImpl; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -21,6 +21,7 @@ import org.springframework.social.oauth1.OAuthToken; import org.springframework.web.bind.annotation.*; import javax.transaction.Transactional; +import java.security.GeneralSecurityException; @RestController @@ -40,7 +41,7 @@ public class Login { @Autowired public Login(CustomAuthenticationProvider customAuthenticationProvider, AuthenticationServiceImpl authenticationServiceImpl, - TwitterTokenValidator twitterTokenValidator, B2AccessTokenValidator b2AccessTokenValidator,Logger logger) { + TwitterTokenValidator twitterTokenValidator, B2AccessTokenValidator b2AccessTokenValidator, Logger logger) { this.customAuthenticationProvider = customAuthenticationProvider; this.authenticationServiceImpl = authenticationServiceImpl; this.twitterTokenValidator = twitterTokenValidator; @@ -51,15 +52,18 @@ public class Login { @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/externallogin"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> externallogin(@RequestBody LoginInfo credentials) { + ResponseEntity> externallogin(@RequestBody LoginInfo credentials) throws GeneralSecurityException { try { + this.logger.info(credentials, "Trying To Login With " + credentials.getProvider()); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(customAuthenticationProvider.authenticate(credentials)).status(ApiMessageCode.SUCCESS_MESSAGE)); } catch (UnauthorisedException ex) { + this.logger.info(ex, "Failed To Login"); throw ex; - } catch (Exception ex) { + }/* catch (Exception ex) { + this.logger.error(ex, ex.getMessage()); ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } + }*/ } @Transactional @@ -67,62 +71,66 @@ public class Login { public @ResponseBody ResponseEntity> nativelogin(@RequestBody Credentials credentials) { try { + this.logger.info(credentials.getUsername(), "Trying To Login"); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(UserManager.authenticate(this.authenticationServiceImpl, credentials)).status(ApiMessageCode.SUCCESS_MESSAGE)); } catch (UnauthorisedException ex) { + this.logger.info(ex, "Failed To Login"); throw ex; - } catch (Exception ex) { + }/* catch (Exception ex) { ex.printStackTrace(); + this.logger.error(ex, ex.getMessage()); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } + }*/ } @RequestMapping(method = RequestMethod.GET, value = {"/twitterRequestToken"}, produces = "application/json") public @ResponseBody ResponseEntity> twitterRequestToken() { - try { + //try { return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(this.twitterTokenValidator.getRequestToken()).status(ApiMessageCode.NO_MESSAGE)); - } catch (Exception ex) { + /*} catch (Exception ex) { ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } + }*/ } @RequestMapping(method = RequestMethod.POST, value = {"/b2AccessRequestToken"}, produces = "application/json", consumes = "application/json") public @ResponseBody ResponseEntity> b2AccessRequestToken(@RequestBody B2AccessRequest b2AccessRequest) { - try { + //try { return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(this.b2AccessTokenValidator.getAccessToken(b2AccessRequest)).status(ApiMessageCode.NO_MESSAGE)); - } catch (Exception ex) { + /*} catch (Exception ex) { ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } + }*/ } @RequestMapping(method = RequestMethod.POST, value = {"/me"}, consumes = "application/json", produces = "application/json") public @ResponseBody ResponseEntity> authMe(Principal principal) { - try { + //try { + this.logger.info(principal, "Getting Me"); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(this.authenticationServiceImpl.Touch(principal.getToken())).status(ApiMessageCode.NO_MESSAGE)); - - } catch (Exception ex) { + /*} catch (Exception ex) { + this.logger.debug(ex, ex.getMessage()); ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } + }*/ } @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/logout"}, consumes = "application/json", produces = "application/json") public @ResponseBody ResponseEntity> logout(Principal principal) { - try { + //try { this.authenticationServiceImpl.Logout(principal.getToken()); - this.logger.info(principal,"Logged Out"); + this.logger.info(principal, "Logged Out"); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE)); - } catch (Exception ex) { - this.logger.debug(ex,ex.getMessage()); + /*} catch (Exception ex) { + this.logger.debug(ex, ex.getMessage()); ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } + }*/ } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Organisations.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Organisations.java index f2f0c559c..25c7dbc38 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Organisations.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Organisations.java @@ -1,10 +1,10 @@ package eu.eudat.controllers; -import eu.eudat.models.external.OrganisationsExternalSourcesModel; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.external.OrganisationsExternalSourcesModel; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java index a4f40c12b..1c0a00c76 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java @@ -1,17 +1,17 @@ package eu.eudat.controllers; import eu.eudat.data.entities.Project; -import eu.eudat.managers.ProjectManager; -import eu.eudat.models.external.ProjectsExternalSourcesModel; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.helpers.responses.ResponseItem; +import eu.eudat.logic.managers.ProjectManager; +import eu.eudat.models.data.external.ProjectsExternalSourcesModel; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.helpers.responses.ResponseItem; import eu.eudat.data.query.items.item.project.ProjectCriteriaRequest; -import eu.eudat.models.project.ProjectListingModel; +import eu.eudat.models.data.project.ProjectListingModel; import eu.eudat.data.query.items.table.project.ProjectTableRequest; -import eu.eudat.models.security.Principal; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -38,32 +38,32 @@ public class Projects extends BaseController { public @ResponseBody ResponseEntity>> getPaged(@Valid @RequestBody ProjectTableRequest projectTableRequest, Principal principal) { try { - DataTableData dataTable = new ProjectManager().getPaged(this.getApiContext().getOperationsContext().getDatabaseRepository().getProjectDao(), projectTableRequest, principal); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); + DataTableData dataTable = new ProjectManager().getPaged(this.getApiContext().getOperationsContext().getDatabaseRepository().getProjectDao(), projectTableRequest, principal); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); } catch (Exception ex) { ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); } } @RequestMapping(method = RequestMethod.GET, value = {"/projects/getSingle/{id}"}, produces = "application/json") public @ResponseBody - ResponseEntity> getSingle(@PathVariable String id, Principal principal) { - try { - eu.eudat.models.project.Project project = new ProjectManager().getSingle(this.getApiContext().getOperationsContext().getDatabaseRepository().getProjectDao(), id); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(project).status(ApiMessageCode.NO_MESSAGE)); - } catch (Exception ex) { + ResponseEntity> getSingle(@PathVariable String id, Principal principal) throws IllegalAccessException, InstantiationException { + //try { + eu.eudat.models.data.project.Project project = new ProjectManager().getSingle(this.getApiContext().getOperationsContext().getDatabaseRepository().getProjectDao(), id); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(project).status(ApiMessageCode.NO_MESSAGE)); + /*} catch (Exception ex) { ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); + }*/ } @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/projects/createOrUpdate"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> addProject(@Valid @RequestBody eu.eudat.models.project.Project project, Principal principal) { + ResponseEntity> addProject(@Valid @RequestBody eu.eudat.models.data.project.Project project, Principal principal) { try { ProjectManager.createOrUpdate(this.getApiContext().getOperationsContext().getFileStorageService(), this.getApiContext().getOperationsContext().getDatabaseRepository().getProjectDao(), this.getApiContext().getOperationsContext().getDatabaseRepository().getContentDao(), this.getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao(), project, principal); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created")); @@ -89,25 +89,25 @@ public class Projects extends BaseController { @RequestMapping(method = RequestMethod.POST, value = {"/projects/getWithExternal"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity>> getWithExternal(@RequestBody ProjectCriteriaRequest projectCriteria, Principal principal) { + ResponseEntity>> getWithExternal(@RequestBody ProjectCriteriaRequest projectCriteria, Principal principal) { try { - List dataTable = new ProjectManager().getCriteriaWithExternal(this.getApiContext(), projectCriteria, this.getApiContext().getOperationsContext().getRemoteFetcher()); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); + List dataTable = new ProjectManager().getCriteriaWithExternal(this.getApiContext(), projectCriteria, this.getApiContext().getOperationsContext().getRemoteFetcher()); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); } catch (Exception ex) { ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); } } @RequestMapping(method = RequestMethod.POST, value = {"/projects/get"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity>> get(@RequestBody ProjectCriteriaRequest projectCriteria, Principal principal) { + ResponseEntity>> get(@RequestBody ProjectCriteriaRequest projectCriteria, Principal principal) { try { - List dataTable = new ProjectManager().getCriteria(this.getApiContext().getOperationsContext().getDatabaseRepository().getProjectDao(), projectCriteria, this.getApiContext().getOperationsContext().getRemoteFetcher()); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); + List dataTable = new ProjectManager().getCriteria(this.getApiContext().getOperationsContext().getDatabaseRepository().getProjectDao(), projectCriteria, this.getApiContext().getOperationsContext().getRemoteFetcher()); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); } catch (Exception ex) { ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java index 802e35b94..9a370bf01 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java @@ -1,10 +1,10 @@ package eu.eudat.controllers; -import eu.eudat.models.external.RegistriesExternalSourcesModel; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.external.RegistriesExternalSourcesModel; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Researchers.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Researchers.java index aeca7dfd6..c0a1d9919 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Researchers.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Researchers.java @@ -1,15 +1,15 @@ package eu.eudat.controllers; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.managers.ResearcherManager; -import eu.eudat.models.dmp.Researcher; -import eu.eudat.models.external.ResearchersExternalSourcesModel; -import eu.eudat.models.helpers.responses.ResponseItem; +import eu.eudat.logic.managers.ResearcherManager; +import eu.eudat.models.data.dmp.Researcher; +import eu.eudat.models.data.external.ResearchersExternalSourcesModel; +import eu.eudat.models.data.helpers.responses.ResponseItem; import eu.eudat.data.query.items.item.researcher.ResearcherCriteriaRequest; -import eu.eudat.models.security.Principal; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -51,20 +51,20 @@ public class Researchers extends BaseController { @RequestMapping(method = RequestMethod.POST, value = {"/researchers/getWithExternal"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity>> getWithExternal(@RequestBody ResearcherCriteriaRequest researcherCriteriaRequest, Principal principal) { + ResponseEntity>> getWithExternal(@RequestBody ResearcherCriteriaRequest researcherCriteriaRequest, Principal principal) { try { - List dataTable = new ResearcherManager().getCriteriaWithExternal(this.getApiContext(),this.getApiContext().getOperationsContext().getRemoteFetcher(), researcherCriteriaRequest); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); + List dataTable = new ResearcherManager().getCriteriaWithExternal(this.getApiContext(),this.getApiContext().getOperationsContext().getRemoteFetcher(), researcherCriteriaRequest); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); } catch (Exception ex) { ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem>().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); } } @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/researchers/create"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> create(@RequestBody eu.eudat.models.researcher.Researcher researcher, Principal principal) { + ResponseEntity> create(@RequestBody eu.eudat.models.data.researcher.Researcher researcher, Principal principal) { try { ResearcherManager.create(this.getApiContext(), researcher); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE)); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java index 6192f333c..c8aa5bd29 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java @@ -1,10 +1,10 @@ package eu.eudat.controllers; -import eu.eudat.models.external.ServiceExternalSourcesModel; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.external.ServiceExternalSourcesModel; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/UserInvitationController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/UserInvitationController.java index 8bb778adb..7cc180fd4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/UserInvitationController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/UserInvitationController.java @@ -1,13 +1,13 @@ package eu.eudat.controllers; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.managers.InvitationsManager; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.invitation.Invitation; -import eu.eudat.models.security.Principal; -import eu.eudat.models.userinfo.UserInfoInvitationModel; +import eu.eudat.logic.managers.InvitationsManager; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.invitation.Invitation; +import eu.eudat.models.data.security.Principal; +import eu.eudat.models.data.userinfo.UserInfoInvitationModel; import eu.eudat.data.query.items.item.userinfo.UserInfoRequestItem; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Users.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Users.java index 99294d5e1..3bd2dcc57 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Users.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Users.java @@ -1,13 +1,13 @@ package eu.eudat.controllers; -import eu.eudat.managers.UserManager; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.models.security.Principal; +import eu.eudat.logic.managers.UserManager; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.models.data.security.Principal; import eu.eudat.data.query.items.table.userinfo.UserInfoTableRequestItem; -import eu.eudat.models.userinfo.UserListingModel; -import eu.eudat.security.claims.ClaimedAuthorities; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.userinfo.UserListingModel; +import eu.eudat.logic.security.claims.ClaimedAuthorities; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerErrorHandler.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerErrorHandler.java index 41268c59e..8c0cf0479 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerErrorHandler.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerErrorHandler.java @@ -1,64 +1,45 @@ package eu.eudat.controllers.controllerhandler; -import eu.eudat.models.errormodels.ValidationErrorContext; -import eu.eudat.models.helpers.responses.ResponseItem; -import eu.eudat.types.ApiMessageCode; +import eu.eudat.core.logger.Logger; +import eu.eudat.core.models.exception.ApiExceptionLoggingModel; +import eu.eudat.models.data.security.Principal; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.MessageSource; -import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.http.HttpStatus; -import org.springframework.validation.BindingResult; -import org.springframework.validation.FieldError; -import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; +import types.LoggingType; -import java.util.List; -import java.util.Locale; - +import java.util.HashMap; +import java.util.Map; +/** + * Created by ikalyvas on 6/12/2018. + */ @ControllerAdvice public class ControllerErrorHandler { - private MessageSource messageSource; + private Logger logger; @Autowired - public ControllerErrorHandler(MessageSource messageSource) { - this.messageSource = messageSource; + public ControllerErrorHandler(Logger logger) { + this.logger = logger; } - @ExceptionHandler(MethodArgumentNotValidException.class) + @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseBody - public ResponseItem processValidationError(MethodArgumentNotValidException ex) { - BindingResult result = ex.getBindingResult(); - List fieldErrors = result.getFieldErrors(); - - return processFieldErrors(fieldErrors); - } - - private ResponseItem processFieldErrors(List fieldErrors) { - ValidationErrorContext dto = new ValidationErrorContext(); - - for (FieldError fieldError : fieldErrors) { - String localizedErrorMessage = resolveLocalizedErrorMessage(fieldError); - dto.addFieldError(fieldError.getField(), localizedErrorMessage); - } - - return new ResponseItem().status(ApiMessageCode.VALIDATION_MESSAGE).payload(dto); - } - - private String resolveLocalizedErrorMessage(FieldError fieldError) { - Locale currentLocale = LocaleContextHolder.getLocale(); - String localizedErrorMessage = messageSource.getMessage(fieldError, currentLocale); - - if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) { - String[] fieldErrorCodes = fieldError.getCodes(); - localizedErrorMessage = fieldErrorCodes[0]; - } - - return localizedErrorMessage; + public void processValidationError(Principal principal, Exception ex) throws Exception { + ApiExceptionLoggingModel apiExceptionLoggingModel = new ApiExceptionLoggingModel<>(); + apiExceptionLoggingModel.setCode(HttpStatus.BAD_REQUEST); + apiExceptionLoggingModel.setUser(principal); + Map exceptionMap = new HashMap<>(); + exceptionMap.put("exception",ex); + apiExceptionLoggingModel.setData(exceptionMap); + apiExceptionLoggingModel.setMessage(ex.getMessage()); + apiExceptionLoggingModel.setType(LoggingType.ERROR); + this.logger.error(apiExceptionLoggingModel); + return; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerUnauthorisedHandler.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerUnauthorisedHandler.java new file mode 100644 index 000000000..ba89aa83e --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerUnauthorisedHandler.java @@ -0,0 +1,32 @@ +package eu.eudat.controllers.controllerhandler; + +import eu.eudat.core.logger.Logger; +import eu.eudat.exceptions.security.UnauthorisedException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +/** + * Created by ikalyvas on 6/12/2018. + */ +@ControllerAdvice +public class ControllerUnauthorisedHandler { + + private Logger logger; + + @Autowired + public ControllerUnauthorisedHandler(Logger logger) { + this.logger = logger; + } + + @ExceptionHandler(UnauthorisedException.class) + @ResponseStatus(HttpStatus.UNAUTHORIZED) + @ResponseBody + public void processValidationError(UnauthorisedException ex) { + this.logger.error(ex, ex.getMessage()); + return; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerValidatorErrorHandler.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerValidatorErrorHandler.java new file mode 100644 index 000000000..5edafa4b6 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerValidatorErrorHandler.java @@ -0,0 +1,64 @@ +package eu.eudat.controllers.controllerhandler; + +import eu.eudat.models.data.errormodels.ValidationErrorContext; +import eu.eudat.models.data.helpers.responses.ResponseItem; +import eu.eudat.types.ApiMessageCode; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.http.HttpStatus; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +import java.util.List; +import java.util.Locale; + + +@ControllerAdvice +public class ControllerValidatorErrorHandler { + + private MessageSource messageSource; + + @Autowired + public ControllerValidatorErrorHandler(MessageSource messageSource) { + this.messageSource = messageSource; + } + + @ExceptionHandler(MethodArgumentNotValidException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ResponseBody + public ResponseItem processValidationError(MethodArgumentNotValidException ex) { + BindingResult result = ex.getBindingResult(); + List fieldErrors = result.getFieldErrors(); + + return processFieldErrors(fieldErrors); + } + + private ResponseItem processFieldErrors(List fieldErrors) { + ValidationErrorContext dto = new ValidationErrorContext(); + + for (FieldError fieldError : fieldErrors) { + String localizedErrorMessage = resolveLocalizedErrorMessage(fieldError); + dto.addFieldError(fieldError.getField(), localizedErrorMessage); + } + + return new ResponseItem().status(ApiMessageCode.VALIDATION_MESSAGE).payload(dto); + } + + private String resolveLocalizedErrorMessage(FieldError fieldError) { + Locale currentLocale = LocaleContextHolder.getLocale(); + String localizedErrorMessage = messageSource.getMessage(fieldError, currentLocale); + + if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) { + String[] fieldErrorCodes = fieldError.getCodes(); + localizedErrorMessage = fieldErrorCodes[0]; + } + + return localizedErrorMessage; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/interceptors/RequestInterceptor.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/interceptors/RequestInterceptor.java index 015377d74..7bf712829 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/interceptors/RequestInterceptor.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/interceptors/RequestInterceptor.java @@ -1,6 +1,6 @@ package eu.eudat.controllers.interceptors; -import eu.eudat.services.helpers.LoggerService; +import eu.eudat.logic.services.helpers.LoggerService; import eu.eudat.types.WarningLevel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/Builder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/Builder.java similarity index 77% rename from dmp-backend/web/src/main/java/eu/eudat/builders/Builder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/Builder.java index 09eab8aac..daf57400b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/Builder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/Builder.java @@ -1,4 +1,4 @@ -package eu.eudat.builders; +package eu.eudat.logic.builders; /** * Created by ikalyvas on 2/15/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/BuilderFactory.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/BuilderFactory.java similarity index 80% rename from dmp-backend/web/src/main/java/eu/eudat/builders/BuilderFactory.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/BuilderFactory.java index 41fce776e..06f94723a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/BuilderFactory.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/BuilderFactory.java @@ -1,4 +1,4 @@ -package eu.eudat.builders; +package eu.eudat.logic.builders; /** * Created by ikalyvas on 2/15/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/BuilderFactoryImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/BuilderFactoryImpl.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/builders/BuilderFactoryImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/BuilderFactoryImpl.java index f1f1e188f..59327ceae 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/BuilderFactoryImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/BuilderFactoryImpl.java @@ -1,10 +1,10 @@ -package eu.eudat.builders; +package eu.eudat.logic.builders; -import eu.eudat.builders.entity.*; -import eu.eudat.builders.model.criteria.DataRepositoryCriteriaBuilder; -import eu.eudat.builders.model.criteria.ExternalDatasetCriteriaBuilder; -import eu.eudat.builders.model.criteria.RegistryCriteriaBuilder; -import eu.eudat.builders.model.models.*; +import eu.eudat.logic.builders.entity.*; +import eu.eudat.logic.builders.model.criteria.DataRepositoryCriteriaBuilder; +import eu.eudat.logic.builders.model.criteria.ExternalDatasetCriteriaBuilder; +import eu.eudat.logic.builders.model.criteria.RegistryCriteriaBuilder; +import eu.eudat.logic.builders.model.models.*; import org.springframework.stereotype.Service; /** diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/ContentBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/ContentBuilder.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/builders/entity/ContentBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/ContentBuilder.java index 26345fd59..1a41fb5c5 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/ContentBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/ContentBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.entity; +package eu.eudat.logic.builders.entity; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.Content; import java.util.UUID; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/CredentialBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/CredentialBuilder.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/builders/entity/CredentialBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/CredentialBuilder.java index 146405b70..a072d7f63 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/CredentialBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/CredentialBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.entity; +package eu.eudat.logic.builders.entity; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.Credential; import eu.eudat.data.entities.UserInfo; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/DatasetProfileBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/DatasetProfileBuilder.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/builders/entity/DatasetProfileBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/DatasetProfileBuilder.java index e344e21e6..a877e850b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/DatasetProfileBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/DatasetProfileBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.entity; +package eu.eudat.logic.builders.entity; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.Dataset; import eu.eudat.data.entities.DatasetProfile; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserInfoBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserInfoBuilder.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserInfoBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserInfoBuilder.java index 852293632..830262e58 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserInfoBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserInfoBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.entity; +package eu.eudat.logic.builders.entity; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.Credential; import eu.eudat.data.entities.DMP; import eu.eudat.data.entities.UserInfo; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserRoleBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserRoleBuilder.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserRoleBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserRoleBuilder.java index c27323014..e1d18b401 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserRoleBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserRoleBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.entity; +package eu.eudat.logic.builders.entity; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.UserInfo; import eu.eudat.data.entities.UserRole; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserTokenBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserTokenBuilder.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserTokenBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserTokenBuilder.java index 0d425d9a6..289b5304a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/entity/UserTokenBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/entity/UserTokenBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.entity; +package eu.eudat.logic.builders.entity; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.UserInfo; import eu.eudat.data.entities.UserToken; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/helpers/BuilderApplier.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/helpers/BuilderApplier.java similarity index 73% rename from dmp-backend/web/src/main/java/eu/eudat/builders/helpers/BuilderApplier.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/helpers/BuilderApplier.java index e1bf2301d..ccd11b77d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/helpers/BuilderApplier.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/helpers/BuilderApplier.java @@ -1,4 +1,4 @@ -package eu.eudat.builders.helpers; +package eu.eudat.logic.builders.helpers; /** * Created by ikalyvas on 3/15/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/DataRepositoryCriteriaBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/DataRepositoryCriteriaBuilder.java similarity index 86% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/DataRepositoryCriteriaBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/DataRepositoryCriteriaBuilder.java index 46401a036..eae4b0a94 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/DataRepositoryCriteriaBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/DataRepositoryCriteriaBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.model.criteria; +package eu.eudat.logic.builders.model.criteria; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.dao.criteria.DataRepositoryCriteria; /** diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/ExternalDatasetCriteriaBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/ExternalDatasetCriteriaBuilder.java similarity index 86% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/ExternalDatasetCriteriaBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/ExternalDatasetCriteriaBuilder.java index d0ba13b78..e6a99ae6a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/ExternalDatasetCriteriaBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/ExternalDatasetCriteriaBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.model.criteria; +package eu.eudat.logic.builders.model.criteria; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.dao.criteria.ExternalDatasetCriteria; /** diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/RegistryCriteriaBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/RegistryCriteriaBuilder.java similarity index 85% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/RegistryCriteriaBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/RegistryCriteriaBuilder.java index 09fae4838..d5121ae51 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/RegistryCriteriaBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/RegistryCriteriaBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.model.criteria; +package eu.eudat.logic.builders.model.criteria; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.dao.criteria.RegistryCriteria; /** diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/ServiceCriteriaBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/ServiceCriteriaBuilder.java similarity index 85% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/ServiceCriteriaBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/ServiceCriteriaBuilder.java index 750c814cd..1a5d1302c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/criteria/ServiceCriteriaBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/criteria/ServiceCriteriaBuilder.java @@ -1,6 +1,6 @@ -package eu.eudat.builders.model.criteria; +package eu.eudat.logic.builders.model.criteria; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.dao.criteria.ServiceCriteria; /** diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/DataTableDataBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/DataTableDataBuilder.java similarity index 82% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/models/DataTableDataBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/DataTableDataBuilder.java index 378242d60..edccfb614 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/DataTableDataBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/DataTableDataBuilder.java @@ -1,7 +1,7 @@ -package eu.eudat.builders.model.models; +package eu.eudat.logic.builders.model.models; -import eu.eudat.builders.Builder; -import eu.eudat.models.helpers.common.DataTableData; +import eu.eudat.logic.builders.Builder; +import eu.eudat.models.data.helpers.common.DataTableData; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/PrincipalBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/PrincipalBuilder.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/models/PrincipalBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/PrincipalBuilder.java index 2606ba2be..12bc35b6b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/PrincipalBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/PrincipalBuilder.java @@ -1,7 +1,7 @@ -package eu.eudat.builders.model.models; +package eu.eudat.logic.builders.model.models; -import eu.eudat.builders.Builder; -import eu.eudat.models.security.Principal; +import eu.eudat.logic.builders.Builder; +import eu.eudat.models.data.security.Principal; import eu.eudat.types.Authorities; import java.util.Date; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/ProjectBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/ProjectBuilder.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/models/ProjectBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/ProjectBuilder.java index 6de12fa5a..4f429cc55 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/ProjectBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/ProjectBuilder.java @@ -1,9 +1,9 @@ -package eu.eudat.builders.model.models; +package eu.eudat.logic.builders.model.models; -import eu.eudat.builders.Builder; +import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.UserInfo; -import eu.eudat.models.dmp.DataManagementPlan; -import eu.eudat.models.project.Project; +import eu.eudat.models.data.dmp.DataManagementPlan; +import eu.eudat.models.data.project.Project; import java.util.Date; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/RecentActivityDataBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/RecentActivityDataBuilder.java similarity index 87% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/models/RecentActivityDataBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/RecentActivityDataBuilder.java index 630bd52eb..61756e6be 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/RecentActivityDataBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/RecentActivityDataBuilder.java @@ -1,7 +1,7 @@ -package eu.eudat.builders.model.models; +package eu.eudat.logic.builders.model.models; -import eu.eudat.builders.Builder; -import eu.eudat.models.dashboard.recent.RecentActivityData; +import eu.eudat.logic.builders.Builder; +import eu.eudat.models.data.dashboard.recent.RecentActivityData; import java.util.Date; diff --git a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/ResearcherBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/ResearcherBuilder.java similarity index 89% rename from dmp-backend/web/src/main/java/eu/eudat/builders/model/models/ResearcherBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/ResearcherBuilder.java index 471629e4e..b5d924331 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/builders/model/models/ResearcherBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/ResearcherBuilder.java @@ -1,7 +1,7 @@ -package eu.eudat.builders.model.models; +package eu.eudat.logic.builders.model.models; -import eu.eudat.builders.Builder; -import eu.eudat.models.dmp.Researcher; +import eu.eudat.logic.builders.Builder; +import eu.eudat.models.data.dmp.Researcher; /** * Created by ikalyvas on 3/6/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/handlers/PrincipalArgumentResolver.java b/dmp-backend/web/src/main/java/eu/eudat/logic/handlers/PrincipalArgumentResolver.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/handlers/PrincipalArgumentResolver.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/handlers/PrincipalArgumentResolver.java index 5289f4e3b..22b7f1c8d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/handlers/PrincipalArgumentResolver.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/handlers/PrincipalArgumentResolver.java @@ -1,9 +1,9 @@ -package eu.eudat.handlers; +package eu.eudat.logic.handlers; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.models.security.Principal; -import eu.eudat.security.claims.ClaimedAuthorities; -import eu.eudat.services.operations.AuthenticationService; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.claims.ClaimedAuthorities; +import eu.eudat.logic.services.operations.AuthenticationService; import eu.eudat.types.Authorities; import org.springframework.core.MethodParameter; import org.springframework.web.bind.support.WebDataBinderFactory; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/AdminManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/AdminManager.java similarity index 52% rename from dmp-backend/web/src/main/java/eu/eudat/managers/AdminManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/AdminManager.java index 8feb4d88e..801dd9a96 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/AdminManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/AdminManager.java @@ -1,11 +1,11 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.entity.DatasetProfileBuilder; -import eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel; -import eu.eudat.models.admin.composite.DatasetProfile; -import eu.eudat.services.ApiContext; -import eu.eudat.utilities.builders.ModelBuilder; -import eu.eudat.utilities.builders.XmlBuilder; +import eu.eudat.logic.builders.entity.DatasetProfileBuilder; +import eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel; +import eu.eudat.models.data.admin.composite.DatasetProfile; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.utilities.builders.ModelBuilder; +import eu.eudat.logic.utilities.builders.XmlBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -15,8 +15,8 @@ public class AdminManager { public static eu.eudat.data.entities.DatasetProfile generateViewStyleDefinition(DatasetProfile profile, ApiContext apiContext) { ViewStyleModel viewStyleModel = new ViewStyleModel(); - viewStyleModel.setSections(new ModelBuilder().toViewStyleDefinition(profile.getSections(), eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Section.class)); - viewStyleModel.setPages(new ModelBuilder().toViewStyleDefinition(profile.getPages(), eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Page.class)); + viewStyleModel.setSections(new ModelBuilder().toViewStyleDefinition(profile.getSections(), eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Section.class)); + viewStyleModel.setPages(new ModelBuilder().toViewStyleDefinition(profile.getPages(), eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Page.class)); Document viewStyleDoc = XmlBuilder.getDocument(); Element elementViewStyle = viewStyleModel.toXml(viewStyleDoc); viewStyleDoc.appendChild(elementViewStyle); @@ -29,12 +29,12 @@ public class AdminManager { return datasetProfile; } - public static eu.eudat.models.admin.composite.DatasetProfile generateDatasetProfileModel(eu.eudat.data.entities.DatasetProfile profile) { + public static eu.eudat.models.data.admin.composite.DatasetProfile generateDatasetProfileModel(eu.eudat.data.entities.DatasetProfile profile) { Document viewStyleDoc = XmlBuilder.fromXml(profile.getDefinition()); Element root = viewStyleDoc.getDocumentElement(); - eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewstyle = new eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel().fromXml(root); + eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewstyle = new eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel().fromXml(root); - eu.eudat.models.admin.composite.DatasetProfile datasetprofile = new eu.eudat.models.admin.composite.DatasetProfile(); + eu.eudat.models.data.admin.composite.DatasetProfile datasetprofile = new eu.eudat.models.data.admin.composite.DatasetProfile(); datasetprofile.buildProfile(viewstyle); return datasetprofile; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/CommonsManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/CommonsManager.java similarity index 89% rename from dmp-backend/web/src/main/java/eu/eudat/managers/CommonsManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/CommonsManager.java index 390e08f98..19284f53e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/CommonsManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/CommonsManager.java @@ -1,7 +1,7 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.models.externalurl.ExternalSourcesConfiguration; -import eu.eudat.proxy.config.configloaders.ConfigLoader; +import eu.eudat.models.data.externalurl.ExternalSourcesConfiguration; +import eu.eudat.logic.proxy.config.configloaders.ConfigLoader; import java.util.stream.Collectors; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/DashBoardManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DashBoardManager.java similarity index 89% rename from dmp-backend/web/src/main/java/eu/eudat/managers/DashBoardManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/DashBoardManager.java index 82b301729..46432fbff 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/DashBoardManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DashBoardManager.java @@ -1,25 +1,18 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.model.models.RecentActivityDataBuilder; +import eu.eudat.logic.builders.model.models.RecentActivityDataBuilder; import eu.eudat.data.dao.entities.DMPDao; import eu.eudat.data.dao.entities.DatasetDao; import eu.eudat.data.dao.entities.ProjectDao; -import eu.eudat.data.entities.DMP; -import eu.eudat.data.entities.Dataset; import eu.eudat.data.entities.UserInfo; import eu.eudat.data.dao.criteria.DataManagementPlanCriteria; import eu.eudat.data.dao.criteria.DatasetCriteria; -import eu.eudat.data.query.definition.Query; -import eu.eudat.data.query.items.table.dataset.DatasetTableRequest; -import eu.eudat.models.dashboard.recent.RecentActivity; -import eu.eudat.models.dashboard.recent.RecentActivityData; -import eu.eudat.models.dashboard.statistics.DashBoardStatistics; -import eu.eudat.models.security.Principal; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.dashboard.recent.RecentActivity; +import eu.eudat.models.data.dashboard.recent.RecentActivityData; +import eu.eudat.models.data.dashboard.statistics.DashBoardStatistics; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.services.ApiContext; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedList; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/DataManagementPlanManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/managers/DataManagementPlanManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java index 1b0a9e22d..8ca498a76 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/DataManagementPlanManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java @@ -1,6 +1,6 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.entity.UserInfoBuilder; +import eu.eudat.logic.builders.entity.UserInfoBuilder; import eu.eudat.data.dao.criteria.DynamicFieldsCriteria; import eu.eudat.data.dao.criteria.OrganisationCriteria; import eu.eudat.data.dao.criteria.ProjectCriteria; @@ -9,21 +9,21 @@ import eu.eudat.data.dao.entities.*; import eu.eudat.data.entities.*; import eu.eudat.data.query.items.item.dmp.DataManagementPlanCriteriaRequest; import eu.eudat.data.query.items.table.dmp.DataManagementPlanTableRequest; -import eu.eudat.dynamicproject.DynamicProjectConfiguration; -import eu.eudat.dynamicproject.entities.Property; +import eu.eudat.configurations.dynamicproject.DynamicProjectConfiguration; +import eu.eudat.configurations.dynamicproject.entities.Property; import eu.eudat.exceptions.datamanagementplan.DMPWithDatasetsException; import eu.eudat.exceptions.security.UnauthorisedException; import eu.eudat.models.HintedModelFactory; -import eu.eudat.models.dmp.DataManagementPlan; -import eu.eudat.models.dmp.DataManagementPlanNewVersionModel; -import eu.eudat.models.dynamicfields.DynamicFieldWithValue; -import eu.eudat.models.helpermodels.Tuple; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.listingmodels.DataManagementPlanListingModel; -import eu.eudat.models.listingmodels.DatasetListingModel; -import eu.eudat.models.security.Principal; +import eu.eudat.models.data.dmp.DataManagementPlan; +import eu.eudat.models.data.dmp.DataManagementPlanNewVersionModel; +import eu.eudat.models.data.dynamicfields.DynamicFieldWithValue; +import eu.eudat.models.data.helpermodels.Tuple; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.listingmodels.DataManagementPlanListingModel; +import eu.eudat.models.data.listingmodels.DatasetListingModel; +import eu.eudat.models.data.security.Principal; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.services.ApiContext; import org.springframework.http.*; import org.springframework.scheduling.annotation.Async; import org.springframework.web.client.RestTemplate; @@ -55,11 +55,11 @@ public class DataManagementPlanManager { return dataTable; } - public eu.eudat.models.dmp.DataManagementPlan getSingle(DMPDao dmpsRepository, String id, Principal principal, DynamicProjectConfiguration dynamicProjectConfiguration) throws InstantiationException, IllegalAccessException { + public eu.eudat.models.data.dmp.DataManagementPlan getSingle(DMPDao dmpsRepository, String id, Principal principal, DynamicProjectConfiguration dynamicProjectConfiguration) throws InstantiationException, IllegalAccessException { DMP dataManagementPlanEntity = dmpsRepository.find(UUID.fromString(id)); if (dataManagementPlanEntity.getCreator().getId() != principal.getId() && dataManagementPlanEntity.getUsers().stream().filter(userInfo -> userInfo.getId() == principal.getId()).collect(Collectors.toList()).size() == 0) throw new UnauthorisedException(); - eu.eudat.models.dmp.DataManagementPlan datamanagementPlan = new eu.eudat.models.dmp.DataManagementPlan(); + eu.eudat.models.data.dmp.DataManagementPlan datamanagementPlan = new eu.eudat.models.data.dmp.DataManagementPlan(); datamanagementPlan.fromDataModel(dataManagementPlanEntity); Map dmpProperties = dataManagementPlanEntity.getDmpProperties() != null ? new org.json.JSONObject(dataManagementPlanEntity.getDmpProperties()).toMap() : null; datamanagementPlan.setDynamicFields(dynamicProjectConfiguration.getFields().stream().map(item -> { @@ -83,7 +83,7 @@ public class DataManagementPlanManager { public List getWithCriteria(DMPDao dmpsRepository, DataManagementPlanCriteriaRequest dataManagementPlanCriteria) throws IllegalAccessException, InstantiationException { QueryableList items = dmpsRepository.getWithCriteria(dataManagementPlanCriteria.getCriteria()); - List datamanagementPlans = items.select(item -> new DataManagementPlan().fromDataModel(item)); + List datamanagementPlans = items.select(item -> new DataManagementPlan().fromDataModel(item)); return datamanagementPlans; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/DataManagementProfileManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementProfileManager.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/managers/DataManagementProfileManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementProfileManager.java index 99d87931c..448478f6b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/DataManagementProfileManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementProfileManager.java @@ -1,16 +1,14 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; import eu.eudat.data.dao.entities.DMPProfileDao; import eu.eudat.data.entities.DMPProfile; import eu.eudat.data.query.items.item.dmpprofile.DataManagementPlanProfileCriteriaRequest; import eu.eudat.data.query.items.table.dmpprofile.DataManagementPlanProfileTableRequest; -import eu.eudat.models.HintedModelFactory; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.listingmodels.DataManagementPlanListingModel; -import eu.eudat.models.listingmodels.DataManagementPlanProfileListingModel; -import eu.eudat.models.security.Principal; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.listingmodels.DataManagementPlanProfileListingModel; +import eu.eudat.models.data.security.Principal; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.services.ApiContext; import java.util.List; import java.util.UUID; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/DatasetManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/managers/DatasetManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java index ff935c8b2..0e43a22ca 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/DatasetManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java @@ -1,25 +1,25 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.entity.UserInfoBuilder; +import eu.eudat.logic.builders.entity.UserInfoBuilder; import eu.eudat.data.dao.entities.*; import eu.eudat.data.entities.*; -import eu.eudat.documents.helpers.FileEnvelope; -import eu.eudat.documents.word.WordBuilder; -import eu.eudat.documents.xml.ExportXmlBuilder; +import eu.eudat.logic.utilities.documents.helpers.FileEnvelope; +import eu.eudat.logic.utilities.documents.word.WordBuilder; +import eu.eudat.logic.utilities.documents.xml.ExportXmlBuilder; import eu.eudat.models.HintedModelFactory; import eu.eudat.data.dao.criteria.DataRepositoryCriteria; import eu.eudat.data.dao.criteria.ExternalDatasetCriteria; import eu.eudat.data.dao.criteria.RegistryCriteria; import eu.eudat.data.dao.criteria.ServiceCriteria; import eu.eudat.data.query.items.table.dataset.DatasetTableRequest; -import eu.eudat.models.datasetwizard.DatasetWizardModel; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.listingmodels.DatasetListingModel; -import eu.eudat.models.security.Principal; -import eu.eudat.models.user.composite.PagedDatasetProfile; +import eu.eudat.models.data.datasetwizard.DatasetWizardModel; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.listingmodels.DatasetListingModel; +import eu.eudat.models.data.security.Principal; +import eu.eudat.models.data.user.composite.PagedDatasetProfile; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; -import eu.eudat.services.forms.VisibilityRuleService; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.forms.VisibilityRuleService; import org.apache.commons.io.IOUtils; import org.json.JSONObject; import org.springframework.core.env.Environment; @@ -71,7 +71,7 @@ public class DatasetManager { } private PagedDatasetProfile getPagedProfile(DatasetWizardModel dataset, eu.eudat.data.entities.Dataset datasetEntity) { - eu.eudat.models.user.composite.DatasetProfile datasetprofile = UserManager.generateDatasetProfileModel(datasetEntity.getProfile()); + eu.eudat.models.data.user.composite.DatasetProfile datasetprofile = UserManager.generateDatasetProfileModel(datasetEntity.getProfile()); datasetprofile.setStatus(dataset.getStatus()); if (datasetEntity.getProperties() != null) { JSONObject jobject = new JSONObject(datasetEntity.getProperties()); diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/DatasetProfileManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java similarity index 82% rename from dmp-backend/web/src/main/java/eu/eudat/managers/DatasetProfileManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java index 346ec4afe..a46f25c5f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/DatasetProfileManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java @@ -1,21 +1,21 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; -import eu.eudat.builders.model.models.DataTableDataBuilder; +import eu.eudat.logic.builders.model.models.DataTableDataBuilder; import eu.eudat.data.dao.entities.DatasetProfileDao; import eu.eudat.data.entities.DatasetProfile; import eu.eudat.data.query.items.item.datasetprofile.DatasetProfileAutocompleteRequest; import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem; -import eu.eudat.models.components.commons.datafield.AutoCompleteData; -import eu.eudat.models.datasetprofile.DatasetProfileAutocompleteItem; -import eu.eudat.models.datasetprofile.DatasetProfileListingModel; -import eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field; -import eu.eudat.models.helpermodels.Tuple; -import eu.eudat.models.helpers.common.DataTableData; +import eu.eudat.models.data.components.commons.datafield.AutoCompleteData; +import eu.eudat.models.data.datasetprofile.DatasetProfileAutocompleteItem; +import eu.eudat.models.data.datasetprofile.DatasetProfileListingModel; +import eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field; +import eu.eudat.models.data.helpermodels.Tuple; +import eu.eudat.models.data.helpers.common.DataTableData; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; -import eu.eudat.utilities.builders.XmlBuilder; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.utilities.builders.XmlBuilder; import org.springframework.http.*; import org.springframework.web.client.RestTemplate; import org.w3c.dom.Document; @@ -49,8 +49,8 @@ public class DatasetProfileManager { return datasetProfiles; } - public static eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field queryForField(String xml, String fieldId) throws XPathExpressionException { - eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field field = new Field(); + public static eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field queryForField(String xml, String fieldId) throws XPathExpressionException { + eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field field = new Field(); Document document = XmlBuilder.fromXml(xml); XPathFactory xpathFactory = XPathFactory.newInstance(); XPath xpath = xpathFactory.newXPath(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/DatasetWizardManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetWizardManager.java similarity index 86% rename from dmp-backend/web/src/main/java/eu/eudat/managers/DatasetWizardManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetWizardManager.java index 0f9688417..ac61b6f56 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/DatasetWizardManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetWizardManager.java @@ -1,15 +1,15 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; import eu.eudat.data.dao.entities.DMPDao; import eu.eudat.data.entities.DMP; import eu.eudat.data.entities.UserInfo; -import eu.eudat.models.datasetwizard.DataManagentPlanListingModel; +import eu.eudat.models.data.datasetwizard.DataManagentPlanListingModel; import eu.eudat.data.query.items.item.datasetprofile.DatasetProfileWizardAutocompleteRequest; import eu.eudat.data.query.items.item.dataset.DatasetWizardAutocompleteRequest; -import eu.eudat.models.dmp.AssociatedProfile; -import eu.eudat.models.dmp.DataManagementPlan; -import eu.eudat.models.security.Principal; +import eu.eudat.models.data.dmp.AssociatedProfile; +import eu.eudat.models.data.dmp.DataManagementPlan; +import eu.eudat.models.data.security.Principal; import eu.eudat.queryable.QueryableList; import java.util.LinkedList; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/ExternalDatasetManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ExternalDatasetManager.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/managers/ExternalDatasetManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/ExternalDatasetManager.java index d38bbf1ab..7a2fa9d4f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/ExternalDatasetManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ExternalDatasetManager.java @@ -1,18 +1,18 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.model.criteria.ExternalDatasetCriteriaBuilder; -import eu.eudat.builders.model.models.DataTableDataBuilder; +import eu.eudat.logic.builders.model.criteria.ExternalDatasetCriteriaBuilder; +import eu.eudat.logic.builders.model.models.DataTableDataBuilder; import eu.eudat.data.dao.entities.ExternalDatasetDao; import eu.eudat.data.entities.ExternalDataset; import eu.eudat.data.dao.criteria.ExternalDatasetCriteria; -import eu.eudat.models.externaldataset.ExternalDatasetListingModel; +import eu.eudat.models.data.externaldataset.ExternalDatasetListingModel; import eu.eudat.data.query.items.table.externaldataset.ExternalDatasetTableRequest; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.proxy.fetching.RemoteFetcher; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.proxy.fetching.RemoteFetcher; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.services.ApiContext; import java.util.List; import java.util.UUID; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/FileManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FileManager.java similarity index 82% rename from dmp-backend/web/src/main/java/eu/eudat/managers/FileManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/FileManager.java index 33f7934fc..823cffc17 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/FileManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FileManager.java @@ -1,7 +1,7 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.models.files.ContentFile; -import eu.eudat.services.helpers.FileStorageService; +import eu.eudat.models.data.files.ContentFile; +import eu.eudat.logic.services.helpers.FileStorageService; import org.springframework.core.io.Resource; import org.springframework.web.multipart.MultipartFile; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/InvitationsManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/InvitationsManager.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/managers/InvitationsManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/InvitationsManager.java index e68c9ddff..a31b0a220 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/InvitationsManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/InvitationsManager.java @@ -1,14 +1,14 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; import eu.eudat.data.entities.DMP; import eu.eudat.data.entities.UserInfo; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.models.invitation.Invitation; -import eu.eudat.models.security.Principal; -import eu.eudat.models.userinfo.UserInfoInvitationModel; +import eu.eudat.models.data.invitation.Invitation; +import eu.eudat.models.data.security.Principal; +import eu.eudat.models.data.userinfo.UserInfoInvitationModel; import eu.eudat.data.query.items.item.userinfo.UserInfoRequestItem; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.services.ApiContext; import java.util.List; import java.util.UUID; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/PaginationManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/PaginationManager.java similarity index 98% rename from dmp-backend/web/src/main/java/eu/eudat/managers/PaginationManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/PaginationManager.java index 3d9a65861..dd5bc24c2 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/PaginationManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/PaginationManager.java @@ -1,4 +1,4 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; import eu.eudat.data.query.definition.TableQuery; import eu.eudat.data.query.definition.helpers.ColumnOrderings; diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/ProjectManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java similarity index 70% rename from dmp-backend/web/src/main/java/eu/eudat/managers/ProjectManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java index e1f2f694a..310f53160 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/ProjectManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java @@ -1,7 +1,7 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.entity.ContentBuilder; -import eu.eudat.builders.model.models.ProjectBuilder; +import eu.eudat.logic.builders.entity.ContentBuilder; +import eu.eudat.logic.builders.model.models.ProjectBuilder; import eu.eudat.data.dao.entities.ContentDao; import eu.eudat.data.dao.entities.ProjectDao; import eu.eudat.data.dao.entities.UserInfoDao; @@ -9,21 +9,21 @@ import eu.eudat.data.entities.Content; import eu.eudat.data.entities.DMP; import eu.eudat.exceptions.files.TempFileNotFoundException; import eu.eudat.models.HintedModelFactory; -import eu.eudat.models.external.ExternalSourcesItemModel; -import eu.eudat.models.external.ProjectsExternalSourcesModel; -import eu.eudat.models.files.ContentFile; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.project.Project; +import eu.eudat.models.data.external.ExternalSourcesItemModel; +import eu.eudat.models.data.external.ProjectsExternalSourcesModel; +import eu.eudat.models.data.files.ContentFile; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.project.Project; import eu.eudat.data.query.items.item.project.ProjectCriteriaRequest; -import eu.eudat.models.project.ProjectListingModel; +import eu.eudat.models.data.project.ProjectListingModel; import eu.eudat.data.query.items.table.project.ProjectTableRequest; -import eu.eudat.models.security.Principal; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.proxy.fetching.RemoteFetcher; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.proxy.fetching.RemoteFetcher; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; -import eu.eudat.services.helpers.FileStorageService; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.helpers.FileStorageService; import java.io.IOException; import java.text.ParseException; @@ -35,14 +35,14 @@ import java.util.stream.Collectors; public class ProjectManager { - public DataTableData getPaged(ProjectDao projectRepository, ProjectTableRequest projectTableRequest, Principal principal) throws Exception { + public DataTableData getPaged(ProjectDao projectRepository, ProjectTableRequest projectTableRequest, Principal principal) throws Exception { eu.eudat.data.entities.UserInfo userInfo = new eu.eudat.data.entities.UserInfo(); userInfo.setId(principal.getId()); QueryableList items = projectRepository.getWithCriteria(projectTableRequest.getCriteria()); QueryableList authItems = projectRepository.getAuthenticated(items, userInfo); QueryableList pagedItems = PaginationManager.applyPaging(authItems, projectTableRequest); - DataTableData dataTable = new DataTableData<>(); + DataTableData dataTable = new DataTableData<>(); CompletableFuture projectsFuture = pagedItems.withHint(HintedModelFactory.getHint(ProjectListingModel.class)).selectAsync(item -> { item.setDmps(item.getDmps().stream().filter( dmp -> dmp.getCreator().getId().equals(principal.getId()) || dmp.getUsers().stream().filter(user -> user.getId().equals(principal.getId())).collect(Collectors.toList()).size() > 0) @@ -64,8 +64,8 @@ public class ProjectManager { return dataTable; } - public eu.eudat.models.project.Project getSingle(ProjectDao projectRepository, String id) throws InstantiationException, IllegalAccessException { - eu.eudat.models.project.Project project = new eu.eudat.models.project.Project(); + public eu.eudat.models.data.project.Project getSingle(ProjectDao projectRepository, String id) throws InstantiationException, IllegalAccessException { + eu.eudat.models.data.project.Project project = new eu.eudat.models.data.project.Project(); project.fromDataModel(projectRepository.find(UUID.fromString(id))); return project; } @@ -77,13 +77,13 @@ public class ProjectManager { return project; } - public List getCriteriaWithExternal(ApiContext apiContext, ProjectCriteriaRequest projectCriteria, RemoteFetcher remoteFetcher) throws IllegalAccessException, InstantiationException, HugeResultSet, NoURLFound { + public List getCriteriaWithExternal(ApiContext apiContext, ProjectCriteriaRequest projectCriteria, RemoteFetcher remoteFetcher) throws IllegalAccessException, InstantiationException, HugeResultSet, NoURLFound { QueryableList items = apiContext.getOperationsContext().getDatabaseRepository().getProjectDao().getWithCriteria(projectCriteria.getCriteria()); - List projects = items.select(item -> new Project().fromDataModel(item)); + List projects = items.select(item -> new Project().fromDataModel(item)); List> remoteRepos = remoteFetcher.getProjects(projectCriteria.getCriteria().getLike()); ProjectsExternalSourcesModel projectsExternalSourcesModel = new ProjectsExternalSourcesModel().fromExternalItem(remoteRepos); for (ExternalSourcesItemModel externalListingItem : projectsExternalSourcesModel) { - eu.eudat.models.project.Project project = apiContext.getOperationsContext().getBuilderFactory().getBuilder(ProjectBuilder.class) + eu.eudat.models.data.project.Project project = apiContext.getOperationsContext().getBuilderFactory().getBuilder(ProjectBuilder.class) .reference(externalListingItem.getRemoteId()).label(externalListingItem.getName()) .description(externalListingItem.getDescription()).uri(externalListingItem.getUri()) .abbreviation(externalListingItem.getAbbreviation()).status(eu.eudat.data.entities.Project.Status.fromInteger(0)) @@ -95,13 +95,13 @@ public class ProjectManager { return projects; } - public List getCriteria(ProjectDao projectRepository, ProjectCriteriaRequest projectCriteria, RemoteFetcher remoteFetcher) throws IllegalAccessException, InstantiationException, HugeResultSet, NoURLFound { + public List getCriteria(ProjectDao projectRepository, ProjectCriteriaRequest projectCriteria, RemoteFetcher remoteFetcher) throws IllegalAccessException, InstantiationException, HugeResultSet, NoURLFound { QueryableList items = projectRepository.getWithCriteria(projectCriteria.getCriteria()); - List projects = items.select(item -> new Project().fromDataModel(item)); + List projects = items.select(item -> new Project().fromDataModel(item)); return projects; } - public static void createOrUpdate(FileStorageService fileStorageService, ProjectDao projectRepository, ContentDao contentRepository, UserInfoDao userInfoRepository, eu.eudat.models.project.Project project, Principal principal) throws ParseException, IOException { + public static void createOrUpdate(FileStorageService fileStorageService, ProjectDao projectRepository, ContentDao contentRepository, UserInfoDao userInfoRepository, eu.eudat.models.data.project.Project project, Principal principal) throws ParseException, IOException { eu.eudat.data.entities.Project projectEntity = project.toDataModel(); if(project.getFiles() != null) { for (ContentFile file : project.getFiles()) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/ResearcherManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ResearcherManager.java similarity index 58% rename from dmp-backend/web/src/main/java/eu/eudat/managers/ResearcherManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/ResearcherManager.java index 199a9d6a6..c0aabc0fa 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/ResearcherManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ResearcherManager.java @@ -1,15 +1,15 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.model.models.ResearcherBuilder; +import eu.eudat.logic.builders.model.models.ResearcherBuilder; import eu.eudat.data.entities.Researcher; -import eu.eudat.models.external.ExternalSourcesItemModel; -import eu.eudat.models.external.ResearchersExternalSourcesModel; +import eu.eudat.models.data.external.ExternalSourcesItemModel; +import eu.eudat.models.data.external.ResearchersExternalSourcesModel; import eu.eudat.data.query.items.item.researcher.ResearcherCriteriaRequest; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; -import eu.eudat.proxy.fetching.RemoteFetcher; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; +import eu.eudat.logic.proxy.fetching.RemoteFetcher; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; +import eu.eudat.logic.services.ApiContext; import java.util.List; import java.util.Map; @@ -19,19 +19,19 @@ import java.util.Map; */ public class ResearcherManager { - public static Researcher create(ApiContext apiContext, eu.eudat.models.researcher.Researcher researcher) throws Exception { + public static Researcher create(ApiContext apiContext, eu.eudat.models.data.researcher.Researcher researcher) throws Exception { Researcher researcherEntity = researcher.toDataModel(); return apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao().createOrUpdate(researcherEntity); } - public static List getCriteriaWithExternal(ApiContext apiContext, RemoteFetcher remoteFetcher, ResearcherCriteriaRequest researcherCriteriaRequest) throws HugeResultSet, NoURLFound { + public static List getCriteriaWithExternal(ApiContext apiContext, RemoteFetcher remoteFetcher, ResearcherCriteriaRequest researcherCriteriaRequest) throws HugeResultSet, NoURLFound { QueryableList items = apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao().getWithCriteria(researcherCriteriaRequest.getCriteria()); - List researchers = items.select(item -> new eu.eudat.models.dmp.Researcher().fromDataModel(item)); + List researchers = items.select(item -> new eu.eudat.models.data.dmp.Researcher().fromDataModel(item)); List> remoteRepos = remoteFetcher.getResearchers(researcherCriteriaRequest.getCriteria().getLike(),null); ResearchersExternalSourcesModel researchersExternalSourcesModel = new ResearchersExternalSourcesModel().fromExternalItem(remoteRepos); for (ExternalSourcesItemModel externalListingItem : researchersExternalSourcesModel) { - eu.eudat.models.dmp.Researcher researcher = apiContext.getOperationsContext().getBuilderFactory().getBuilder(ResearcherBuilder.class) + eu.eudat.models.data.dmp.Researcher researcher = apiContext.getOperationsContext().getBuilderFactory().getBuilder(ResearcherBuilder.class) .label(externalListingItem.getAbbreviation()).id(externalListingItem.getId()) .name(externalListingItem.getName()) .build(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/managers/UserManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/UserManager.java similarity index 70% rename from dmp-backend/web/src/main/java/eu/eudat/managers/UserManager.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/managers/UserManager.java index 4b0cf6755..cf9359ac2 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/managers/UserManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/UserManager.java @@ -1,30 +1,30 @@ -package eu.eudat.managers; +package eu.eudat.logic.managers; -import eu.eudat.builders.entity.UserRoleBuilder; -import eu.eudat.builders.model.models.DataTableDataBuilder; +import eu.eudat.logic.builders.entity.UserRoleBuilder; +import eu.eudat.logic.builders.model.models.DataTableDataBuilder; import eu.eudat.data.entities.UserRole; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.models.helpers.common.DataTableData; -import eu.eudat.models.login.Credentials; -import eu.eudat.models.security.Principal; +import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.login.Credentials; +import eu.eudat.models.data.security.Principal; import eu.eudat.data.query.items.table.userinfo.UserInfoTableRequestItem; -import eu.eudat.models.userinfo.UserListingModel; +import eu.eudat.models.data.userinfo.UserListingModel; import eu.eudat.queryable.QueryableList; -import eu.eudat.services.ApiContext; -import eu.eudat.services.operations.AuthenticationServiceImpl; -import eu.eudat.utilities.builders.XmlBuilder; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.operations.AuthenticationServiceImpl; +import eu.eudat.logic.utilities.builders.XmlBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; import java.util.List; public class UserManager { - public static eu.eudat.models.user.composite.DatasetProfile generateDatasetProfileModel(eu.eudat.data.entities.DatasetProfile profile) { + public static eu.eudat.models.data.user.composite.DatasetProfile generateDatasetProfileModel(eu.eudat.data.entities.DatasetProfile profile) { Document viewStyleDoc = XmlBuilder.fromXml(profile.getDefinition()); Element root = (Element) viewStyleDoc.getDocumentElement(); - eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewstyle = new eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel().fromXml(root); + eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewstyle = new eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel().fromXml(root); - eu.eudat.models.user.composite.DatasetProfile datasetprofile = new eu.eudat.models.user.composite.DatasetProfile(); + eu.eudat.models.data.user.composite.DatasetProfile datasetprofile = new eu.eudat.models.data.user.composite.DatasetProfile(); datasetprofile.buildProfile(viewstyle); return datasetprofile; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/Proxy.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/Proxy.java similarity index 89% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/Proxy.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/Proxy.java index d6214be66..3f1489350 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/Proxy.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/Proxy.java @@ -1,4 +1,4 @@ -package eu.eudat.proxy; +package eu.eudat.logic.proxy; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -24,7 +24,7 @@ public class Proxy { } - @RequestMapping(method = RequestMethod.GET, value = {"/eu/eudat/proxy"}, produces = "application/json") + @RequestMapping(method = RequestMethod.GET, value = {"/eu/eudat/logic/proxy"}, produces = "application/json") public @ResponseBody ResponseEntity proxy(@RequestParam("url") String remoteUrl) { @@ -37,7 +37,7 @@ public class Proxy { url = uri.toURL(); if (!url.getHost().equals(allowedHost)) - return ResponseEntity.status(HttpStatus.FORBIDDEN).body("{'reason': 'You are not allowed to eu.eudat.proxy -> " + url.getHost() + "'}"); + return ResponseEntity.status(HttpStatus.FORBIDDEN).body("{'reason': 'You are not allowed to eu.eudat.logic.proxy -> " + url.getHost() + "'}"); //if allowed, proceed HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); @@ -56,7 +56,7 @@ public class Proxy { } } catch (IOException | URISyntaxException e) { - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{'reason': 'Could not eu.eudat.proxy to given host'}"); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{'reason': 'Could not eu.eudat.logic.proxy to given host'}"); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/ExternalUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/ExternalUrls.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/ExternalUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/ExternalUrls.java index e70b470b1..cc5c34260 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/ExternalUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/ExternalUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config; +package eu.eudat.logic.proxy.config; -import eu.eudat.proxy.config.entities.*; +import eu.eudat.logic.proxy.config.entities.*; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/FetchStrategy.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/FetchStrategy.java similarity index 58% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/FetchStrategy.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/FetchStrategy.java index 7021fc722..8ff68051e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/FetchStrategy.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/FetchStrategy.java @@ -1,4 +1,4 @@ -package eu.eudat.proxy.config; +package eu.eudat.logic.proxy.config; public enum FetchStrategy { diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/UrlConfig.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/UrlConfig.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/UrlConfig.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/UrlConfig.java index d02c89a2f..47f0c0163 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/UrlConfig.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/UrlConfig.java @@ -1,4 +1,4 @@ -package eu.eudat.proxy.config; +package eu.eudat.logic.proxy.config; import javax.xml.bind.annotation.XmlElement; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/ConfigLoader.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/ConfigLoader.java similarity index 53% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/ConfigLoader.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/ConfigLoader.java index 81c0237ee..ebbc88576 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/ConfigLoader.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/ConfigLoader.java @@ -1,6 +1,6 @@ -package eu.eudat.proxy.config.configloaders; +package eu.eudat.logic.proxy.config.configloaders; -import eu.eudat.proxy.config.ExternalUrls; +import eu.eudat.logic.proxy.config.ExternalUrls; /** * Created by ikalyvas on 2/9/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/DevelConfigLoader.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/DevelConfigLoader.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/DevelConfigLoader.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/DevelConfigLoader.java index e075736c2..2eb029dd4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/DevelConfigLoader.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/DevelConfigLoader.java @@ -1,6 +1,6 @@ -package eu.eudat.proxy.config.configloaders; +package eu.eudat.logic.proxy.config.configloaders; -import eu.eudat.proxy.config.ExternalUrls; +import eu.eudat.logic.proxy.config.ExternalUrls; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.core.env.Environment; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/ProductionConfigLoader.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/ProductionConfigLoader.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/ProductionConfigLoader.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/ProductionConfigLoader.java index 2a110f2ac..82828a0ed 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/configloaders/ProductionConfigLoader.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/ProductionConfigLoader.java @@ -1,6 +1,6 @@ -package eu.eudat.proxy.config.configloaders; +package eu.eudat.logic.proxy.config.configloaders; -import eu.eudat.proxy.config.ExternalUrls; +import eu.eudat.logic.proxy.config.ExternalUrls; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.core.env.Environment; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/DatasetUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/DatasetUrls.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/DatasetUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/DatasetUrls.java index 536f94b23..587158d13 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/DatasetUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/DatasetUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config.entities; +package eu.eudat.logic.proxy.config.entities; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/OrganisationUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/OrganisationUrls.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/OrganisationUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/OrganisationUrls.java index b1400e043..702436d0f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/OrganisationUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/OrganisationUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config.entities; +package eu.eudat.logic.proxy.config.entities; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ProjectUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ProjectUrls.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ProjectUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ProjectUrls.java index af88b726a..6cb7a5b74 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ProjectUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ProjectUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config.entities; +package eu.eudat.logic.proxy.config.entities; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/RegistryUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/RegistryUrls.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/RegistryUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/RegistryUrls.java index 324641a0f..eac9aa622 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/RegistryUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/RegistryUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config.entities; +package eu.eudat.logic.proxy.config.entities; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/RepositoryUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/RepositoryUrls.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/RepositoryUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/RepositoryUrls.java index 4a3f32dc3..e9009fe45 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/RepositoryUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/RepositoryUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config.entities; +package eu.eudat.logic.proxy.config.entities; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ResearcherUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ResearcherUrls.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ResearcherUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ResearcherUrls.java index d397b8a22..0baa1127e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ResearcherUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ResearcherUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config.entities; +package eu.eudat.logic.proxy.config.entities; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ServiceUrls.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ServiceUrls.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ServiceUrls.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ServiceUrls.java index 52d42766b..2e1ecde1c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/entities/ServiceUrls.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/entities/ServiceUrls.java @@ -1,7 +1,7 @@ -package eu.eudat.proxy.config.entities; +package eu.eudat.logic.proxy.config.entities; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/exceptions/HugeResultSet.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/exceptions/HugeResultSet.java similarity index 80% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/exceptions/HugeResultSet.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/exceptions/HugeResultSet.java index c2e4003df..91693a75f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/exceptions/HugeResultSet.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/exceptions/HugeResultSet.java @@ -1,4 +1,4 @@ -package eu.eudat.proxy.config.exceptions; +package eu.eudat.logic.proxy.config.exceptions; public class HugeResultSet extends Exception { diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/exceptions/NoURLFound.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/exceptions/NoURLFound.java similarity index 80% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/config/exceptions/NoURLFound.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/exceptions/NoURLFound.java index 40982cfab..458f98850 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/config/exceptions/NoURLFound.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/exceptions/NoURLFound.java @@ -1,4 +1,4 @@ -package eu.eudat.proxy.config.exceptions; +package eu.eudat.logic.proxy.config.exceptions; public class NoURLFound extends Exception { diff --git a/dmp-backend/web/src/main/java/eu/eudat/proxy/fetching/RemoteFetcher.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/proxy/fetching/RemoteFetcher.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java index 5c02cb933..900197b8f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/proxy/fetching/RemoteFetcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java @@ -1,13 +1,13 @@ -package eu.eudat.proxy.fetching; +package eu.eudat.logic.proxy.fetching; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; -import eu.eudat.dynamicproject.DynamicProjectConfiguration; -import eu.eudat.proxy.config.FetchStrategy; -import eu.eudat.proxy.config.UrlConfig; -import eu.eudat.proxy.config.configloaders.ConfigLoader; -import eu.eudat.proxy.config.exceptions.HugeResultSet; -import eu.eudat.proxy.config.exceptions.NoURLFound; +import eu.eudat.configurations.dynamicproject.DynamicProjectConfiguration; +import eu.eudat.logic.proxy.config.FetchStrategy; +import eu.eudat.logic.proxy.config.UrlConfig; +import eu.eudat.logic.proxy.config.configloaders.ConfigLoader; +import eu.eudat.logic.proxy.config.exceptions.HugeResultSet; +import eu.eudat.logic.proxy.config.exceptions.NoURLFound; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/CustomAuthenticationProvider.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/CustomAuthenticationProvider.java similarity index 85% rename from dmp-backend/web/src/main/java/eu/eudat/security/CustomAuthenticationProvider.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/CustomAuthenticationProvider.java index c858fb125..9b63ed582 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/CustomAuthenticationProvider.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/CustomAuthenticationProvider.java @@ -1,10 +1,10 @@ -package eu.eudat.security; +package eu.eudat.logic.security; import eu.eudat.exceptions.security.NonValidTokenException; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.security.Principal; -import eu.eudat.security.validators.TokenValidatorFactory; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.validators.TokenValidatorFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/claims/ClaimedAuthorities.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/claims/ClaimedAuthorities.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/security/claims/ClaimedAuthorities.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/claims/ClaimedAuthorities.java index 5677bbee7..6e5d99e00 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/claims/ClaimedAuthorities.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/claims/ClaimedAuthorities.java @@ -1,4 +1,4 @@ -package eu.eudat.security.claims; +package eu.eudat.logic.security.claims; import eu.eudat.types.Authorities; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/claims/ClaimedRights.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/claims/ClaimedRights.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/security/claims/ClaimedRights.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/claims/ClaimedRights.java index 14d0ec81d..0cdfa7255 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/claims/ClaimedRights.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/claims/ClaimedRights.java @@ -1,4 +1,4 @@ -package eu.eudat.security.claims; +package eu.eudat.logic.security.claims; import eu.eudat.types.Rights; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessCustomProvider.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessCustomProvider.java similarity index 65% rename from dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessCustomProvider.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessCustomProvider.java index 2d35b1336..64aaba361 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessCustomProvider.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessCustomProvider.java @@ -1,6 +1,6 @@ -package eu.eudat.security.customproviders; +package eu.eudat.logic.security.customproviders; -import eu.eudat.security.validators.b2access.helpers.B2AccessResponseToken; +import eu.eudat.logic.security.validators.b2access.helpers.B2AccessResponseToken; /** * Created by ikalyvas on 2/22/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessCustomProviderImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessCustomProviderImpl.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessCustomProviderImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessCustomProviderImpl.java index 4c3880d13..c8f482023 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessCustomProviderImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessCustomProviderImpl.java @@ -1,7 +1,7 @@ -package eu.eudat.security.customproviders; +package eu.eudat.logic.security.customproviders; import com.google.api.client.repackaged.org.apache.commons.codec.binary.Base64; -import eu.eudat.security.validators.b2access.helpers.B2AccessResponseToken; +import eu.eudat.logic.security.validators.b2access.helpers.B2AccessResponseToken; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.http.HttpEntity; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessUser.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessUser.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessUser.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessUser.java index 4b8d23ece..f42ce4da9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/customproviders/B2AccessUser.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/B2AccessUser.java @@ -1,4 +1,4 @@ -package eu.eudat.security.customproviders; +package eu.eudat.logic.security.customproviders; /** * Created by ikalyvas on 2/22/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidator.java similarity index 68% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidator.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidator.java index abaefcb55..eeaf3cc40 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidator.java @@ -1,8 +1,8 @@ -package eu.eudat.security.validators; +package eu.eudat.logic.security.validators; import eu.eudat.exceptions.security.NonValidTokenException; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.security.Principal; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.security.Principal; import java.io.IOException; import java.security.GeneralSecurityException; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidatorFactory.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidatorFactory.java similarity index 74% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidatorFactory.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidatorFactory.java index 01ddce38d..57cfed72e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidatorFactory.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidatorFactory.java @@ -1,4 +1,4 @@ -package eu.eudat.security.validators; +package eu.eudat.logic.security.validators; public interface TokenValidatorFactory { diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidatorFactoryImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidatorFactoryImpl.java similarity index 86% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidatorFactoryImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidatorFactoryImpl.java index c504fd371..080c27977 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/TokenValidatorFactoryImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/TokenValidatorFactoryImpl.java @@ -1,10 +1,10 @@ -package eu.eudat.security.validators; +package eu.eudat.logic.security.validators; -import eu.eudat.security.validators.b2access.B2AccessTokenValidator; -import eu.eudat.security.validators.facebook.FacebookTokenValidator; -import eu.eudat.security.validators.google.GoogleTokenValidator; -import eu.eudat.security.validators.linkedin.LinkedInTokenValidator; -import eu.eudat.security.validators.twitter.TwitterTokenValidator; +import eu.eudat.logic.security.validators.b2access.B2AccessTokenValidator; +import eu.eudat.logic.security.validators.facebook.FacebookTokenValidator; +import eu.eudat.logic.security.validators.google.GoogleTokenValidator; +import eu.eudat.logic.security.validators.linkedin.LinkedInTokenValidator; +import eu.eudat.logic.security.validators.twitter.TwitterTokenValidator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/B2AccessTokenValidator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/B2AccessTokenValidator.java similarity index 76% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/B2AccessTokenValidator.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/B2AccessTokenValidator.java index d432b483a..f6b28fd0c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/B2AccessTokenValidator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/B2AccessTokenValidator.java @@ -1,15 +1,15 @@ -package eu.eudat.security.validators.b2access; +package eu.eudat.logic.security.validators.b2access; import eu.eudat.exceptions.security.NonValidTokenException; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.loginprovider.LoginProviderUser; -import eu.eudat.models.security.Principal; -import eu.eudat.security.customproviders.B2AccessCustomProvider; -import eu.eudat.security.customproviders.B2AccessUser; -import eu.eudat.security.validators.TokenValidator; -import eu.eudat.security.validators.b2access.helpers.B2AccessRequest; -import eu.eudat.security.validators.b2access.helpers.B2AccessResponseToken; -import eu.eudat.services.operations.AuthenticationServiceImpl; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.loginprovider.LoginProviderUser; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.customproviders.B2AccessCustomProvider; +import eu.eudat.logic.security.customproviders.B2AccessUser; +import eu.eudat.logic.security.validators.TokenValidator; +import eu.eudat.logic.security.validators.b2access.helpers.B2AccessRequest; +import eu.eudat.logic.security.validators.b2access.helpers.B2AccessResponseToken; +import eu.eudat.logic.services.operations.AuthenticationServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/helpers/B2AccessRequest.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/helpers/B2AccessRequest.java similarity index 79% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/helpers/B2AccessRequest.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/helpers/B2AccessRequest.java index 85a5947d3..cea61293e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/helpers/B2AccessRequest.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/helpers/B2AccessRequest.java @@ -1,4 +1,4 @@ -package eu.eudat.security.validators.b2access.helpers; +package eu.eudat.logic.security.validators.b2access.helpers; /** * Created by ikalyvas on 2/22/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/helpers/B2AccessResponseToken.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/helpers/B2AccessResponseToken.java similarity index 82% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/helpers/B2AccessResponseToken.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/helpers/B2AccessResponseToken.java index 16d042f15..b46c30022 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/b2access/helpers/B2AccessResponseToken.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/b2access/helpers/B2AccessResponseToken.java @@ -1,4 +1,4 @@ -package eu.eudat.security.validators.b2access.helpers; +package eu.eudat.logic.security.validators.b2access.helpers; /** * Created by ikalyvas on 2/22/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/facebook/FacebookTokenValidator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/facebook/FacebookTokenValidator.java similarity index 86% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/facebook/FacebookTokenValidator.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/facebook/FacebookTokenValidator.java index 1be7c2c9f..adc93ef3e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/facebook/FacebookTokenValidator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/facebook/FacebookTokenValidator.java @@ -1,14 +1,14 @@ -package eu.eudat.security.validators.facebook; +package eu.eudat.logic.security.validators.facebook; import eu.eudat.exceptions.security.NonValidTokenException; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.loginprovider.LoginProviderUser; -import eu.eudat.models.security.Principal; -import eu.eudat.security.validators.TokenValidator; -import eu.eudat.security.validators.TokenValidatorFactoryImpl; -import eu.eudat.services.ApiContext; -import eu.eudat.services.operations.AuthenticationServiceImpl; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.loginprovider.LoginProviderUser; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.validators.TokenValidator; +import eu.eudat.logic.security.validators.TokenValidatorFactoryImpl; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.operations.AuthenticationServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.social.facebook.api.User; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/google/GoogleTokenValidator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/google/GoogleTokenValidator.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/google/GoogleTokenValidator.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/google/GoogleTokenValidator.java index 98189b74d..0a137b402 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/google/GoogleTokenValidator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/google/GoogleTokenValidator.java @@ -1,4 +1,4 @@ -package eu.eudat.security.validators.google; +package eu.eudat.logic.security.validators.google; import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken; import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken.Payload; @@ -7,12 +7,12 @@ import com.google.api.client.http.HttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.jackson2.JacksonFactory; import eu.eudat.exceptions.security.NonValidTokenException; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.loginprovider.LoginProviderUser; -import eu.eudat.security.validators.TokenValidator; -import eu.eudat.security.validators.TokenValidatorFactoryImpl; -import eu.eudat.services.ApiContext; -import eu.eudat.services.operations.AuthenticationServiceImpl; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.loginprovider.LoginProviderUser; +import eu.eudat.logic.security.validators.TokenValidator; +import eu.eudat.logic.security.validators.TokenValidatorFactoryImpl; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.operations.AuthenticationServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @@ -46,7 +46,7 @@ public class GoogleTokenValidator implements TokenValidator { } @Override - public eu.eudat.models.security.Principal validateToken(LoginInfo credentials) throws NonValidTokenException, IOException, GeneralSecurityException { + public eu.eudat.models.data.security.Principal validateToken(LoginInfo credentials) throws NonValidTokenException, IOException, GeneralSecurityException { GoogleIdToken idToken = this.verifyUserAndGetUser(credentials.getTicket()); Payload payload = idToken.getPayload(); LoginProviderUser user = new LoginProviderUser(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/linkedin/LinkedInTokenValidator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/linkedin/LinkedInTokenValidator.java similarity index 85% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/linkedin/LinkedInTokenValidator.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/linkedin/LinkedInTokenValidator.java index 137061c46..16f4ae071 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/linkedin/LinkedInTokenValidator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/linkedin/LinkedInTokenValidator.java @@ -1,14 +1,14 @@ -package eu.eudat.security.validators.linkedin; +package eu.eudat.logic.security.validators.linkedin; import eu.eudat.exceptions.security.NonValidTokenException; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.loginprovider.LoginProviderUser; -import eu.eudat.models.security.Principal; -import eu.eudat.security.validators.TokenValidator; -import eu.eudat.security.validators.TokenValidatorFactoryImpl; -import eu.eudat.services.ApiContext; -import eu.eudat.services.operations.AuthenticationServiceImpl; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.loginprovider.LoginProviderUser; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.validators.TokenValidator; +import eu.eudat.logic.security.validators.TokenValidatorFactoryImpl; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.operations.AuthenticationServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.social.linkedin.api.LinkedIn; diff --git a/dmp-backend/web/src/main/java/eu/eudat/security/validators/twitter/TwitterTokenValidator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/twitter/TwitterTokenValidator.java similarity index 88% rename from dmp-backend/web/src/main/java/eu/eudat/security/validators/twitter/TwitterTokenValidator.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/twitter/TwitterTokenValidator.java index f875c9b02..70849f2ca 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/security/validators/twitter/TwitterTokenValidator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/twitter/TwitterTokenValidator.java @@ -1,14 +1,14 @@ -package eu.eudat.security.validators.twitter; +package eu.eudat.logic.security.validators.twitter; import eu.eudat.exceptions.security.NonValidTokenException; import eu.eudat.exceptions.security.UnauthorisedException; -import eu.eudat.models.login.LoginInfo; -import eu.eudat.models.loginprovider.LoginProviderUser; -import eu.eudat.models.security.Principal; -import eu.eudat.security.validators.TokenValidator; -import eu.eudat.security.validators.TokenValidatorFactoryImpl; -import eu.eudat.services.ApiContext; -import eu.eudat.services.operations.AuthenticationServiceImpl; +import eu.eudat.models.data.login.LoginInfo; +import eu.eudat.models.data.loginprovider.LoginProviderUser; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.validators.TokenValidator; +import eu.eudat.logic.security.validators.TokenValidatorFactoryImpl; +import eu.eudat.logic.services.ApiContext; +import eu.eudat.logic.services.operations.AuthenticationServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.social.oauth1.AuthorizedRequestToken; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/ApiContext.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/ApiContext.java new file mode 100644 index 000000000..44f3d0116 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/ApiContext.java @@ -0,0 +1,14 @@ +package eu.eudat.logic.services; + +import eu.eudat.logic.services.helpers.HelpersService; +import eu.eudat.logic.services.operations.OperationsContext; +import eu.eudat.logic.services.utilities.UtilitiesService; + +public interface ApiContext { + + HelpersService getHelpersService(); + + OperationsContext getOperationsContext(); + + UtilitiesService getUtilitiesService(); +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/ApiContextImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/ApiContextImpl.java similarity index 80% rename from dmp-backend/web/src/main/java/eu/eudat/services/ApiContextImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/ApiContextImpl.java index 9429bf0c7..4e6b12331 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/ApiContextImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/ApiContextImpl.java @@ -1,8 +1,8 @@ -package eu.eudat.services; +package eu.eudat.logic.services; -import eu.eudat.services.helpers.HelpersService; -import eu.eudat.services.operations.OperationsContext; -import eu.eudat.services.utilities.UtilitiesService; +import eu.eudat.logic.services.helpers.HelpersService; +import eu.eudat.logic.services.operations.OperationsContext; +import eu.eudat.logic.services.utilities.UtilitiesService; import org.springframework.stereotype.Service; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityContext.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityContext.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityContext.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityContext.java index a47246d6a..bd663f208 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityContext.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityContext.java @@ -1,6 +1,6 @@ -package eu.eudat.services.forms; +package eu.eudat.logic.services.forms; -import eu.eudat.models.user.components.commons.Rule; +import eu.eudat.models.data.user.components.commons.Rule; import java.util.LinkedList; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRule.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRule.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRule.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRule.java index 3069e21b2..87deeb285 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRule.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRule.java @@ -1,4 +1,4 @@ -package eu.eudat.services.forms; +package eu.eudat.logic.services.forms; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleService.java similarity index 74% rename from dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleService.java index 3318a3131..cb2c2d0ee 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleService.java @@ -1,6 +1,6 @@ -package eu.eudat.services.forms; +package eu.eudat.logic.services.forms; -import eu.eudat.models.user.components.commons.Rule; +import eu.eudat.models.data.user.components.commons.Rule; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleServiceImpl.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleServiceImpl.java index 2ec1a51a3..61435c407 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleServiceImpl.java @@ -1,6 +1,6 @@ -package eu.eudat.services.forms; +package eu.eudat.logic.services.forms; -import eu.eudat.models.user.components.commons.Rule; +import eu.eudat.models.data.user.components.commons.Rule; import org.springframework.stereotype.Service; import java.util.HashMap; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleSource.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleSource.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleSource.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleSource.java index e349b6961..6c710d9ec 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/forms/VisibilityRuleSource.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/forms/VisibilityRuleSource.java @@ -1,4 +1,4 @@ -package eu.eudat.services.forms; +package eu.eudat.logic.services.forms; /** * Created by ikalyvas on 3/5/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/FileStorageService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/FileStorageService.java similarity index 85% rename from dmp-backend/web/src/main/java/eu/eudat/services/helpers/FileStorageService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/FileStorageService.java index caa21281f..0903bd441 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/FileStorageService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/FileStorageService.java @@ -1,6 +1,6 @@ -package eu.eudat.services.helpers; +package eu.eudat.logic.services.helpers; -import eu.eudat.models.files.ContentFile; +import eu.eudat.models.data.files.ContentFile; import org.springframework.core.io.Resource; import org.springframework.web.multipart.MultipartFile; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/FileStorageServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/FileStorageServiceImpl.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/services/helpers/FileStorageServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/FileStorageServiceImpl.java index 1f3379171..e8909696f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/FileStorageServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/FileStorageServiceImpl.java @@ -1,7 +1,7 @@ -package eu.eudat.services.helpers; +package eu.eudat.logic.services.helpers; import eu.eudat.exceptions.files.TempFileNotFoundException; -import eu.eudat.models.files.ContentFile; +import eu.eudat.models.data.files.ContentFile; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.core.io.Resource; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/HelpersService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/HelpersService.java similarity index 83% rename from dmp-backend/web/src/main/java/eu/eudat/services/helpers/HelpersService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/HelpersService.java index d53877eb2..e8f2954b0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/HelpersService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/HelpersService.java @@ -1,4 +1,4 @@ -package eu.eudat.services.helpers; +package eu.eudat.logic.services.helpers; import org.springframework.context.MessageSource; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/HelpersServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/HelpersServiceImpl.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/services/helpers/HelpersServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/HelpersServiceImpl.java index b46ca350f..e6f6806bc 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/HelpersServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/HelpersServiceImpl.java @@ -1,4 +1,4 @@ -package eu.eudat.services.helpers; +package eu.eudat.logic.services.helpers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/LoggerService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/LoggerService.java similarity index 82% rename from dmp-backend/web/src/main/java/eu/eudat/services/helpers/LoggerService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/LoggerService.java index 7f757d5ef..0fc4efdc5 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/LoggerService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/LoggerService.java @@ -1,4 +1,4 @@ -package eu.eudat.services.helpers; +package eu.eudat.logic.services.helpers; import eu.eudat.types.WarningLevel; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/LoggerServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/LoggerServiceImpl.java similarity index 51% rename from dmp-backend/web/src/main/java/eu/eudat/services/helpers/LoggerServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/LoggerServiceImpl.java index c4ab0881e..d0fff2fee 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/helpers/LoggerServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/helpers/LoggerServiceImpl.java @@ -1,9 +1,9 @@ -package eu.eudat.services.helpers; +package eu.eudat.logic.services.helpers; +import eu.eudat.core.logger.Logger; import eu.eudat.types.WarningLevel; -import eu.eudat.utilities.interfaces.Applier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import eu.eudat.logic.utilities.interfaces.Applier; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -14,7 +14,7 @@ import java.util.Map; */ @Service("loggerService") public class LoggerServiceImpl implements LoggerService { - private static final Logger logger = LoggerFactory.getLogger(LoggerServiceImpl.class); + private Logger logger; private WarningLevel level; private Map> options = new HashMap<>(); @@ -22,11 +22,13 @@ public class LoggerServiceImpl implements LoggerService { this.level = level; } - public LoggerServiceImpl() { - this.options.put(WarningLevel.DEBUG, (logger, message) -> logger.debug(message)); - this.options.put(WarningLevel.INFO, (logger, message) -> logger.info(message)); - this.options.put(WarningLevel.WARN, (logger, message) -> logger.warn(message)); - this.options.put(WarningLevel.ERROR, (logger, message) -> logger.error(message)); + @Autowired + public LoggerServiceImpl(Logger logger) { + this.logger = logger; + this.options.put(WarningLevel.DEBUG, (log, message) -> log.debug(message)); + this.options.put(WarningLevel.INFO, (log, message) -> log.info(message)); + this.options.put(WarningLevel.WARN, (log, message) -> log.warn(message)); + this.options.put(WarningLevel.ERROR, (log, message) -> log.error(message)); } public void log(String message) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/operations/AuthenticationService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/AuthenticationService.java similarity index 58% rename from dmp-backend/web/src/main/java/eu/eudat/services/operations/AuthenticationService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/AuthenticationService.java index af4583de7..089cf84ca 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/operations/AuthenticationService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/AuthenticationService.java @@ -1,8 +1,8 @@ -package eu.eudat.services.operations; +package eu.eudat.logic.services.operations; -import eu.eudat.models.login.Credentials; -import eu.eudat.models.loginprovider.LoginProviderUser; -import eu.eudat.models.security.Principal; +import eu.eudat.models.data.login.Credentials; +import eu.eudat.models.data.loginprovider.LoginProviderUser; +import eu.eudat.models.data.security.Principal; import java.util.UUID; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/operations/AuthenticationServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/AuthenticationServiceImpl.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/services/operations/AuthenticationServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/AuthenticationServiceImpl.java index 7e788a47a..f591e72ff 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/operations/AuthenticationServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/AuthenticationServiceImpl.java @@ -1,20 +1,20 @@ -package eu.eudat.services.operations; +package eu.eudat.logic.services.operations; import com.fasterxml.jackson.databind.ObjectMapper; -import eu.eudat.builders.entity.CredentialBuilder; -import eu.eudat.builders.entity.UserInfoBuilder; -import eu.eudat.builders.entity.UserTokenBuilder; -import eu.eudat.builders.model.models.PrincipalBuilder; +import eu.eudat.logic.builders.entity.CredentialBuilder; +import eu.eudat.logic.builders.entity.UserInfoBuilder; +import eu.eudat.logic.builders.entity.UserTokenBuilder; +import eu.eudat.logic.builders.model.models.PrincipalBuilder; import eu.eudat.data.dao.criteria.UserInfoCriteria; import eu.eudat.data.entities.Credential; import eu.eudat.data.entities.UserInfo; import eu.eudat.data.entities.UserRole; import eu.eudat.data.entities.UserToken; -import eu.eudat.models.login.Credentials; -import eu.eudat.models.loginprovider.LoginProviderUser; -import eu.eudat.models.security.Principal; -import eu.eudat.security.validators.TokenValidatorFactoryImpl; -import eu.eudat.services.ApiContext; +import eu.eudat.models.data.login.Credentials; +import eu.eudat.models.data.loginprovider.LoginProviderUser; +import eu.eudat.models.data.security.Principal; +import eu.eudat.logic.security.validators.TokenValidatorFactoryImpl; +import eu.eudat.logic.services.ApiContext; import eu.eudat.types.Authorities; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/operations/DatabaseRepository.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepository.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/services/operations/DatabaseRepository.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepository.java index cad4aa15c..6cd4470ff 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/operations/DatabaseRepository.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepository.java @@ -1,4 +1,4 @@ -package eu.eudat.services.operations; +package eu.eudat.logic.services.operations; import eu.eudat.data.dao.entities.*; import eu.eudat.data.dao.entities.security.CredentialDao; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/operations/DatabaseRepositoryImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepositoryImpl.java similarity index 98% rename from dmp-backend/web/src/main/java/eu/eudat/services/operations/DatabaseRepositoryImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepositoryImpl.java index 58f8f4259..8fe94d43d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/operations/DatabaseRepositoryImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepositoryImpl.java @@ -1,9 +1,8 @@ -package eu.eudat.services.operations; +package eu.eudat.logic.services.operations; import eu.eudat.data.dao.entities.*; import eu.eudat.data.dao.entities.security.CredentialDao; import eu.eudat.data.dao.entities.security.UserTokenDao; -import eu.eudat.data.entities.DatasetService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/operations/OperationsContext.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/OperationsContext.java similarity index 64% rename from dmp-backend/web/src/main/java/eu/eudat/services/operations/OperationsContext.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/OperationsContext.java index 35054c478..678b306ad 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/operations/OperationsContext.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/OperationsContext.java @@ -1,8 +1,8 @@ -package eu.eudat.services.operations; +package eu.eudat.logic.services.operations; -import eu.eudat.builders.BuilderFactory; -import eu.eudat.proxy.fetching.RemoteFetcher; -import eu.eudat.services.helpers.FileStorageService; +import eu.eudat.logic.builders.BuilderFactory; +import eu.eudat.logic.proxy.fetching.RemoteFetcher; +import eu.eudat.logic.services.helpers.FileStorageService; import org.springframework.context.ApplicationContext; /** diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/operations/OperationsContextImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/OperationsContextImpl.java similarity index 88% rename from dmp-backend/web/src/main/java/eu/eudat/services/operations/OperationsContextImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/OperationsContextImpl.java index 38ee2d2e3..ecc24007e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/operations/OperationsContextImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/OperationsContextImpl.java @@ -1,8 +1,8 @@ -package eu.eudat.services.operations; +package eu.eudat.logic.services.operations; -import eu.eudat.builders.BuilderFactory; -import eu.eudat.proxy.fetching.RemoteFetcher; -import eu.eudat.services.helpers.FileStorageService; +import eu.eudat.logic.builders.BuilderFactory; +import eu.eudat.logic.proxy.fetching.RemoteFetcher; +import eu.eudat.logic.services.helpers.FileStorageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/InvitationService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationService.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/services/utilities/InvitationService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationService.java index ac1648c24..336987267 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/InvitationService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationService.java @@ -1,4 +1,4 @@ -package eu.eudat.services.utilities; +package eu.eudat.logic.services.utilities; import eu.eudat.data.dao.entities.DMPDao; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/InvitationServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/services/utilities/InvitationServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java index f90acd3a6..601978a28 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/InvitationServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java @@ -1,10 +1,10 @@ -package eu.eudat.services.utilities; +package eu.eudat.logic.services.utilities; import eu.eudat.data.dao.entities.DMPDao; import eu.eudat.data.dao.entities.InvitationDao; import eu.eudat.data.entities.DMP; import eu.eudat.data.entities.Invitation; -import eu.eudat.models.mail.SimpleMail; +import eu.eudat.models.data.mail.SimpleMail; import org.springframework.stereotype.Service; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/MailService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailService.java similarity index 63% rename from dmp-backend/web/src/main/java/eu/eudat/services/utilities/MailService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailService.java index 123ffae23..c2fd28558 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/MailService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailService.java @@ -1,6 +1,6 @@ -package eu.eudat.services.utilities; +package eu.eudat.logic.services.utilities; -import eu.eudat.models.mail.SimpleMail; +import eu.eudat.models.data.mail.SimpleMail; public interface MailService { diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/MailServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java similarity index 92% rename from dmp-backend/web/src/main/java/eu/eudat/services/utilities/MailServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java index 0e66b5d2b..5340ec671 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/MailServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java @@ -1,6 +1,6 @@ -package eu.eudat.services.utilities; +package eu.eudat.logic.services.utilities; -import eu.eudat.models.mail.SimpleMail; +import eu.eudat.models.data.mail.SimpleMail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.mail.SimpleMailMessage; diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/UtilitiesService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/UtilitiesService.java similarity index 68% rename from dmp-backend/web/src/main/java/eu/eudat/services/utilities/UtilitiesService.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/UtilitiesService.java index fd6ec03b8..88fe41b5e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/UtilitiesService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/UtilitiesService.java @@ -1,6 +1,6 @@ -package eu.eudat.services.utilities; +package eu.eudat.logic.services.utilities; -import eu.eudat.services.forms.VisibilityRuleService; +import eu.eudat.logic.services.forms.VisibilityRuleService; /** * Created by ikalyvas on 3/1/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/UtilitiesServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/UtilitiesServiceImpl.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/services/utilities/UtilitiesServiceImpl.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/UtilitiesServiceImpl.java index 40c8eada9..f42a92428 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/services/utilities/UtilitiesServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/UtilitiesServiceImpl.java @@ -1,6 +1,6 @@ -package eu.eudat.services.utilities; +package eu.eudat.logic.services.utilities; -import eu.eudat.services.forms.VisibilityRuleService; +import eu.eudat.logic.services.forms.VisibilityRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/builders/ModelBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/ModelBuilder.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/builders/ModelBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/ModelBuilder.java index 280898bc3..6e4385ca9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/builders/ModelBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/ModelBuilder.java @@ -1,10 +1,10 @@ -package eu.eudat.utilities.builders; +package eu.eudat.logic.utilities.builders; -import eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; -import eu.eudat.models.components.commons.datafield.*; -import eu.eudat.models.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; -import eu.eudat.utilities.interfaces.ModelDefinition; -import eu.eudat.utilities.interfaces.ViewStyleDefinition; +import eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; +import eu.eudat.models.data.components.commons.datafield.*; +import eu.eudat.models.data.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; +import eu.eudat.logic.utilities.interfaces.ModelDefinition; +import eu.eudat.logic.utilities.interfaces.ViewStyleDefinition; import org.w3c.dom.Element; import java.util.LinkedList; diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/builders/XmlBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/XmlBuilder.java similarity index 98% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/builders/XmlBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/XmlBuilder.java index a24a2dec2..7735fe326 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/builders/XmlBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/XmlBuilder.java @@ -1,4 +1,4 @@ -package eu.eudat.utilities.builders; +package eu.eudat.logic.utilities.builders; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/dmp-backend/web/src/main/java/eu/eudat/documents/helpers/FileEnvelope.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/helpers/FileEnvelope.java similarity index 89% rename from dmp-backend/web/src/main/java/eu/eudat/documents/helpers/FileEnvelope.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/helpers/FileEnvelope.java index 905841e03..899b4a3b6 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/documents/helpers/FileEnvelope.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/helpers/FileEnvelope.java @@ -1,4 +1,4 @@ -package eu.eudat.documents.helpers; +package eu.eudat.logic.utilities.documents.helpers; import java.io.File; diff --git a/dmp-backend/web/src/main/java/eu/eudat/documents/types/ParagraphStyle.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/types/ParagraphStyle.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/documents/types/ParagraphStyle.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/types/ParagraphStyle.java index bd38cdbd1..c908ca0b1 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/documents/types/ParagraphStyle.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/types/ParagraphStyle.java @@ -1,4 +1,4 @@ -package eu.eudat.documents.types; +package eu.eudat.logic.utilities.documents.types; /** * Created by ikalyvas on 2/26/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/documents/types/TextStyle.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/types/TextStyle.java similarity index 92% rename from dmp-backend/web/src/main/java/eu/eudat/documents/types/TextStyle.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/types/TextStyle.java index ad42d9eec..15a85f78b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/documents/types/TextStyle.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/types/TextStyle.java @@ -1,4 +1,4 @@ -package eu.eudat.documents.types; +package eu.eudat.logic.utilities.documents.types; /** * Created by ikalyvas on 2/27/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/documents/word/WordBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java index 8ba6b29c8..8b3b50a02 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/documents/word/WordBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java @@ -1,14 +1,14 @@ -package eu.eudat.documents.word; +package eu.eudat.logic.utilities.documents.word; -import eu.eudat.documents.types.ParagraphStyle; -import eu.eudat.documents.types.TextStyle; -import eu.eudat.models.user.components.datasetprofile.Field; -import eu.eudat.models.user.components.datasetprofile.FieldSet; -import eu.eudat.models.user.components.datasetprofile.Section; -import eu.eudat.models.user.composite.DatasetProfilePage; -import eu.eudat.models.user.composite.PagedDatasetProfile; -import eu.eudat.services.forms.VisibilityRuleService; -import eu.eudat.utilities.interfaces.ApplierWithValue; +import eu.eudat.logic.utilities.documents.types.ParagraphStyle; +import eu.eudat.logic.utilities.documents.types.TextStyle; +import eu.eudat.models.data.user.components.datasetprofile.Field; +import eu.eudat.models.data.user.components.datasetprofile.FieldSet; +import eu.eudat.models.data.user.components.datasetprofile.Section; +import eu.eudat.models.data.user.composite.DatasetProfilePage; +import eu.eudat.models.data.user.composite.PagedDatasetProfile; +import eu.eudat.logic.services.forms.VisibilityRuleService; +import eu.eudat.logic.utilities.interfaces.ApplierWithValue; import org.apache.poi.xwpf.usermodel.*; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTAbstractNum; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDecimalNumber; diff --git a/dmp-backend/web/src/main/java/eu/eudat/documents/xml/ExportXmlBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/ExportXmlBuilder.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/documents/xml/ExportXmlBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/ExportXmlBuilder.java index d77c740bf..0c9e8b72b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/documents/xml/ExportXmlBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/ExportXmlBuilder.java @@ -1,12 +1,12 @@ -package eu.eudat.documents.xml; +package eu.eudat.logic.utilities.documents.xml; -import eu.eudat.models.user.components.datasetprofile.Field; -import eu.eudat.models.user.components.datasetprofile.FieldSet; -import eu.eudat.models.user.components.datasetprofile.Section; -import eu.eudat.models.user.composite.DatasetProfilePage; -import eu.eudat.models.user.composite.PagedDatasetProfile; -import eu.eudat.services.forms.VisibilityRuleService; -import eu.eudat.utilities.builders.XmlBuilder; +import eu.eudat.models.data.user.components.datasetprofile.Field; +import eu.eudat.models.data.user.components.datasetprofile.FieldSet; +import eu.eudat.models.data.user.components.datasetprofile.Section; +import eu.eudat.models.data.user.composite.DatasetProfilePage; +import eu.eudat.models.data.user.composite.PagedDatasetProfile; +import eu.eudat.logic.services.forms.VisibilityRuleService; +import eu.eudat.logic.utilities.builders.XmlBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/LabelBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/LabelBuilder.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/LabelBuilder.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/LabelBuilder.java index 329d66fc2..d996c2ab9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/LabelBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/LabelBuilder.java @@ -1,4 +1,4 @@ -package eu.eudat.utilities.helpers; +package eu.eudat.logic.utilities.helpers; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/LabelGenerator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/LabelGenerator.java similarity index 61% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/LabelGenerator.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/LabelGenerator.java index 638454c0a..d510e6ab0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/LabelGenerator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/LabelGenerator.java @@ -1,4 +1,4 @@ -package eu.eudat.utilities.helpers; +package eu.eudat.logic.utilities.helpers; public interface LabelGenerator { diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/ModelBuilderCollector.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ModelBuilderCollector.java similarity index 71% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/ModelBuilderCollector.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ModelBuilderCollector.java index d45f6ed37..b0c6d99ec 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/helpers/ModelBuilderCollector.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ModelBuilderCollector.java @@ -1,6 +1,6 @@ -package eu.eudat.utilities.helpers; +package eu.eudat.logic.utilities.helpers; -import eu.eudat.models.user.components.commons.Rule; +import eu.eudat.models.data.user.components.commons.Rule; import java.util.LinkedList; import java.util.List; @@ -13,9 +13,9 @@ public class ModelBuilderCollector { * @param sections * @return */ - public static List collectRules(List sections) { + public static List collectRules(List sections) { List rules = new LinkedList(); - for (eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Section section : sections) { + for (eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Section section : sections) { if (!section.getSections().isEmpty()) { rules.addAll(collectRules(section.getSections())); } @@ -32,9 +32,9 @@ public class ModelBuilderCollector { return rules; } - private static List getRulesFromField(String id, List rules) { + private static List getRulesFromField(String id, List rules) { List modelRules = new LinkedList(); - for (eu.eudat.models.components.commons.Rule rule : rules) { + for (eu.eudat.models.data.components.commons.Rule rule : rules) { Rule modelRule = new Rule().fromDefinitionRule(rule); modelRule.setSourceField(id); modelRules.add(modelRule); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ModelSerializer.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ModelSerializer.java new file mode 100644 index 000000000..b6b975c66 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ModelSerializer.java @@ -0,0 +1,9 @@ +package eu.eudat.logic.utilities.helpers; + + +import eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; +import eu.eudat.models.data.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; + +public interface ModelSerializer { + void fromDatabaseDefinition(T viewStyle, U model); +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/Applier.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/Applier.java similarity index 72% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/Applier.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/Applier.java index cb26b7a46..bcff4dc20 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/Applier.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/Applier.java @@ -1,4 +1,4 @@ -package eu.eudat.utilities.interfaces; +package eu.eudat.logic.utilities.interfaces; /** * Created by ikalyvas on 3/1/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ApplierWithValue.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ApplierWithValue.java similarity index 73% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ApplierWithValue.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ApplierWithValue.java index 0c4a76093..03d2bcf89 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ApplierWithValue.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ApplierWithValue.java @@ -1,4 +1,4 @@ -package eu.eudat.utilities.interfaces; +package eu.eudat.logic.utilities.interfaces; /** * Created by ikalyvas on 2/27/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/Cloneable.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/Cloneable.java similarity index 67% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/Cloneable.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/Cloneable.java index f1eadd147..23e8da3e3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/Cloneable.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/Cloneable.java @@ -1,4 +1,4 @@ -package eu.eudat.utilities.interfaces; +package eu.eudat.logic.utilities.interfaces; /** * Created by ikalyvas on 2/5/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/DatabaseDefinition.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/DatabaseDefinition.java new file mode 100644 index 000000000..c28614949 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/DatabaseDefinition.java @@ -0,0 +1,5 @@ +package eu.eudat.logic.utilities.interfaces; + + +public interface DatabaseDefinition { +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ModelDefinition.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ModelDefinition.java similarity index 52% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ModelDefinition.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ModelDefinition.java index 97826d2fc..b788896f4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ModelDefinition.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ModelDefinition.java @@ -1,6 +1,6 @@ -package eu.eudat.utilities.interfaces; +package eu.eudat.logic.utilities.interfaces; -import eu.eudat.models.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; +import eu.eudat.models.data.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; public interface ModelDefinition { T toDatabaseDefinition(T item); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ModelSerializer.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ModelSerializer.java new file mode 100644 index 000000000..0762250d2 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ModelSerializer.java @@ -0,0 +1,9 @@ +package eu.eudat.logic.utilities.interfaces; + + +import eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; +import eu.eudat.models.data.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; + +public interface ModelSerializer { + void fromDatabaseDefinition(T viewStyle, U model); +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ViewStyleDefinition.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ViewStyleDefinition.java similarity index 52% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ViewStyleDefinition.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ViewStyleDefinition.java index 629dcaa03..096c6d43c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ViewStyleDefinition.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/ViewStyleDefinition.java @@ -1,7 +1,7 @@ -package eu.eudat.utilities.interfaces; +package eu.eudat.logic.utilities.interfaces; -import eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; +import eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; public interface ViewStyleDefinition { T toDatabaseDefinition(T item); diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/XmlSerializable.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/XmlSerializable.java similarity index 78% rename from dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/XmlSerializable.java rename to dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/XmlSerializable.java index 0cdf47c63..d293265c6 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/XmlSerializable.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/interfaces/XmlSerializable.java @@ -1,4 +1,4 @@ -package eu.eudat.utilities.interfaces; +package eu.eudat.logic.utilities.interfaces; import org.w3c.dom.Document; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/admin/components/datasetprofile/Field.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/admin/components/datasetprofile/Field.java similarity index 83% rename from dmp-backend/web/src/main/java/eu/eudat/models/admin/components/datasetprofile/Field.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/admin/components/datasetprofile/Field.java index 6d94cb64a..fb7819e83 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/admin/components/datasetprofile/Field.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/admin/components/datasetprofile/Field.java @@ -1,16 +1,16 @@ -package eu.eudat.models.admin.components.datasetprofile; +package eu.eudat.models.data.admin.components.datasetprofile; -import eu.eudat.models.components.commons.DefaultValue; -import eu.eudat.models.components.commons.ViewStyle; -import eu.eudat.models.components.commons.Visibility; -import eu.eudat.utilities.interfaces.ViewStyleDefinition; -import eu.eudat.utilities.builders.ModelBuilder; +import eu.eudat.models.data.components.commons.DefaultValue; +import eu.eudat.models.data.components.commons.ViewStyle; +import eu.eudat.models.data.components.commons.Visibility; +import eu.eudat.logic.utilities.interfaces.ViewStyleDefinition; +import eu.eudat.logic.utilities.builders.ModelBuilder; import org.apache.commons.lang3.RandomStringUtils; import java.util.List; import java.util.stream.Collectors; -public class Field implements ViewStyleDefinition, Comparable { +public class Field implements ViewStyleDefinition, Comparable { public enum ValidationType { NONE((short) 0), REQUIRED((short) 1); @@ -134,7 +134,7 @@ public class Field implements ViewStyleDefinition { +public class FieldSet implements Comparable, ViewStyleDefinition { private String id; private Integer ordinal; private Multiplicity multiplicity; @@ -86,10 +86,10 @@ public class FieldSet implements Comparable, ViewStyleDefinition viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field.class); + List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field.class); item.setFields(viewStylefields); item.setId(this.id); item.setDescription(this.description); @@ -102,7 +102,7 @@ public class FieldSet implements Comparable, ViewStyleDefinition { +public class Page implements Comparable, ViewStyleDefinition { private String id; private Integer ordinal; private String title; @@ -33,7 +33,7 @@ public class Page implements Comparable, ViewStyleDefinition { +public class Section implements Comparable, ViewStyleDefinition { private List
sections; private List
fieldSets; private Boolean defaultVisibility; @@ -81,23 +81,23 @@ public class Section implements Comparable, ViewStyleDefinition { private int status; private String description; private List profiles; - private eu.eudat.models.project.Project project; + private eu.eudat.models.data.project.Project project; private List organisations; private List researchers; private List associatedUsers; private DataManagementPlanProfile definition; - private eu.eudat.models.userinfo.UserInfo creator; + private eu.eudat.models.data.userinfo.UserInfo creator; private Date created; private List dynamicFields; private Map properties; @@ -117,11 +117,11 @@ public class DataManagementPlan implements DataModel { this.project = project; } - public eu.eudat.models.userinfo.UserInfo getCreator() { + public eu.eudat.models.data.userinfo.UserInfo getCreator() { return creator; } - public void setCreator(eu.eudat.models.userinfo.UserInfo creator) { + public void setCreator(eu.eudat.models.data.userinfo.UserInfo creator) { this.creator = creator; } @@ -185,7 +185,7 @@ public class DataManagementPlan implements DataModel { this.project = new Project(); this.properties = entity.getProperties() != null ? new org.json.JSONObject(entity.getProperties()).toMap() : null; this.project.fromDataModel(entity.getProject()); - this.creator = new eu.eudat.models.userinfo.UserInfo(); + this.creator = new eu.eudat.models.data.userinfo.UserInfo(); this.groupId = entity.getGroupId(); this.definition = entity.getProfile() == null ? null : new DataManagementPlanProfile().fromXml(XmlBuilder.fromXml(entity.getProfile().getDefinition()).getDocumentElement()); if (this.definition != null && this.definition.getFields() != null && !this.definition.getFields().isEmpty() && this.properties != null) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/dmp/DataManagementPlanNewVersionModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanNewVersionModel.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/dmp/DataManagementPlanNewVersionModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanNewVersionModel.java index 2d217baba..0fd4c04ad 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/dmp/DataManagementPlanNewVersionModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanNewVersionModel.java @@ -1,11 +1,11 @@ -package eu.eudat.models.dmp; +package eu.eudat.models.data.dmp; import eu.eudat.data.entities.DMP; import eu.eudat.models.DataModel; -import eu.eudat.models.dataset.Dataset; -import eu.eudat.models.project.Project; -import eu.eudat.models.userinfo.UserInfo; -import eu.eudat.utilities.builders.XmlBuilder; +import eu.eudat.models.data.dataset.Dataset; +import eu.eudat.models.data.project.Project; +import eu.eudat.models.data.userinfo.UserInfo; +import eu.eudat.logic.utilities.builders.XmlBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -23,11 +23,11 @@ public class DataManagementPlanNewVersionModel implements DataModel profiles; - private eu.eudat.models.project.Project project; + private eu.eudat.models.data.project.Project project; private List organisations; private List researchers; private List associatedUsers; - private eu.eudat.models.userinfo.UserInfo creator; + private eu.eudat.models.data.userinfo.UserInfo creator; private Date created; private List datasets; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/dmp/Organisation.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Organisation.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/models/dmp/Organisation.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Organisation.java index 3d3f5937d..3873243ca 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/dmp/Organisation.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Organisation.java @@ -1,7 +1,7 @@ -package eu.eudat.models.dmp; +package eu.eudat.models.data.dmp; import eu.eudat.models.DataModel; -import eu.eudat.utilities.helpers.LabelGenerator; +import eu.eudat.logic.utilities.helpers.LabelGenerator; import java.util.Date; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/dmp/Researcher.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/models/dmp/Researcher.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java index d0fa4269d..48c4fa974 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/dmp/Researcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java @@ -1,7 +1,7 @@ -package eu.eudat.models.dmp; +package eu.eudat.models.data.dmp; import eu.eudat.models.DataModel; -import eu.eudat.utilities.helpers.LabelGenerator; +import eu.eudat.logic.utilities.helpers.LabelGenerator; import java.util.Date; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/Dependency.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/Dependency.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/Dependency.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/Dependency.java index f2056ff13..3bffc273b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/Dependency.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/Dependency.java @@ -1,4 +1,4 @@ -package eu.eudat.models.dynamicfields; +package eu.eudat.models.data.dynamicfields; /** * Created by ikalyvas on 3/23/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/DynamicField.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/DynamicField.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/DynamicField.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/DynamicField.java index 787e436ca..e28ee070b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/DynamicField.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/DynamicField.java @@ -1,4 +1,4 @@ -package eu.eudat.models.dynamicfields; +package eu.eudat.models.data.dynamicfields; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/DynamicFieldWithValue.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/DynamicFieldWithValue.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/DynamicFieldWithValue.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/DynamicFieldWithValue.java index 0e416470a..4f4e474a6 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/dynamicfields/DynamicFieldWithValue.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dynamicfields/DynamicFieldWithValue.java @@ -1,6 +1,6 @@ -package eu.eudat.models.dynamicfields; +package eu.eudat.models.data.dynamicfields; -import eu.eudat.models.helpermodels.Tuple; +import eu.eudat.models.data.helpermodels.Tuple; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/datasetprofiledefinition/DatabaseViewStyleDefinition.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/datasetprofiledefinition/DatabaseViewStyleDefinition.java new file mode 100644 index 000000000..31a372665 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/datasetprofiledefinition/DatabaseViewStyleDefinition.java @@ -0,0 +1,7 @@ +package eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition; + +import eu.eudat.logic.utilities.interfaces.DatabaseDefinition; + +public interface DatabaseViewStyleDefinition extends DatabaseDefinition { + +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/datasetprofiledefinition/Field.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/datasetprofiledefinition/Field.java similarity index 80% rename from dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/datasetprofiledefinition/Field.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/datasetprofiledefinition/Field.java index 34270ad64..7e7e9aa55 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/datasetprofiledefinition/Field.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/datasetprofiledefinition/Field.java @@ -1,12 +1,12 @@ -package eu.eudat.models.entities.xmlmodels.datasetprofiledefinition; +package eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition; -import eu.eudat.models.components.commons.DefaultValue; -import eu.eudat.models.components.commons.ViewStyle; -import eu.eudat.models.components.commons.Visibility; -import eu.eudat.models.components.commons.datafield.FieldData; -import eu.eudat.utilities.interfaces.XmlSerializable; -import eu.eudat.utilities.builders.ModelBuilder; -import eu.eudat.utilities.builders.XmlBuilder; +import eu.eudat.models.data.components.commons.DefaultValue; +import eu.eudat.models.data.components.commons.ViewStyle; +import eu.eudat.models.data.components.commons.Visibility; +import eu.eudat.models.data.components.commons.datafield.FieldData; +import eu.eudat.logic.utilities.interfaces.XmlSerializable; +import eu.eudat.logic.utilities.builders.ModelBuilder; +import eu.eudat.logic.utilities.builders.XmlBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -22,7 +22,7 @@ public class Field implements DatabaseViewStyleDefinition, XmlSerializable validations; + private List validations; public String getId() { return id; @@ -72,11 +72,11 @@ public class Field implements DatabaseViewStyleDefinition, XmlSerializable getValidations() { + public List getValidations() { return validations; } - public void setValidations(List validations) { + public void setValidations(List validations) { this.validations = validations; } @@ -97,7 +97,7 @@ public class Field implements DatabaseViewStyleDefinition, XmlSerializable { } @Override - public eu.eudat.models.entities.xmlmodels.dmpprofiledefinition.Field fromXml(Element item) { + public eu.eudat.models.data.entities.xmlmodels.dmpprofiledefinition.Field fromXml(Element item) { this.id = UUID.fromString(item.getAttribute("id")); this.label = item.getAttribute("label"); this.dataType = DMPProfileFieldDataType.fromInteger(Integer.parseInt(item.getAttribute("datatype"))); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/FieldValues.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/FieldValues.java similarity index 80% rename from dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/FieldValues.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/FieldValues.java index 1c07f016f..28cef102f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/FieldValues.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/FieldValues.java @@ -1,6 +1,4 @@ -package eu.eudat.models.entities.xmlmodels.dmpprofiledefinition; - -import java.util.UUID; +package eu.eudat.models.data.entities.xmlmodels.dmpprofiledefinition; /** * Created by ikalyvas on 3/22/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileFieldDataType.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileFieldDataType.java similarity index 89% rename from dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileFieldDataType.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileFieldDataType.java index 0dc9e769d..3e1f8bf2a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileFieldDataType.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileFieldDataType.java @@ -1,4 +1,4 @@ -package eu.eudat.models.entities.xmlmodels.dmpprofiledefinition.types; +package eu.eudat.models.data.entities.xmlmodels.dmpprofiledefinition.types; /** * Created by ikalyvas on 3/21/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileType.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileType.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileType.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileType.java index a1ad08b49..dd5f8c5e0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileType.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/dmpprofiledefinition/types/DMPProfileType.java @@ -1,6 +1,4 @@ -package eu.eudat.models.entities.xmlmodels.dmpprofiledefinition.types; - -import eu.eudat.types.ApiMessageCode; +package eu.eudat.models.data.entities.xmlmodels.dmpprofiledefinition.types; /** * Created by ikalyvas on 3/21/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/modeldefinition/DatabaseModelDefinition.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/modeldefinition/DatabaseModelDefinition.java new file mode 100644 index 000000000..1e47fd7c9 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/entities/xmlmodels/modeldefinition/DatabaseModelDefinition.java @@ -0,0 +1,7 @@ +package eu.eudat.models.data.entities.xmlmodels.modeldefinition; + +import eu.eudat.logic.utilities.interfaces.DatabaseDefinition; + +public interface DatabaseModelDefinition extends DatabaseDefinition { + +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/errormodels/ValidationErrorContext.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/errormodels/ValidationErrorContext.java similarity index 85% rename from dmp-backend/web/src/main/java/eu/eudat/models/errormodels/ValidationErrorContext.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/errormodels/ValidationErrorContext.java index caa305956..760d0fb41 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/errormodels/ValidationErrorContext.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/errormodels/ValidationErrorContext.java @@ -1,4 +1,4 @@ -package eu.eudat.models.errormodels; +package eu.eudat.models.data.errormodels; import java.util.HashMap; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalDatasetModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalDatasetModel.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalDatasetModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalDatasetModel.java index df19e6d43..ee13e81f9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalDatasetModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalDatasetModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalItem.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalItem.java similarity index 78% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalItem.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalItem.java index 52f26a0fa..a8fed07a2 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalItem.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalItem.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalListingItem.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalListingItem.java similarity index 79% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalListingItem.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalListingItem.java index 258c206e2..404738c97 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalListingItem.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalListingItem.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.ArrayList; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalSourcesItemModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalSourcesItemModel.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalSourcesItemModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalSourcesItemModel.java index fc65a4f11..0cd10fb7e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/ExternalSourcesItemModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalSourcesItemModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; public class ExternalSourcesItemModel { diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/OrganisationsExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/OrganisationsExternalSourcesModel.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/OrganisationsExternalSourcesModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/OrganisationsExternalSourcesModel.java index ab55427a0..97e688bf4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/OrganisationsExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/OrganisationsExternalSourcesModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/ProjectsExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ProjectsExternalSourcesModel.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/ProjectsExternalSourcesModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/ProjectsExternalSourcesModel.java index 83791df34..bcd51bf91 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/ProjectsExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ProjectsExternalSourcesModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/RegistriesExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/RegistriesExternalSourcesModel.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/RegistriesExternalSourcesModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/RegistriesExternalSourcesModel.java index ad8ac76ce..4ec6583e8 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/RegistriesExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/RegistriesExternalSourcesModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/ResearchersExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ResearchersExternalSourcesModel.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/ResearchersExternalSourcesModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/ResearchersExternalSourcesModel.java index 4bd7132e7..11a34dc49 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/ResearchersExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ResearchersExternalSourcesModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/external/ServiceExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ServiceExternalSourcesModel.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/external/ServiceExternalSourcesModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/external/ServiceExternalSourcesModel.java index 05733aa81..bb6fd133d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/external/ServiceExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ServiceExternalSourcesModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.external; +package eu.eudat.models.data.external; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/externaldataset/ExternalDatasetListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/externaldataset/ExternalDatasetListingModel.java similarity index 98% rename from dmp-backend/web/src/main/java/eu/eudat/models/externaldataset/ExternalDatasetListingModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/externaldataset/ExternalDatasetListingModel.java index b78858abb..5b5472ced 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/externaldataset/ExternalDatasetListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/externaldataset/ExternalDatasetListingModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.externaldataset; +package eu.eudat.models.data.externaldataset; import eu.eudat.data.entities.ExternalDataset; import eu.eudat.models.DataModel; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/externalurl/ExternalSourcesConfiguration.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/externalurl/ExternalSourcesConfiguration.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/models/externalurl/ExternalSourcesConfiguration.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/externalurl/ExternalSourcesConfiguration.java index db7efe45e..b69a64d99 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/externalurl/ExternalSourcesConfiguration.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/externalurl/ExternalSourcesConfiguration.java @@ -1,4 +1,4 @@ -package eu.eudat.models.externalurl; +package eu.eudat.models.data.externalurl; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/files/ContentFile.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/files/ContentFile.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/files/ContentFile.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/files/ContentFile.java index 37185387f..59d85e9fc 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/files/ContentFile.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/files/ContentFile.java @@ -1,4 +1,4 @@ -package eu.eudat.models.files; +package eu.eudat.models.data.files; import java.util.UUID; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/helpermodels/Pair.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpermodels/Pair.java similarity index 61% rename from dmp-backend/web/src/main/java/eu/eudat/models/helpermodels/Pair.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/helpermodels/Pair.java index eb0e3a415..9264e2f43 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/helpermodels/Pair.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpermodels/Pair.java @@ -1,4 +1,4 @@ -package eu.eudat.models.helpermodels; +package eu.eudat.models.data.helpermodels; /** * Created by ikalyvas on 3/28/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/helpermodels/Tuple.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpermodels/Tuple.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/helpermodels/Tuple.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/helpermodels/Tuple.java index 8285bd83b..6927bfe0a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/helpermodels/Tuple.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpermodels/Tuple.java @@ -1,4 +1,4 @@ -package eu.eudat.models.helpermodels; +package eu.eudat.models.data.helpermodels; /** * Created by ikalyvas on 3/23/2018. diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/helpers/common/AutoCompleteLookupItem.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/common/AutoCompleteLookupItem.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/models/helpers/common/AutoCompleteLookupItem.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/common/AutoCompleteLookupItem.java index 9818c20f6..d35813db9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/helpers/common/AutoCompleteLookupItem.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/common/AutoCompleteLookupItem.java @@ -1,4 +1,4 @@ -package eu.eudat.models.helpers.common; +package eu.eudat.models.data.helpers.common; import eu.eudat.data.dao.criteria.Criteria; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/helpers/common/DataTableData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/common/DataTableData.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/models/helpers/common/DataTableData.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/common/DataTableData.java index 0ae393041..2c933eb20 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/helpers/common/DataTableData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/common/DataTableData.java @@ -1,4 +1,4 @@ -package eu.eudat.models.helpers.common; +package eu.eudat.models.data.helpers.common; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/helpers/responses/ResponseItem.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/responses/ResponseItem.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/helpers/responses/ResponseItem.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/responses/ResponseItem.java index 334cf9b73..fc8cec21d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/helpers/responses/ResponseItem.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/helpers/responses/ResponseItem.java @@ -1,4 +1,4 @@ -package eu.eudat.models.helpers.responses; +package eu.eudat.models.data.helpers.responses; import eu.eudat.types.ApiMessageCode; import eu.eudat.types.ApiResponseType; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/invitation/Invitation.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/invitation/Invitation.java similarity index 84% rename from dmp-backend/web/src/main/java/eu/eudat/models/invitation/Invitation.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/invitation/Invitation.java index 4ece51910..a5737826e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/invitation/Invitation.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/invitation/Invitation.java @@ -1,6 +1,6 @@ -package eu.eudat.models.invitation; +package eu.eudat.models.data.invitation; -import eu.eudat.models.userinfo.UserInfoInvitationModel; +import eu.eudat.models.data.userinfo.UserInfoInvitationModel; import java.util.List; import java.util.UUID; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DataManagementPlanListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DataManagementPlanListingModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java index 0f1d0a2c3..9c8658dde 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DataManagementPlanListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java @@ -1,9 +1,9 @@ -package eu.eudat.models.listingmodels; +package eu.eudat.models.data.listingmodels; import eu.eudat.data.entities.DMP; import eu.eudat.models.DataModel; -import eu.eudat.models.dmp.Organisation; -import eu.eudat.utilities.helpers.LabelBuilder; +import eu.eudat.models.data.dmp.Organisation; +import eu.eudat.logic.utilities.helpers.LabelBuilder; import java.util.UUID; import java.util.stream.Collectors; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DataManagementPlanProfileListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanProfileListingModel.java similarity index 92% rename from dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DataManagementPlanProfileListingModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanProfileListingModel.java index 557a81acd..a672de65c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DataManagementPlanProfileListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanProfileListingModel.java @@ -1,9 +1,9 @@ -package eu.eudat.models.listingmodels; +package eu.eudat.models.data.listingmodels; import eu.eudat.data.entities.DMPProfile; import eu.eudat.models.DataModel; -import eu.eudat.models.entities.xmlmodels.dmpprofiledefinition.DataManagementPlanProfile; -import eu.eudat.utilities.builders.XmlBuilder; +import eu.eudat.models.data.entities.xmlmodels.dmpprofiledefinition.DataManagementPlanProfile; +import eu.eudat.logic.utilities.builders.XmlBuilder; import org.w3c.dom.Document; import java.util.Date; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DatasetListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DatasetListingModel.java similarity index 90% rename from dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DatasetListingModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DatasetListingModel.java index e6ef184e6..7db595dbb 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/listingmodels/DatasetListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DatasetListingModel.java @@ -1,10 +1,10 @@ -package eu.eudat.models.listingmodels; +package eu.eudat.models.data.listingmodels; import eu.eudat.data.entities.Dataset; import eu.eudat.models.DataModel; -import eu.eudat.models.dataset.DataRepository; -import eu.eudat.models.dataset.Service; -import eu.eudat.utilities.helpers.LabelBuilder; +import eu.eudat.models.data.dataset.DataRepository; +import eu.eudat.models.data.dataset.Service; +import eu.eudat.logic.utilities.helpers.LabelBuilder; import java.util.stream.Collectors; @@ -110,7 +110,7 @@ public class DatasetListingModel implements DataModel new eu.eudat.models.dataset.Registry().fromDataModel(item)).collect(Collectors.toList())); + this.registries = LabelBuilder.getLabel(entity.getRegistries().stream().map(item -> new eu.eudat.models.data.dataset.Registry().fromDataModel(item)).collect(Collectors.toList())); this.dataRepositories = LabelBuilder.getLabel(entity.getDatasetDataRepositories().stream().map(item -> new DataRepository().fromDataModel(item.getDataRepository())).collect(Collectors.toList())); this.services = LabelBuilder.getLabel(entity.getServices().stream().map(item -> new Service().fromDataModel(item.getService())).collect(Collectors.toList())); return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/login/Credentials.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/login/Credentials.java similarity index 91% rename from dmp-backend/web/src/main/java/eu/eudat/models/login/Credentials.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/login/Credentials.java index 33c4561d3..249c6c7d5 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/login/Credentials.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/login/Credentials.java @@ -1,4 +1,4 @@ -package eu.eudat.models.login; +package eu.eudat.models.data.login; public class Credentials { diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/login/LoginInfo.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/login/LoginInfo.java similarity index 86% rename from dmp-backend/web/src/main/java/eu/eudat/models/login/LoginInfo.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/login/LoginInfo.java index 6a5413245..1faf26693 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/login/LoginInfo.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/login/LoginInfo.java @@ -1,6 +1,6 @@ -package eu.eudat.models.login; +package eu.eudat.models.data.login; -import eu.eudat.security.validators.TokenValidatorFactoryImpl; +import eu.eudat.logic.security.validators.TokenValidatorFactoryImpl; public class LoginInfo { diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/loginprovider/LoginProviderUser.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/loginprovider/LoginProviderUser.java similarity index 92% rename from dmp-backend/web/src/main/java/eu/eudat/models/loginprovider/LoginProviderUser.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/loginprovider/LoginProviderUser.java index 9ff2a20d6..e1b0a6d41 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/loginprovider/LoginProviderUser.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/loginprovider/LoginProviderUser.java @@ -1,6 +1,6 @@ -package eu.eudat.models.loginprovider; +package eu.eudat.models.data.loginprovider; -import eu.eudat.security.validators.TokenValidatorFactoryImpl; +import eu.eudat.logic.security.validators.TokenValidatorFactoryImpl; public class LoginProviderUser { diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/mail/SimpleMail.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/mail/SimpleMail.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/mail/SimpleMail.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/mail/SimpleMail.java index 99f20278c..b6cd2412c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/mail/SimpleMail.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/mail/SimpleMail.java @@ -1,4 +1,4 @@ -package eu.eudat.models.mail; +package eu.eudat.models.data.mail; public class SimpleMail { diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/project/Project.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/project/Project.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/models/project/Project.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/project/Project.java index 21a3ae513..a8ddc33fb 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/project/Project.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/project/Project.java @@ -1,9 +1,9 @@ -package eu.eudat.models.project; +package eu.eudat.models.data.project; import eu.eudat.data.entities.UserInfo; import eu.eudat.models.DataModel; -import eu.eudat.models.dmp.DataManagementPlan; -import eu.eudat.models.files.ContentFile; +import eu.eudat.models.data.dmp.DataManagementPlan; +import eu.eudat.models.data.files.ContentFile; import java.util.Arrays; import java.util.Date; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/project/ProjectCriteriaModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/project/ProjectCriteriaModel.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/models/project/ProjectCriteriaModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/project/ProjectCriteriaModel.java index a5028db8d..d0aaeaca8 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/project/ProjectCriteriaModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/project/ProjectCriteriaModel.java @@ -1,4 +1,4 @@ -package eu.eudat.models.project; +package eu.eudat.models.data.project; import eu.eudat.data.entities.Project; import eu.eudat.models.DataModel; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/project/ProjectListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/project/ProjectListingModel.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/project/ProjectListingModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/project/ProjectListingModel.java index 73d5187ca..9ca2dd6b3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/project/ProjectListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/project/ProjectListingModel.java @@ -1,10 +1,10 @@ -package eu.eudat.models.project; +package eu.eudat.models.data.project; import eu.eudat.data.entities.Project; import eu.eudat.data.entities.UserInfo; import eu.eudat.models.DataModel; -import eu.eudat.models.files.ContentFile; -import eu.eudat.models.urls.DataManagementPlanUrlListing; +import eu.eudat.models.data.files.ContentFile; +import eu.eudat.models.data.urls.DataManagementPlanUrlListing; import java.util.Arrays; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/properties/DatasetProfilePage.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/DatasetProfilePage.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/properties/DatasetProfilePage.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/properties/DatasetProfilePage.java index 41fefefb5..cae5de7ea 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/properties/DatasetProfilePage.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/DatasetProfilePage.java @@ -1,4 +1,4 @@ -package eu.eudat.models.properties; +package eu.eudat.models.data.properties; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/properties/Field.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Field.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/properties/Field.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Field.java index d53524569..04a46816b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/properties/Field.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Field.java @@ -1,4 +1,4 @@ -package eu.eudat.models.properties; +package eu.eudat.models.data.properties; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/properties/FieldSet.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/FieldSet.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/models/properties/FieldSet.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/properties/FieldSet.java index 3c245b238..e6766d584 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/properties/FieldSet.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/FieldSet.java @@ -1,4 +1,4 @@ -package eu.eudat.models.properties; +package eu.eudat.models.data.properties; import java.util.HashMap; import java.util.List; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/properties/Group.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Group.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/properties/Group.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Group.java index 68b917ea4..c21646413 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/properties/Group.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Group.java @@ -1,4 +1,4 @@ -package eu.eudat.models.properties; +package eu.eudat.models.data.properties; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/properties/PropertiesGenerator.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/PropertiesGenerator.java similarity index 81% rename from dmp-backend/web/src/main/java/eu/eudat/models/properties/PropertiesGenerator.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/properties/PropertiesGenerator.java index e92aef3d3..6b8d12576 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/properties/PropertiesGenerator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/PropertiesGenerator.java @@ -1,4 +1,4 @@ -package eu.eudat.models.properties; +package eu.eudat.models.data.properties; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/properties/PropertiesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/PropertiesModel.java similarity index 69% rename from dmp-backend/web/src/main/java/eu/eudat/models/properties/PropertiesModel.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/properties/PropertiesModel.java index 00b117384..13c936df4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/properties/PropertiesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/PropertiesModel.java @@ -1,17 +1,17 @@ -package eu.eudat.models.properties; +package eu.eudat.models.data.properties; import java.util.List; import java.util.Map; public class PropertiesModel implements PropertiesGenerator { private int status; - private List pages; + private List pages; - public List getPages() { + public List getPages() { return pages; } - public void setPages(List pages) { + public void setPages(List pages) { this.pages = pages; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/properties/Section.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Section.java similarity index 95% rename from dmp-backend/web/src/main/java/eu/eudat/models/properties/Section.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Section.java index 6f10486e4..46faaee1d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/properties/Section.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/properties/Section.java @@ -1,4 +1,4 @@ -package eu.eudat.models.properties; +package eu.eudat.models.data.properties; import java.util.List; import java.util.Map; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/researcher/Researcher.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/researcher/Researcher.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/researcher/Researcher.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/researcher/Researcher.java index 77c82e036..8ecc23211 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/researcher/Researcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/researcher/Researcher.java @@ -1,4 +1,4 @@ -package eu.eudat.models.researcher; +package eu.eudat.models.data.researcher; import eu.eudat.models.DataModel; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/security/Principal.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/security/Principal.java similarity index 97% rename from dmp-backend/web/src/main/java/eu/eudat/models/security/Principal.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/security/Principal.java index b4e66d253..55674294b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/security/Principal.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/security/Principal.java @@ -1,4 +1,4 @@ -package eu.eudat.models.security; +package eu.eudat.models.data.security; import com.fasterxml.jackson.annotation.JsonIgnore; import eu.eudat.types.Authorities; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/urls/DataManagementPlanUrlListing.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/urls/DataManagementPlanUrlListing.java similarity index 93% rename from dmp-backend/web/src/main/java/eu/eudat/models/urls/DataManagementPlanUrlListing.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/urls/DataManagementPlanUrlListing.java index 08dd8b32a..32ef8315f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/urls/DataManagementPlanUrlListing.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/urls/DataManagementPlanUrlListing.java @@ -1,4 +1,4 @@ -package eu.eudat.models.urls; +package eu.eudat.models.data.urls; import eu.eudat.data.entities.DMP; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/urls/UrlListing.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/urls/UrlListing.java similarity index 94% rename from dmp-backend/web/src/main/java/eu/eudat/models/urls/UrlListing.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/urls/UrlListing.java index 826d54afd..145466e16 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/urls/UrlListing.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/urls/UrlListing.java @@ -1,4 +1,4 @@ -package eu.eudat.models.urls; +package eu.eudat.models.data.urls; import eu.eudat.models.DataModel; import eu.eudat.queryable.queryableentity.DataEntity; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/commons/Rule.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/commons/Rule.java similarity index 87% rename from dmp-backend/web/src/main/java/eu/eudat/models/user/components/commons/Rule.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/commons/Rule.java index e2570089c..f3f91b629 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/commons/Rule.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/commons/Rule.java @@ -1,4 +1,4 @@ -package eu.eudat.models.user.components.commons; +package eu.eudat.models.data.user.components.commons; public class Rule { private String sourceField; @@ -38,7 +38,7 @@ public class Rule { this.type = type; } - public Rule fromDefinitionRule(eu.eudat.models.components.commons.Rule rule) { + public Rule fromDefinitionRule(eu.eudat.models.data.components.commons.Rule rule) { this.targetField = rule.getTarget(); this.requiredValue = rule.getValue(); this.type = rule.getRuleStyle(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/Field.java similarity index 80% rename from dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/Field.java index 273e795e9..2624c2e31 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/Field.java @@ -1,20 +1,20 @@ -package eu.eudat.models.user.components.datasetprofile; +package eu.eudat.models.data.user.components.datasetprofile; -import eu.eudat.models.components.commons.DefaultValue; -import eu.eudat.models.components.commons.Multiplicity; -import eu.eudat.models.components.commons.ViewStyle; -import eu.eudat.models.components.commons.Visibility; -import eu.eudat.models.properties.PropertiesGenerator; -import eu.eudat.models.user.composite.PropertiesModelBuilder; -import eu.eudat.utilities.interfaces.ViewStyleDefinition; -import eu.eudat.utilities.builders.ModelBuilder; +import eu.eudat.models.data.components.commons.DefaultValue; +import eu.eudat.models.data.components.commons.Multiplicity; +import eu.eudat.models.data.components.commons.ViewStyle; +import eu.eudat.models.data.components.commons.Visibility; +import eu.eudat.models.data.properties.PropertiesGenerator; +import eu.eudat.models.data.user.composite.PropertiesModelBuilder; +import eu.eudat.logic.utilities.interfaces.ViewStyleDefinition; +import eu.eudat.logic.utilities.builders.ModelBuilder; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefinition, PropertiesGenerator { +public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefinition, PropertiesGenerator { private String id; private Integer ordinal; private String value; @@ -25,7 +25,7 @@ public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefin private Multiplicity multiplicity; private Object data; private List multiplicityItems; - private List validations; + private List validations; private Visibility visible; public List getMultiplicityItems() { @@ -125,7 +125,7 @@ public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefin } public void setValidations(List validations) { - this.validations = eu.eudat.models.admin.components.datasetprofile.Field.ValidationType.fromIntegers(validations); + this.validations = eu.eudat.models.data.admin.components.datasetprofile.Field.ValidationType.fromIntegers(validations); } @@ -144,7 +144,7 @@ public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefin } @Override - public eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field toDatabaseDefinition(eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field field) { + public eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field toDatabaseDefinition(eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field field) { field.setId(this.id); field.setOrdinal(this.ordinal); field.setViewStyle(this.viewStyle); @@ -156,7 +156,7 @@ public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefin } @Override - public void fromDatabaseDefinition(eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field item) { + public void fromDatabaseDefinition(eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field item) { this.id = item.getId(); this.ordinal = item.getOrdinal(); this.viewStyle = item.getViewStyle(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/FieldSet.java similarity index 84% rename from dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/FieldSet.java index 376686553..32e44adf4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/FieldSet.java @@ -1,15 +1,15 @@ -package eu.eudat.models.user.components.datasetprofile; +package eu.eudat.models.data.user.components.datasetprofile; -import eu.eudat.models.components.commons.Multiplicity; -import eu.eudat.models.properties.PropertiesGenerator; -import eu.eudat.models.user.composite.PropertiesModelBuilder; -import eu.eudat.utilities.builders.ModelBuilder; -import eu.eudat.utilities.interfaces.ViewStyleDefinition; +import eu.eudat.models.data.components.commons.Multiplicity; +import eu.eudat.models.data.properties.PropertiesGenerator; +import eu.eudat.models.data.user.composite.PropertiesModelBuilder; +import eu.eudat.logic.utilities.builders.ModelBuilder; +import eu.eudat.logic.utilities.interfaces.ViewStyleDefinition; import java.util.*; import java.util.stream.Collectors; -public class FieldSet implements Comparable, PropertiesModelBuilder, ViewStyleDefinition, PropertiesGenerator { +public class FieldSet implements Comparable, PropertiesModelBuilder, ViewStyleDefinition, PropertiesGenerator { private String id; private Integer ordinal; private String title; @@ -108,8 +108,8 @@ public class FieldSet implements Comparable, PropertiesModelBuilder, ViewStyleDe } @Override - public eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.FieldSet toDatabaseDefinition(eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { - List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.Field.class); + public eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.FieldSet toDatabaseDefinition(eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { + List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.Field.class); item.setFields(viewStylefields); item.setId(this.id); item.setOrdinal(this.ordinal); @@ -120,7 +120,7 @@ public class FieldSet implements Comparable, PropertiesModelBuilder, ViewStyleDe } @Override - public void fromDatabaseDefinition(eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { + public void fromDatabaseDefinition(eu.eudat.models.data.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { this.fields = new ModelBuilder().fromViewStyleDefinition(item.getFields(), Field.class); this.id = item.getId(); this.ordinal = item.getOrdinal(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/Section.java similarity index 78% rename from dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java rename to dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/Section.java index fbb668ca7..a1559be83 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/user/components/datasetprofile/Section.java @@ -1,15 +1,15 @@ -package eu.eudat.models.user.components.datasetprofile; +package eu.eudat.models.data.user.components.datasetprofile; -import eu.eudat.models.properties.PropertiesGenerator; -import eu.eudat.models.user.composite.PropertiesModelBuilder; -import eu.eudat.utilities.interfaces.ViewStyleDefinition; -import eu.eudat.utilities.builders.ModelBuilder; +import eu.eudat.models.data.properties.PropertiesGenerator; +import eu.eudat.models.data.user.composite.PropertiesModelBuilder; +import eu.eudat.logic.utilities.interfaces.ViewStyleDefinition; +import eu.eudat.logic.utilities.builders.ModelBuilder; import java.util.Collections; import java.util.List; import java.util.Map; -public class Section implements Comparable, ViewStyleDefinition, PropertiesModelBuilder, PropertiesGenerator { +public class Section implements Comparable, ViewStyleDefinition, PropertiesModelBuilder, PropertiesGenerator { private List
sections; private List
compositeFields; private Boolean defaultVisibility; @@ -86,22 +86,22 @@ public class Section implements Comparable, ViewStyleDefinition { - void fromDatabaseDefinition(T viewStyle, U model); -} diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/DatabaseDefinition.java b/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/DatabaseDefinition.java deleted file mode 100644 index ea3896ace..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/DatabaseDefinition.java +++ /dev/null @@ -1,5 +0,0 @@ -package eu.eudat.utilities.interfaces; - - -public interface DatabaseDefinition { -} diff --git a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ModelSerializer.java b/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ModelSerializer.java deleted file mode 100644 index 7dbeb56dd..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/utilities/interfaces/ModelSerializer.java +++ /dev/null @@ -1,9 +0,0 @@ -package eu.eudat.utilities.interfaces; - - -import eu.eudat.models.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; -import eu.eudat.models.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; - -public interface ModelSerializer { - void fromDatabaseDefinition(T viewStyle, U model); -} diff --git a/dmp-backend/web/src/main/resources/application.properties b/dmp-backend/web/src/main/resources/application.properties index 80c778cce..62e72673c 100644 --- a/dmp-backend/web/src/main/resources/application.properties +++ b/dmp-backend/web/src/main/resources/application.properties @@ -1,6 +1,6 @@ ##########################Security########################################## -#eu.eudat.security.portmapping.http = 7081 -#eu.eudat.security.portmapping.https = 7444 +#eu.eudat.logic.security.portmapping.http = 7081 +#eu.eudat.logic.security.portmapping.https = 7444 ########################/Security######################################## server.port=8080 logging.file=/logs/spring-boot-logging.log @@ -14,7 +14,7 @@ production.database.username=dmptool production.database.password=dmpt00lu$r ##########################/Persistence########################################## ###################Allowed Proxy Service Host ############################ -eu.eudat.proxy.allowed.host=https://eestore.paas2.uninett.no +eu.eudat.logic.proxy.allowed.host=https://eestore.paas2.uninett.no configuration.externalUrls=/classes/ExternalUrls.xml configuration.dynamicProjectUrl=/classes/ProjectConfiguration.xml @@ -69,4 +69,4 @@ project.configuration.grant.name = Grant ################################################################################# http-logger.initial-delay = 0 http-logger.delay = 10 -http-logger.server-address = http://localhost:31311 \ No newline at end of file +http-logger.server-address = http://logstash:31311 \ No newline at end of file diff --git a/dmp-frontend/.dockerignore b/dmp-frontend/.dockerignore new file mode 100644 index 000000000..600e365ec --- /dev/null +++ b/dmp-frontend/.dockerignore @@ -0,0 +1 @@ +**/node_modules \ No newline at end of file diff --git a/dmp-frontend/Dockerfile b/dmp-frontend/Dockerfile new file mode 100644 index 000000000..fd0126fdb --- /dev/null +++ b/dmp-frontend/Dockerfile @@ -0,0 +1,13 @@ +FROM johnpapa/angular-cli as angular +WORKDIR /app +COPY package.json /app/ +RUN npm cache clear --force && npm install +COPY ./ /app/ +ARG env=dev +ARG aot=--no-aot +RUN ng build --$env --$aot + +# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx +FROM nginx:1.13 +COPY --from=angular /app/dist/ /usr/share/nginx/html +COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/dmp-frontend/nginx-custom.conf b/dmp-frontend/nginx-custom.conf new file mode 100644 index 000000000..a560219f7 --- /dev/null +++ b/dmp-frontend/nginx-custom.conf @@ -0,0 +1,8 @@ +server { + listen 80; + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + } +} \ No newline at end of file diff --git a/dmp-frontend/package-lock.json b/dmp-frontend/package-lock.json index 73a48530b..c856085ab 100644 --- a/dmp-frontend/package-lock.json +++ b/dmp-frontend/package-lock.json @@ -49,9 +49,9 @@ } }, "rxjs": { - "version": "5.5.10", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", - "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", "dev": true, "requires": { "symbol-observable": "1.0.1" @@ -70,9 +70,9 @@ }, "dependencies": { "rxjs": { - "version": "5.5.10", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", - "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", "dev": true, "requires": { "symbol-observable": "1.0.1" @@ -164,9 +164,9 @@ }, "dependencies": { "rxjs": { - "version": "5.5.10", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", - "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", "dev": true, "requires": { "symbol-observable": "1.0.1" @@ -355,9 +355,9 @@ }, "dependencies": { "rxjs": { - "version": "5.5.10", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", - "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", "dev": true, "requires": { "symbol-observable": "1.0.1" @@ -376,9 +376,9 @@ "integrity": "sha512-fC12hKtEzVkrV/ZRcrmqvpHG/TMYDZtgpAmgMUA4F7KneDaQeFMwmPz8AfygKKJMqsdTi8bL+E+fciaaMLxUhg==" }, "@types/jasmine": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.7.tgz", - "integrity": "sha512-RdbrPcW1aD78UmdLiDa9ZCKrbR5Go8PXh6GCpb4oIOkWVEusubSJJDrP4c5RYOu8m/CBz+ygZpicj6Pgms5a4Q==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.8.tgz", + "integrity": "sha512-OJSUxLaxXsjjhob2DBzqzgrkLmukM3+JMpRp0r0E4HTdT1nwDCWhaswjYxazPij6uOdzHCJfNbDjmQ1/rnNbCg==", "dev": true }, "@types/jasminewd2": { @@ -391,9 +391,9 @@ } }, "@types/node": { - "version": "6.0.110", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.110.tgz", - "integrity": "sha512-LiaH3mF+OAqR+9Wo1OTJDbZDtCewAVjTbMhF1ZgUJ3fc8xqOJq6VqbpBh9dJVCVzByGmYIg2fREbuXNX0TKiJA==", + "version": "6.0.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.113.tgz", + "integrity": "sha512-f9XXUWFqryzjkZA1EqFvJHSFyqyasV17fq8zCDIzbRV4ctL7RrJGKvG+lcex86Rjbzd1GrER9h9VmF5sSjV0BQ==", "dev": true }, "@types/q": { @@ -437,9 +437,9 @@ } }, "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", "dev": true }, "acorn-dynamic-import": { @@ -488,14 +488,14 @@ } }, "ajv": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz", - "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.1" }, "dependencies": { @@ -504,6 +504,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true } } }, @@ -611,12 +617,12 @@ "dev": true }, "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "^2.0.0" } }, "aproba": { @@ -626,9 +632,9 @@ "dev": true }, "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { "delegates": "^1.0.0", @@ -757,6 +763,23 @@ "dev": true, "requires": { "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, "assert-plus": { @@ -772,19 +795,19 @@ "dev": true }, "ast-types": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", - "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.5.tgz", + "integrity": "sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw==", "dev": true, "optional": true }, "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "^4.14.0" + "lodash": "^4.17.10" } }, "async-each": { @@ -1391,9 +1414,9 @@ } }, "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", "dev": true }, "buffer-indexof": { @@ -1548,9 +1571,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000842", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000842.tgz", - "integrity": "sha512-juspQHLwQRgptEM03HN66SpM/ggZUB+m49NAgJIaIS11aXVNeRB57sEY1X6tEzeK2THGvYWKZZu1wIbh+W7YTA==", + "version": "1.0.30000856", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000856.tgz", + "integrity": "sha512-x3mYcApHMQemyaHuH/RyqtKCGIYTgEA63fdi+VBvDz8xUSmRiVWTLeyKcoGQCGG6UPR9/+4qG4OKrTa6aSQRKg==", "dev": true }, "caseless": { @@ -1746,18 +1769,18 @@ } }, "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", "dev": true, "requires": { - "color-name": "^1.1.1" + "color-name": "1.1.1" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", "dev": true }, "colors": { @@ -1791,13 +1814,10 @@ "dev": true }, "common-tags": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz", - "integrity": "sha512-joj9ZlUOjCrwdbmiLqafeUSgkUM74NqhLsZtSqDmhKudaIY197zTrb8JMl31fMnCUuxwFT23eC/oWvrZzDLRJQ==", - "dev": true, - "requires": { - "babel-runtime": "^6.26.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", @@ -1806,9 +1826,9 @@ "dev": true }, "compare-versions": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.2.1.tgz", - "integrity": "sha512-2y2nHcopMG/NAyk6vWXlLs86XeM9sik4jmx1tKIgzMi9/RQ2eo758RGpxQO3ErihHmg0RlQITPqgz73y6s7quA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.0.tgz", + "integrity": "sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ==", "dev": true }, "component-bind": { @@ -1830,12 +1850,20 @@ "dev": true }, "compressible": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", - "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", + "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "dev": true, "requires": { - "mime-db": ">= 1.33.0 < 2" + "mime-db": ">= 1.34.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.34.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz", + "integrity": "sha1-RS0Oz/XDA0am3B5kseruDTcZ/5o=", + "dev": true + } } }, "compression": { @@ -2025,9 +2053,9 @@ } }, "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" }, "core-object": { "version": "3.1.5", @@ -2300,12 +2328,20 @@ "optional": true }, "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } } }, "define-properties": { @@ -2662,9 +2698,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.47", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz", - "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=", + "version": "1.3.49", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.49.tgz", + "integrity": "sha1-ZROEsNgfB4qWY5srNpdRQbeRUAQ=", "dev": true }, "elliptic": { @@ -2812,18 +2848,18 @@ } }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", - "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { "es-to-primitive": "^1.1.1", @@ -2845,9 +2881,9 @@ } }, "es5-ext": { - "version": "0.10.42", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", - "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { "es6-iterator": "~2.0.3", @@ -2943,9 +2979,9 @@ "dev": true }, "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz", + "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "optional": true, "requires": { @@ -3420,9 +3456,9 @@ } }, "follow-redirects": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", - "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", + "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "dev": true, "requires": { "debug": "^3.1.0" @@ -4150,9 +4186,9 @@ } }, "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "optional": true, "requires": { @@ -4286,14 +4322,14 @@ } }, "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "dev": true, "optional": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.4", + "lodash": "~4.17.10", "minimatch": "~3.0.2" } }, @@ -4420,12 +4456,12 @@ } }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.0.2" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -4543,9 +4579,9 @@ } }, "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.4.tgz", + "integrity": "sha512-A6RlQvvZEtFS5fLU43IDu0QUmBy+fDO9VMdTXvufKwIkt/rFfvICAViCax5fbDO4zdNzaC3/27ZhKUok5bAJyw==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -4632,9 +4668,9 @@ "dev": true }, "html-minifier": { - "version": "3.5.15", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.15.tgz", - "integrity": "sha512-OZa4rfb6tZOZ3Z8Xf0jKxXkiDcFWldQePGYFDcgKqES2sXeWaEv9y6QQvWUtX3ySI3feApQi5uCsHLINQ6NoAw==", + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.16.tgz", + "integrity": "sha512-zP5EfLSpiLRp0aAgud4CQXPQZm9kXwWjR/cF0PfdOj+jjWnOaCgeZcll4kYXSvIBPeUMmyaSc7mM4IDtA+kboA==", "dev": true, "requires": { "camel-case": "3.0.x", @@ -4740,9 +4776,9 @@ } }, "http-parser-js": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.12.tgz", - "integrity": "sha1-uc+/Sizybw/DSxDKFImid3HjR08=", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", "dev": true }, "http-proxy": { @@ -4867,9 +4903,9 @@ "dev": true }, "ieee754": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", - "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", "dev": true }, "iferr": { @@ -4879,9 +4915,9 @@ "dev": true }, "ignore": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", - "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, "image-size": { @@ -5392,12 +5428,12 @@ "dev": true }, "istanbul-lib-hook": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz", - "integrity": "sha512-p3En6/oGkFQV55Up8ZPC2oLxvgSxD8CzA0yBrhRZSh3pfv3OFj9aSGVC0yoerAi/O4u7jUVnOGVX1eVFM+0tmQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz", + "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==", "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "^1.0.0" } }, "istanbul-lib-instrument": { @@ -5445,9 +5481,9 @@ } }, "istanbul-lib-source-maps": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz", - "integrity": "sha512-UzuK0g1wyQijiaYQxj/CdNycFhAd2TLtO2obKQMTZrZ1jzEMRY3rvpASEKkaxbRR6brvdovfA03znPa/pXcejg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", + "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==", "dev": true, "requires": { "debug": "^3.1.0", @@ -5523,9 +5559,9 @@ "dev": true }, "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -5686,14 +5722,14 @@ } }, "karma": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.2.tgz", - "integrity": "sha1-TS25QChQpmVR+nhLAWT7CCTtjEs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.3.tgz", + "integrity": "sha512-7bVCQs8+DCLWj5TIUBIgPa95/o8X9pBhyF+E2hX51Z6Ttq2biYWQlynBmunKZGRyNOIyg89TnVtC58q9eGBFFw==", "dev": true, "requires": { "bluebird": "^3.3.0", "body-parser": "^1.16.1", - "chokidar": "^1.4.1", + "chokidar": "^2.0.3", "colors": "^1.1.0", "combine-lists": "^1.0.0", "connect": "^3.6.0", @@ -5706,7 +5742,7 @@ "http-proxy": "^1.13.0", "isbinaryfile": "^3.0.0", "lodash": "^4.17.4", - "log4js": "^2.3.9", + "log4js": "^2.5.3", "mime": "^1.3.4", "minimatch": "^3.0.2", "optimist": "^0.6.1", @@ -5720,6 +5756,347 @@ "useragent": "2.2.1" }, "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -5961,6 +6338,11 @@ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, "lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", @@ -5974,6 +6356,12 @@ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.mergewith": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", @@ -5987,10 +6375,27 @@ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", "dev": true }, + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "requires": { + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "requires": { + "lodash._reinterpolate": "~3.0.0" + } + }, "log4js": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.6.1.tgz", - "integrity": "sha512-BOoWTr8gxJ9XRkQr/f68KUciHR6qnLESgbXuoD7VAhtu/aMq5kD1WD7IFMMaKjCDKLUHsjwT3V2cw34ENiJKig==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.9.0.tgz", + "integrity": "sha512-pptn4+5Q3ysOW6Jgm9lzhDUCFEYv7FLrazEzPQQlxgSP+IVl5HMPgT8hm2DyRqGY4GUiVjZz4XXRvTZ9BELQyw==", "dev": true, "requires": { "amqplib": "^0.5.2", @@ -6212,9 +6617,9 @@ } }, "mailgun-js": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.18.0.tgz", - "integrity": "sha512-o0P6jjZlx5CQj12tvVgDTbgjTqVN0+5h6/6P1+3c6xmozVKBwniQ6Qt3MkCSF0+ueVTbobAfWyGpWRZMJu8t1g==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.18.1.tgz", + "integrity": "sha512-lvuMP14u24HS2uBsJEnzSyPMxzU2b99tQsIx1o6QNjqxjk8b3WvR+vq5oG1mjqz/IBYo+5gF+uSoDS0RkMVHmg==", "dev": true, "optional": true, "requires": { @@ -6627,6 +7032,14 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "ngx-breadcrumbs": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ngx-breadcrumbs/-/ngx-breadcrumbs-0.0.3.tgz", + "integrity": "sha512-fa1pg/ZxgLZd4pqbXoBtrkPrYbg2WxWc+QEkJgZ/h/oTXVCwWcYWdGm6ZMny/ib0ywOAqVzO3ZkmnJMD9FHkkw==", + "requires": { + "lodash.template": "^4.4.0" + } + }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -6643,21 +7056,20 @@ "dev": true }, "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", + "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", "dev": true, "optional": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", "mkdirp": "^0.5.0", "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", "osenv": "0", - "request": "2", + "request": ">=2.9.0 <2.82.0", "rimraf": "2", "semver": "~5.3.0", "tar": "^2.0.0", @@ -7057,9 +7469,9 @@ } }, "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", "dev": true }, "object-visit": { @@ -7238,9 +7650,9 @@ "dev": true }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -7945,9 +8357,9 @@ } }, "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "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 }, "q": { @@ -8423,9 +8835,9 @@ "dev": true }, "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { "path-parse": "^1.0.5" @@ -8496,9 +8908,9 @@ } }, "rxjs": { - "version": "5.6.0-forward-compat.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.6.0-forward-compat.4.tgz", - "integrity": "sha512-cLkrsMwsNa3lNVa+U9Uwo1u30hos193bZaSDs8CKMOC1q+OgnTc8TdvAXmq8g37vbhkpQfaeMYlm8BkOzthj/g==", + "version": "5.6.0-forward-compat.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.6.0-forward-compat.5.tgz", + "integrity": "sha512-CJ9UIV5LlcyGhKWOVvZa4PcVbJJbGNcTunG29cflNo+Y2jAZgvMdZVl4xwYNiYK5gmley/0QuAFVJ0M4GO+GNQ==", "requires": { "symbol-observable": "1.0.1" } @@ -8518,6 +8930,12 @@ "ret": "~0.1.10" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -9212,9 +9630,9 @@ "dev": true }, "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { "asn1": "~0.2.3", @@ -9224,6 +9642,7 @@ "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "dependencies": { @@ -9302,9 +9721,9 @@ } }, "stream-http": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz", - "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { "builtin-status-codes": "^3.0.0", @@ -9835,9 +10254,9 @@ } }, "tslib": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", - "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==" + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.2.tgz", + "integrity": "sha512-AVP5Xol3WivEr7hnssHDsaM+lVrVXWUvd1cfXTRkTj80b//6g2wIFEH6hZG0muGZRnHGrfttpdzRk3YlBkWjKw==" }, "tslint": { "version": "5.9.1", @@ -9895,9 +10314,9 @@ "optional": true }, "tsutils": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz", - "integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.1.tgz", + "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -9957,9 +10376,9 @@ "dev": true }, "uglify-js": { - "version": "3.3.25", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.25.tgz", - "integrity": "sha512-hobogryjDV36VrLK3Y69ou4REyrTApzUblVFmdQOYRe8cYaSmFJXMb4dR9McdvYDSbeNdzUgYr2YVukJaErJcA==", + "version": "3.3.28", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.28.tgz", + "integrity": "sha512-68Rc/aA6cswiaQ5SrE979UJcXX+ADA1z33/ZsPd+fbAiVdjZ16OXdbtGO+rJUUBgK6qdf3SOPhQf3K/ybF5Miw==", "dev": true, "requires": { "commander": "~2.15.0", @@ -9982,9 +10401,9 @@ "optional": true }, "uglifyjs-webpack-plugin": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz", - "integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.6.tgz", + "integrity": "sha512-NDP94ahjW7ZH+qzdjxjIV04n5YGnrYD2jeHgKgnpUKmdAfcXEO5DbVo21fXAm/KPMyX9k21zWFBMYm9m9R2ptg==", "dev": true, "requires": { "cacache": "^10.0.4", @@ -10087,9 +10506,9 @@ } }, "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "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": { @@ -10157,9 +10576,9 @@ "dev": true }, "uri-js": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.1.tgz", - "integrity": "sha512-jpKCA3HjsBfSDOEgxRDAxQCNyHfCPSbq57PqCkd3gAyBuPb3IWxw54EHncqESznIdqSetHfw3D7ylThu2Kcc9A==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -10224,9 +10643,9 @@ } }, "url-parse": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.0.tgz", - "integrity": "sha512-ERuGxDiQ6Xw/agN4tuoCRbmwRuZP0cJ1lJxJubXr5Q/5cDa78+Dc4wfvtxzhzhkm5VvmW6Mf8EVj9SPGN4l8Lg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", + "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", "dev": true, "requires": { "querystringify": "^2.0.0", @@ -10269,20 +10688,12 @@ } }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "inherits": "2.0.3" } }, "util-deprecate": { @@ -10317,9 +10728,9 @@ "optional": true }, "v8flags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.0.tgz", - "integrity": "sha512-0m69VIK2dudEf2Ub0xwLQhZkDZu85OmiOpTw+UGDt56ibviYICHziM/3aE+oVg7IjGPp0c83w3eSVqa+lYZ9UQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", + "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" @@ -10444,23 +10855,24 @@ } }, "chokidar": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", - "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.0", "braces": "^2.3.0", - "fsevents": "^1.1.2", + "fsevents": "^1.2.2", "glob-parent": "^3.1.0", "inherits": "^2.0.1", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", "normalize-path": "^2.1.1", "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0", - "upath": "^1.0.0" + "upath": "^1.0.5" } }, "expand-brackets": { @@ -11204,23 +11616,24 @@ "dev": true }, "chokidar": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", - "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.0", "braces": "^2.3.0", - "fsevents": "^1.1.2", + "fsevents": "^1.2.2", "glob-parent": "^3.1.0", "inherits": "^2.0.1", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", "normalize-path": "^2.1.1", "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0", - "upath": "^1.0.0" + "upath": "^1.0.5" } }, "debug": { @@ -11564,9 +11977,9 @@ } }, "webpack-merge": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz", - "integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.3.tgz", + "integrity": "sha512-zxwAIGK7nKdu5CIZL0BjTQoq3elV0t0MfB7rUC1zj668geid52abs6hN/ACwZdK6LeMS8dC9B6WmtF978zH5mg==", "dev": true, "requires": { "lodash": "^4.17.5" @@ -11622,9 +12035,9 @@ "dev": true }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -11637,12 +12050,12 @@ "dev": true }, "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "window-size": { diff --git a/dmp-frontend/package.json b/dmp-frontend/package.json index 8195c4bd9..fef6812eb 100644 --- a/dmp-frontend/package.json +++ b/dmp-frontend/package.json @@ -31,6 +31,7 @@ "@types/file-saver": "1.3.0", "core-js": "^2.4.1", "file-saver": "1.3.3", + "ngx-breadcrumbs": "0.0.3", "rxjs": "^5.6.0-forward-compat.4", "zone.js": "^0.8.19" }, diff --git a/dmp-frontend/src/app/app-routing.module.ts b/dmp-frontend/src/app/app-routing.module.ts index 671e366dd..867ad6ab1 100644 --- a/dmp-frontend/src/app/app-routing.module.ts +++ b/dmp-frontend/src/app/app-routing.module.ts @@ -8,19 +8,112 @@ import { WelcomepageComponent } from './welcomepage/welcomepage.component'; import { B2AccessLoginComponent } from './user-management/login/b2access/b2access-login.component'; const appRoutes: Routes = [ - { path: 'datasets', loadChildren: './datasets/dataset.module#DatasetModule', canActivate: [AuthGuard] }, - { path: 'about', loadChildren: './about/about.module#AboutModule', canActivate: [AuthGuard] }, - { path: 'projects', loadChildren: './projects/projects.module#ProjectsModule', canActivate: [AuthGuard] }, - { path: "dmps", loadChildren: './dmps/dmps.module#DataManagementPlanModule', canActivate: [AuthGuard] }, - { path: "dmp-profiles", loadChildren: './dmp-profiles/dmp-profile.module#DataManagamentPlanProfileModule', canActivate: [AuthGuard] }, - { path: 'form', loadChildren: './dataset-profile-form/dataset-profile.module#DatasetProfileModule', canActivate: [AuthGuard] }, - { path: 'home', component: HomepageComponent, canActivate: [AuthGuard] }, - { path: '', redirectTo: '/welcome', pathMatch: 'full' }, - { path: "unauthorized", loadChildren: './unauthorized/unauthorized.module#UnauthorizedModule' }, - { path: "users", loadChildren: './users/users.module#UsersModule' }, - { path: "datasetsProfiles", loadChildren: './datasets-admin-listing/dataset-admin.module#DatasetAdminModule' }, - { path: "welcome", component: WelcomepageComponent }, - { path: "api/oauth/authorized/b2access", component: B2AccessLoginComponent } + { + path: 'datasets', + loadChildren: './datasets/dataset.module#DatasetModule', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'Folder' + }, + canActivate: [AuthGuard] + }, + { + path: 'about', + loadChildren: './about/about.module#AboutModule', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'About' + }, + canActivate: [AuthGuard] + }, + { + path: 'projects', + loadChildren: './projects/projects.module#ProjectsModule', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'Projects' + }, + canActivate: [AuthGuard] + }, + { + path: "dmps", + loadChildren: './dmps/dmps.module#DataManagementPlanModule', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'DMPs' + }, + canActivate: [AuthGuard] + }, + { + path: "dmp-profiles", + loadChildren: './dmp-profiles/dmp-profile.module#DataManagamentPlanProfileModule', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'DMP Profiles' + }, + canActivate: [AuthGuard] + }, + { + path: 'form', + loadChildren: './dataset-profile-form/dataset-profile.module#DatasetProfileModule', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'Dataset Profile' + }, + canActivate: [AuthGuard] + }, + { + path: 'home', + component: HomepageComponent, + data: { + // Interpolates values resolved by the router + breadcrumbs: 'Home' + }, + canActivate: [AuthGuard] + }, + { + path: '', + redirectTo: '/welcome', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'Home' + }, + pathMatch: 'full' + }, + { + path: "unauthorized", + loadChildren: './unauthorized/unauthorized.module#UnauthorizedModule', + data: { + // Interpolates values resolved by the router + }, + }, + { + path: "users", + loadChildren: './users/users.module#UsersModule' + }, + { + path: "datasetsProfiles", + loadChildren: './datasets-admin-listing/dataset-admin.module#DatasetAdminModule', + data: { + // Interpolates values resolved by the router + breadcrumbs: 'Datasets Profiles' + }, + }, + { + path: "welcome", + component: WelcomepageComponent, + data: { + // Interpolates values resolved by the router + breadcrumbs: 'Home' + }, + }, + { + path: "api/oauth/authorized/b2access", + component: B2AccessLoginComponent, + data: { + // Interpolates values resolved by the router + }, + } ]; @NgModule({ diff --git a/dmp-frontend/src/app/app.component.html b/dmp-frontend/src/app/app.component.html index 0a2b6546f..ba98603d4 100644 --- a/dmp-frontend/src/app/app.component.html +++ b/dmp-frontend/src/app/app.component.html @@ -1,21 +1,22 @@
-
- -
-
-
- -
-
- -
-
- -
-
-
- -
-
\ No newline at end of file +
+ +
+
+
+ +
+
+ + +
+
+ +
+
+
+ +
+ diff --git a/dmp-frontend/src/app/app.component.ts b/dmp-frontend/src/app/app.component.ts index 291d05472..bf7bf8656 100644 --- a/dmp-frontend/src/app/app.component.ts +++ b/dmp-frontend/src/app/app.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute, NavigationExtras } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { LanguageResolverService } from './services/language-resolver/language-resolver.service'; +import { BreadCrumbResolverService } from './services/breadcrumb/breadcrumb-resolver.service'; declare const gapi: any; @@ -16,7 +17,13 @@ declare var $: any; }) export class AppComponent implements OnInit { - constructor(private router: Router, private route: ActivatedRoute, private translate: TranslateService, private languageService: LanguageResolverService) { + constructor( + private router: Router, + private route: ActivatedRoute, + private translate: TranslateService, + private languageService: LanguageResolverService, + private breadCrumbResolverService: BreadCrumbResolverService + ) { // this language will be used as a fallback when a translation isn't found in the current language translate.setDefaultLang('en'); // the lang to use, if the lang isn't available, it will use the current loader to get them @@ -24,6 +31,14 @@ export class AppComponent implements OnInit { } + onActivate(event: any) { + this.breadCrumbResolverService.push(event) + } + + onDeactivate(event: any) { + //this.breadCrumbResolverService.clear() + } + ngOnInit() { } diff --git a/dmp-frontend/src/app/app.module.ts b/dmp-frontend/src/app/app.module.ts index 658077f76..f8f974aa3 100644 --- a/dmp-frontend/src/app/app.module.ts +++ b/dmp-frontend/src/app/app.module.ts @@ -41,6 +41,9 @@ import { UsersModule } from './users/users.module'; import { HelpContentComponent } from './shared/help-content/help-content.component'; import { AuthGuard } from './shared/guards/auth.guard'; import { UrlUtilities } from './utilities/UrlUtilities'; +import { BreadcrumbComponent } from './shared/components/breadcrumb/breadcrumb.component'; +import { BreadCrumbResolverService } from './services/breadcrumb/breadcrumb-resolver.service'; +import { McBreadcrumbsModule } from 'ngx-breadcrumbs'; @NgModule({ declarations: [ @@ -50,12 +53,13 @@ import { UrlUtilities } from './utilities/UrlUtilities'; RecentActivityComponent, WelcomepageComponent, HelpContentComponent, - B2AccessLoginComponent + B2AccessLoginComponent, + BreadcrumbComponent ], imports: [ BrowserModule, ReactiveFormsModule, - + McBreadcrumbsModule.forRoot(), FormsModule, HttpModule, HttpClientModule, @@ -111,7 +115,8 @@ import { UrlUtilities } from './utilities/UrlUtilities'; DashboardService, HelpContentService, LanguageService, - LanguageResolverService + LanguageResolverService, + BreadCrumbResolverService ], bootstrap: [AppComponent] }) diff --git a/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts b/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts index a7d51ca05..3b8538e08 100644 --- a/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts +++ b/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts @@ -1,12 +1,12 @@ import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { Section } from 'app/models/datasetProfileAdmin/Section'; +import { Section } from '../../models/datasetProfileAdmin/Section'; import { FormArray } from '@angular/forms'; -import { DatasetProfileModel } from 'app/models/DataSetProfile/DatasetProfileModel'; -import { FieldSet } from 'app/models/datasetProfileAdmin/FieldSet'; -import { Field } from 'app/models/datasetProfileAdmin/Field'; -import { Page } from 'app/models/datasetProfileAdmin/Page'; -import { JsonSerializer } from 'app/utilities/JsonSerializer'; +import { DatasetProfileModel } from '../../models/datasetprofile/DatasetProfileModel'; +import { FieldSet } from '../../models/datasetProfileAdmin/FieldSet'; +import { Field } from '../../models/datasetProfileAdmin/Field'; +import { Page } from '../../models/datasetProfileAdmin/Page'; +import { JsonSerializer } from '../../utilities/JsonSerializer'; @Component({ selector: 'section-form', @@ -60,4 +60,4 @@ export class SectionFormComponent { if (pages.find(elem => elem.id === selectedPage) === undefined) this.form.get("page").reset(); } -} \ No newline at end of file +} diff --git a/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts b/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts index ff66b4821..739760b64 100644 --- a/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts +++ b/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts @@ -14,6 +14,8 @@ import { PageEvent } from '@angular/material'; import { DataManagementPlanService } from "../../services/data-management-plan/data-management-plan.service"; import { DataManagementPlanModel } from "../../models/data-managemnt-plans/DataManagementPlanModel"; import { DatasetCriteriaComponent } from '../../shared/components/criteria/datasets/datasets-criteria.component'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; @Component({ @@ -21,18 +23,19 @@ import { DatasetCriteriaComponent } from '../../shared/components/criteria/datas templateUrl: 'dataset-listing.component.html', styleUrls: ['./dataset-listing.component.scss'], }) -export class DatasetListingComponent implements OnInit { +export class DatasetListingComponent implements OnInit, IBreadCrumbComponent { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent; + breadCrumbs: Observable; dataSource: DatasetDataSource | null; displayedColumns: String[] = ['label', 'dmp', 'profile', 'dataRepositories', 'registries', 'services', 'description', 'created', 'actions']; pageEvent: PageEvent; titlePrefix: String; - dmpId: String; + dmpId: string; statuses = [ { value: '0', viewValue: 'Active' }, @@ -52,14 +55,19 @@ export class DatasetListingComponent implements OnInit { ngOnInit() { + this.route.params.subscribe((params: Params) => { this.dmpId = params['dmpId']; this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); this.refresh(); this.criteria.setRefreshCallback(() => this.refresh()); - if (this.dmpId != null) + if (this.dmpId != null) { + this.breadCrumbs = Observable.of([{ parentComponentName: "DataManagementPlanEditorComponent", label: params['dmpLabel'], url: "dmps/edit/" + this.dmpId }, { parentComponentName: null, label: 'Datasets', url: "dmps" }]) if (params['dmpLabel'] != undefined) this.titlePrefix = "for " + params['dmpLabel']; + } else { + this.breadCrumbs = Observable.of([{ parentComponentName: null, label: 'Datasets', url: "datasets" }]) + } }); } diff --git a/dmp-frontend/src/app/dmps/dmps.routes.ts b/dmp-frontend/src/app/dmps/dmps.routes.ts index 10d608026..773261739 100644 --- a/dmp-frontend/src/app/dmps/dmps.routes.ts +++ b/dmp-frontend/src/app/dmps/dmps.routes.ts @@ -6,12 +6,62 @@ import { RouterModule, Routes } from '@angular/router'; import { InvitationAcceptedComponent } from '../shared/components/invitation-accepted/invitation-accepted.component'; export const DataManagementPlanRoutes: Routes = [ - { path: '', component: DataManagementPlanListingComponent }, - { path: 'viewversions/:groupId', component: DataManagementPlanListingComponent }, - { path: 'project/:projectId', component: DataManagementPlanListingComponent }, - { path: 'edit/:id', component: DataManagementPlanEditorComponent }, - { path: 'new', component: DataManagementPlanEditorComponent }, - { path: 'new_version/:id', component: DataManagementPlanWizardComponent, data: { clone: false } }, - { path: 'clone/:id', component: DataManagementPlanWizardComponent, data: { clone: true } }, - { path: "invitation/:id", component: InvitationAcceptedComponent } + { + path: '', + component: DataManagementPlanListingComponent, + data: { + breadcrumbs: '' + } + }, + { + path: 'viewversions/:groupId', + component: DataManagementPlanListingComponent, + data: { + breadcrumbs: 'group' + } + }, + { + path: 'project/:projectId', + component: DataManagementPlanListingComponent, + data: { + breadcrumbs: 'project' + } + }, + { + path: 'edit/:id', + component: DataManagementPlanEditorComponent, + data: { + breadcrumbs: 'edit' + } + }, + { + path: 'new', + component: DataManagementPlanEditorComponent, + data: { + breadcrumbs: 'new' + } + }, + { + path: 'new_version/:id', + component: DataManagementPlanWizardComponent, + data: { + clone: false, + breadcrumbs: 'new version' + } + }, + { + path: 'clone/:id', + component: DataManagementPlanWizardComponent, + data: { + clone: true, + breadcrumbs: 'clone' + } + }, + { + path: "invitation/:id", + component: InvitationAcceptedComponent, + data: { + breadcrumbs: 'ivitation' + } + } ]; diff --git a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts index f300c7f24..2652f0d84 100644 --- a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts +++ b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts @@ -31,6 +31,8 @@ import { DataManagementPlanProfileListingModel } from "../../models/data-managem import { DataManagementPlanProfileCriteria } from "../../models/criteria/dmp-profile/DataManagementPlanProfileCriteria"; import { DataManagementPlanProfile } from "../../models/data-management-plan-profile/DataManagementPlanProfile"; import { LanguageResolverService } from "../../services/language-resolver/language-resolver.service"; +import { IBreadCrumbComponent } from "../../shared/components/breadcrumb/definition/IBreadCrumbComponent"; +import { BreadcrumbItem } from "../../shared/components/breadcrumb/definition/breadcrumb-item"; @Component({ selector: 'app-dmp-editor-component', @@ -38,9 +40,10 @@ import { LanguageResolverService } from "../../services/language-resolver/langua styleUrls: ['./dmp-editor.component.scss'], encapsulation: ViewEncapsulation.None }) -export class DataManagementPlanEditorComponent implements AfterViewInit { +export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadCrumbComponent { + breadCrumbs: Observable; isNew = true; textCtrl = new FormControl(); dataManagementPlan: DataManagementPlanModel; @@ -92,12 +95,25 @@ export class DataManagementPlanEditorComponent implements AfterViewInit { if (itemId != null) { this.isNew = false; this.dataManagementPlanService.getSingle(itemId).map(data => data as DataManagementPlanModel) - .subscribe(data => { + .subscribe(async data => { this.dataManagementPlan = JsonSerializer.fromJSONObject(data, DataManagementPlanModel); this.formGroup = this.dataManagementPlan.buildForm(); if (this.formGroup.get("profile") && this.formGroup.get("profile").value) { this.textCtrl.patchValue(this.formGroup.get("profile").value); } + this.breadCrumbs = Observable.of([ + { + parentComponentName: "DataManagementPlanListingComponent", + label: 'DMPs', + url: "dmps", + notFoundResolver: [await this.projectService.getSingle(this.dataManagementPlan.project.id).map(x => ({ label: x.label, url: '/projects/edit/' + x.id }) as BreadcrumbItem).toPromise()] + }, + { + parentComponentName: null, + label: this.dataManagementPlan.label, + url: "/dmps/edit/" + this.dataManagementPlan.id + }] + ) this.associatedUsers = data.associatedUsers; }); } else { diff --git a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts index 4b1a34f69..51f2c9fdd 100644 --- a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts +++ b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts @@ -8,13 +8,15 @@ import { import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; import { Component, ViewChild, OnInit, AfterViewInit } from "@angular/core"; import { MatPaginator, MatSort, MatSnackBar, MatDialog } from "@angular/material"; -import { Router, ActivatedRoute } from "@angular/router"; +import { Router, ActivatedRoute, ActivatedRouteSnapshot } from "@angular/router"; import { TranslateService } from "@ngx-translate/core"; import { DataSource } from "@angular/cdk/table"; import { Observable } from "rxjs/Observable"; import { DataManagementPlanRoutes } from '../../dmps/dmps.routes'; import { DatasetRoutes } from '../../datasets/dataset.routes'; import { ProjectModel } from '../../models/projects/ProjectModel'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; @@ -23,13 +25,15 @@ import { ProjectModel } from '../../models/projects/ProjectModel'; templateUrl: 'dmp-listing.component.html', styleUrls: ['./dmp-listing.component.scss'], }) -export class DataManagementPlanListingComponent implements OnInit { +export class DataManagementPlanListingComponent implements OnInit, IBreadCrumbComponent { + @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @ViewChild(DataManagementPlanCriteriaComponent) criteria: DataManagementPlanCriteriaComponent; + breadCrumbs: Observable = Observable.of([]); dataSource: DataManagementPlanDataSource | null; displayedColumns: String[] = ['name', 'project', 'creationTime', 'organisations', 'version', 'numOfDatasets', 'actions']; itemId: string; @@ -48,7 +52,8 @@ export class DataManagementPlanListingComponent implements OnInit { } ngOnInit() { - this.route.params.subscribe(params => { + this.route.params.subscribe(async params => { + let projectLabel; if (params["projectId"]) { this.projectId = params["projectId"]; this.showProject = false; @@ -56,10 +61,16 @@ export class DataManagementPlanListingComponent implements OnInit { project.id = this.projectId; this.criteria.setCriteria({ like: null, projects: [project], groupIds: null, allVersions: false }) this.refresh(); + projectLabel = this.route.snapshot.queryParams.projectLabel + this.breadCrumbs = Observable.of([{ parentComponentName: "ProjectEditorComponent", label: projectLabel, url: "/projects/edit/" + this.projectId }, { parentComponentName: null, label: 'DMPs', url: "/dmps/project/" + this.projectId, params: { projectLabel: projectLabel } }]) this.criteria.setRefreshCallback(() => this.refresh()); } else { this.itemId = params['groupId']; this.showProject = true; + let breadCrumbs = []; + if (this.itemId) breadCrumbs.push({ parentComponentName: null, label: 'DMPs For ' + this.itemId, url: "/dmps/viewversions/" + this.itemId }) + else breadCrumbs.push({ parentComponentName: null, label: 'DMPs', url: "/dmps" }) + this.breadCrumbs = Observable.of(breadCrumbs) this.criteria.setCriteria(this.getDefaultCriteria()); this.refresh(); @@ -67,8 +78,8 @@ export class DataManagementPlanListingComponent implements OnInit { } if (this.projectId != null) - if (params['projectLabel'] != undefined) - this.titlePrefix = "for " + params['projectLabel']; + if (projectLabel != undefined) + this.titlePrefix = "for " + projectLabel; }) } diff --git a/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts b/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts index fd09170ef..46a6a0b42 100644 --- a/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts +++ b/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts @@ -8,12 +8,16 @@ import { ActivatedRoute, Params, Router } from '@angular/router'; import { FormGroup } from '@angular/forms'; import { MatSnackBar } from '@angular/material'; import { TranslateService } from '@ngx-translate/core'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { Observable } from 'rxjs/Observable'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; @Component({ selector: 'app-dmp-wizard-component', templateUrl: 'dmp-wizard.component.html', styleUrls: ['./dmp-wizard.component.scss'], }) -export class DataManagementPlanWizardComponent implements OnInit { +export class DataManagementPlanWizardComponent implements OnInit, IBreadCrumbComponent { + breadCrumbs: Observable; constructor( private dataManagementPlanService: DataManagementPlanService, private language: TranslateService, @@ -28,6 +32,7 @@ export class DataManagementPlanWizardComponent implements OnInit { isClone: boolean ngOnInit(): void { + this.route.params.subscribe((params: Params) => { this.itemId = params['id']; this.dataManagementPlanService.getSingle(this.itemId).map(data => data as DataManagementPlanModel) diff --git a/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-autocomplete/autocomplete-remote.component.ts b/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-autocomplete/autocomplete-remote.component.ts index 2c0dfebff..30a17d46f 100644 --- a/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-autocomplete/autocomplete-remote.component.ts +++ b/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-autocomplete/autocomplete-remote.component.ts @@ -5,8 +5,8 @@ import { DatasetProfileService } from '../../../services/dataset-profile.service import { ActivatedRoute } from '@angular/router'; import { AutoCompleteConfiguration } from '../../../shared/components/autocomplete/AutoCompleteConfiguration'; import { RequestItem } from '../../../models/criteria/RequestItem'; -import { AutocompleteLookupItem } from '../../../models/auto-complete/AutocompleteLookUpItem' import { BaseCriteria } from '../../../models/criteria/BaseCriteria'; +import { AutocompleteLookupItem } from '../../../models/auto-complete/AutocompleteLookupItem'; declare var $: any; diff --git a/dmp-frontend/src/app/models/DataField/AutocompleteData.ts b/dmp-frontend/src/app/models/DataField/AutocompleteData.ts index 259687ab5..38372df5d 100644 --- a/dmp-frontend/src/app/models/DataField/AutocompleteData.ts +++ b/dmp-frontend/src/app/models/DataField/AutocompleteData.ts @@ -1,32 +1,32 @@ import { DataField } from './DataField'; import { FormGroup } from '@angular/forms' -import { ListingItem } from '../Common/ListingItem'; +import { ListingItem } from '../common/ListingItem'; import { JsonSerializer } from '../../utilities/JsonSerializer'; export class AutocompleteData extends DataField{ - public type: string; - public url: string; - public optionsRoot: string; - public autoCompleteOptions: ListingItem = new ListingItem(); + public type: string; + public url: string; + public optionsRoot: string; + public autoCompleteOptions: ListingItem = new ListingItem(); - buildForm(): FormGroup { - let formGroup = this.formBuilder.group({ - label: [this.label], - type: [this.type], - url: [this.url], - optionsRoot: [this.optionsRoot] - }) - formGroup.addControl("autoCompleteOptions", this.autoCompleteOptions.buildForm()); - return formGroup; - } + buildForm(): FormGroup { + let formGroup = this.formBuilder.group({ + label: [this.label], + type: [this.type], + url: [this.url], + optionsRoot: [this.optionsRoot] + }) + formGroup.addControl("autoCompleteOptions", this.autoCompleteOptions.buildForm()); + return formGroup; + } - fromJSONObject(item: any): AutocompleteData { - this.type = item.type; - this.url = item.url; - this.label = item.label; - this.optionsRoot = item.optionsRoot; - this.autoCompleteOptions = JsonSerializer.fromJSONObject(item.autoCompleteOptions, ListingItem); - return this; - } -} \ No newline at end of file + fromJSONObject(item: any): AutocompleteData { + this.type = item.type; + this.url = item.url; + this.label = item.label; + this.optionsRoot = item.optionsRoot; + this.autoCompleteOptions = JsonSerializer.fromJSONObject(item.autoCompleteOptions, ListingItem); + return this; + } +} diff --git a/dmp-frontend/src/app/models/DataField/RadioBoxData.ts b/dmp-frontend/src/app/models/DataField/RadioBoxData.ts index 443f61437..c52255ded 100644 --- a/dmp-frontend/src/app/models/DataField/RadioBoxData.ts +++ b/dmp-frontend/src/app/models/DataField/RadioBoxData.ts @@ -1,29 +1,29 @@ import { JsonSerializer } from '../../utilities/JsonSerializer'; import { DataField } from './DataField'; -import { ListingItem } from '../Common/ListingItem'; -import { FormGroup } from '@angular/forms' +import { ListingItem } from '../common/ListingItem'; +import { FormGroup } from '@angular/forms' export class RadioBoxData extends DataField{ - public options:Array; - - buildForm():FormGroup{ - let formGroup = this.formBuilder.group({ - label:[this.label] - }); - let optionsFormArray = new Array(); - if (this.options) { - this.options.forEach(item => { - let form: FormGroup = item.buildForm(); - optionsFormArray.push(form) - }) - } - formGroup.addControl('options', this.formBuilder.array(optionsFormArray)); - return formGroup; - } + public options: Array; - fromJSONObject(item:any):RadioBoxData{ - this.options = JsonSerializer.fromJSONArray(item.options,ListingItem); - this.label = item.label - return this; + buildForm(): FormGroup { + let formGroup = this.formBuilder.group({ + label: [this.label] + }); + let optionsFormArray = new Array(); + if (this.options) { + this.options.forEach(item => { + let form: FormGroup = item.buildForm(); + optionsFormArray.push(form) + }) } -} \ No newline at end of file + formGroup.addControl('options', this.formBuilder.array(optionsFormArray)); + return formGroup; + } + + fromJSONObject(item: any): RadioBoxData { + this.options = JsonSerializer.fromJSONArray(item.options, ListingItem); + this.label = item.label + return this; + } +} diff --git a/dmp-frontend/src/app/models/DataField/WordListData.ts b/dmp-frontend/src/app/models/DataField/WordListData.ts index 3a945359b..8af946636 100644 --- a/dmp-frontend/src/app/models/DataField/WordListData.ts +++ b/dmp-frontend/src/app/models/DataField/WordListData.ts @@ -1,32 +1,32 @@ import { JsonSerializer } from '../../utilities/JsonSerializer'; -import { ListingItem } from '../Common/ListingItem'; +import { ListingItem } from '../common/ListingItem'; import { DataField } from './DataField'; import { FormGroup } from '@angular/forms' export class WordListData extends DataField{ - public type: string; - public options: Array; - buildForm(): FormGroup { - let formGroup = this.formBuilder.group({ - type: [this.type], - label: [this.label] - }); - let optionsFormArray = new Array(); - if (this.options) { - this.options.forEach(item => { - let form: FormGroup = item.buildForm(); - optionsFormArray.push(form) - }) - } - formGroup.addControl('options', this.formBuilder.array(optionsFormArray)); - - return formGroup; + public type: string; + public options: Array; + buildForm(): FormGroup { + let formGroup = this.formBuilder.group({ + type: [this.type], + label: [this.label] + }); + let optionsFormArray = new Array(); + if (this.options) { + this.options.forEach(item => { + let form: FormGroup = item.buildForm(); + optionsFormArray.push(form) + }) } + formGroup.addControl('options', this.formBuilder.array(optionsFormArray)); - fromJSONObject(item: any): WordListData { - this.type = item.type; - this.options = JsonSerializer.fromJSONArray(item.options, ListingItem); - this.label = item.label; - return this; - } -} \ No newline at end of file + return formGroup; + } + + fromJSONObject(item: any): WordListData { + this.type = item.type; + this.options = JsonSerializer.fromJSONArray(item.options, ListingItem); + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/models/data-managemnt-plans/DataManagementPlanModel.ts b/dmp-frontend/src/app/models/data-managemnt-plans/DataManagementPlanModel.ts index aa080c568..6c9b41735 100644 --- a/dmp-frontend/src/app/models/data-managemnt-plans/DataManagementPlanModel.ts +++ b/dmp-frontend/src/app/models/data-managemnt-plans/DataManagementPlanModel.ts @@ -15,81 +15,81 @@ import { DataManagementPlanProfile } from "../data-management-plan-profile/DataM import { DynamicField } from "./DynamicField"; export class DataManagementPlanModel implements Serializable { - public id: String; - public label: String; - public groupId: String; - public profile: String - public version: number; - public status: Status = Status.Active; - public description: String; - public project: ProjectModel; - public organisations: OrganisationModel[] = []; - public researchers: ResearcherModel[] = []; - public profiles: ProfileModel[] = []; - public associatedUsers: DmpUsersModel[] = []; - public definition: DataManagementPlanProfile - public dynamicFields: Array; - public errorModel: BaseErrorModel = new BaseErrorModel(); + public id: string; + public label: string; + public groupId: String; + public profile: String + public version: number; + public status: Status = Status.Active; + public description: String; + public project: ProjectModel; + public organisations: OrganisationModel[] = []; + public researchers: ResearcherModel[] = []; + public profiles: ProfileModel[] = []; + public associatedUsers: DmpUsersModel[] = []; + public definition: DataManagementPlanProfile + public dynamicFields: Array; + public errorModel: BaseErrorModel = new BaseErrorModel(); - fromJSONObject(item: any): DataManagementPlanModel { - this.id = item.id; - this.profile = item.profile; - this.label = item.label; - this.groupId = item.groupId; - this.version = item.version; - this.status = item.status; - this.description = item.description; - this.project = JsonSerializer.fromJSONObject(item.project, ProjectModel); - this.organisations = JsonSerializer.fromJSONArray(item.organisations, OrganisationModel); - this.researchers = JsonSerializer.fromJSONArray(item.researchers, ResearcherModel); - this.profiles = JsonSerializer.fromJSONArray(item.profiles, ProfileModel); - this.associatedUsers = JsonSerializer.fromJSONArray(item.associatedUsers, DmpUsersModel); - this.definition = JsonSerializer.fromJSONObject(item.definition, DataManagementPlanProfile); - this.dynamicFields = JsonSerializer.fromJSONArray(item.dynamicFields, DynamicField); - return this; - } + fromJSONObject(item: any): DataManagementPlanModel { + this.id = item.id; + this.profile = item.profile; + this.label = item.label; + this.groupId = item.groupId; + this.version = item.version; + this.status = item.status; + this.description = item.description; + this.project = JsonSerializer.fromJSONObject(item.project, ProjectModel); + this.organisations = JsonSerializer.fromJSONArray(item.organisations, OrganisationModel); + this.researchers = JsonSerializer.fromJSONArray(item.researchers, ResearcherModel); + this.profiles = JsonSerializer.fromJSONArray(item.profiles, ProfileModel); + this.associatedUsers = JsonSerializer.fromJSONArray(item.associatedUsers, DmpUsersModel); + this.definition = JsonSerializer.fromJSONObject(item.definition, DataManagementPlanProfile); + this.dynamicFields = JsonSerializer.fromJSONArray(item.dynamicFields, DynamicField); + return this; + } - buildForm(context: ValidationContext = null, disabled: boolean = false): FormGroup { - if (context == null) { context = this.createValidationContext(); } + buildForm(context: ValidationContext = null, disabled: boolean = false): FormGroup { + if (context == null) { context = this.createValidationContext(); } - const formGroup = new FormBuilder().group({ - id: [{ value: this.id, disabled: disabled }, context.getValidation('id').validators], - profile: [{ value: this.profile, disabled: disabled }, context.getValidation('profile').validators], - label: [{ value: this.label, disabled: disabled }, context.getValidation('label').validators], - groupId: [{ value: this.groupId, disabled: disabled }, context.getValidation('groupId').validators], - version: [{ value: this.version, disabled: disabled }, context.getValidation('version').validators], - status: [{ value: this.status, disabled: disabled }, context.getValidation('status').validators], - description: [{ value: this.description, disabled: disabled }, context.getValidation('description').validators], - project: [{ value: this.project, disabled: disabled }, context.getValidation('project').validators], - organisations: [{ value: this.organisations, disabled: disabled }, context.getValidation('organisations').validators], - researchers: [{ value: this.researchers, disabled: disabled }, context.getValidation('researchers').validators], - profiles: [{ value: this.profiles, disabled: disabled }, context.getValidation('profiles').validators], - associatedUsers: [{ value: this.associatedUsers, disabled: disabled }, context.getValidation('associatedUsers').validators], - }); + const formGroup = new FormBuilder().group({ + id: [{ value: this.id, disabled: disabled }, context.getValidation('id').validators], + profile: [{ value: this.profile, disabled: disabled }, context.getValidation('profile').validators], + label: [{ value: this.label, disabled: disabled }, context.getValidation('label').validators], + groupId: [{ value: this.groupId, disabled: disabled }, context.getValidation('groupId').validators], + version: [{ value: this.version, disabled: disabled }, context.getValidation('version').validators], + status: [{ value: this.status, disabled: disabled }, context.getValidation('status').validators], + description: [{ value: this.description, disabled: disabled }, context.getValidation('description').validators], + project: [{ value: this.project, disabled: disabled }, context.getValidation('project').validators], + organisations: [{ value: this.organisations, disabled: disabled }, context.getValidation('organisations').validators], + researchers: [{ value: this.researchers, disabled: disabled }, context.getValidation('researchers').validators], + profiles: [{ value: this.profiles, disabled: disabled }, context.getValidation('profiles').validators], + associatedUsers: [{ value: this.associatedUsers, disabled: disabled }, context.getValidation('associatedUsers').validators], + }); - let dynamicFields = new Array(); - if (this.dynamicFields) this.dynamicFields.forEach(item => dynamicFields.push(item.buildForm())); + let dynamicFields = new Array(); + if (this.dynamicFields) this.dynamicFields.forEach(item => dynamicFields.push(item.buildForm())); - formGroup.addControl("dynamicFields", new FormBuilder().array(dynamicFields)); + formGroup.addControl("dynamicFields", new FormBuilder().array(dynamicFields)); - return formGroup; - } + return formGroup; + } - createValidationContext(): ValidationContext { - const baseContext: ValidationContext = new ValidationContext(); - baseContext.validation.push({ key: 'id', validators: [BackendErrorValidator(this.errorModel, 'id')] }); - baseContext.validation.push({ key: 'profile', validators: [BackendErrorValidator(this.errorModel, 'profile')] }); - baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'label')] }); - baseContext.validation.push({ key: 'groupId', validators: [BackendErrorValidator(this.errorModel, 'groupId')] }); - baseContext.validation.push({ key: 'version', validators: [BackendErrorValidator(this.errorModel, 'version')] }); - baseContext.validation.push({ key: 'status', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'status')] }); - baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'description')] }); - baseContext.validation.push({ key: 'project', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'project')] }); - baseContext.validation.push({ key: 'organisations', validators: [BackendErrorValidator(this.errorModel, 'organisations')] }); - baseContext.validation.push({ key: 'researchers', validators: [BackendErrorValidator(this.errorModel, 'researchers')] }); - baseContext.validation.push({ key: 'profiles', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'profiles')] }); - baseContext.validation.push({ key: 'associatedUsers', validators: [BackendErrorValidator(this.errorModel, 'associatedUsers')] }); + createValidationContext(): ValidationContext { + const baseContext: ValidationContext = new ValidationContext(); + baseContext.validation.push({ key: 'id', validators: [BackendErrorValidator(this.errorModel, 'id')] }); + baseContext.validation.push({ key: 'profile', validators: [BackendErrorValidator(this.errorModel, 'profile')] }); + baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'label')] }); + baseContext.validation.push({ key: 'groupId', validators: [BackendErrorValidator(this.errorModel, 'groupId')] }); + baseContext.validation.push({ key: 'version', validators: [BackendErrorValidator(this.errorModel, 'version')] }); + baseContext.validation.push({ key: 'status', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'status')] }); + baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'description')] }); + baseContext.validation.push({ key: 'project', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'project')] }); + baseContext.validation.push({ key: 'organisations', validators: [BackendErrorValidator(this.errorModel, 'organisations')] }); + baseContext.validation.push({ key: 'researchers', validators: [BackendErrorValidator(this.errorModel, 'researchers')] }); + baseContext.validation.push({ key: 'profiles', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'profiles')] }); + baseContext.validation.push({ key: 'associatedUsers', validators: [BackendErrorValidator(this.errorModel, 'associatedUsers')] }); - return baseContext; - } -} \ No newline at end of file + return baseContext; + } +} diff --git a/dmp-frontend/src/app/models/projects/ProjectModel.ts b/dmp-frontend/src/app/models/projects/ProjectModel.ts index d4b044d4c..3b7cb5727 100644 --- a/dmp-frontend/src/app/models/projects/ProjectModel.ts +++ b/dmp-frontend/src/app/models/projects/ProjectModel.ts @@ -13,10 +13,10 @@ export enum ProjectType { } export class ProjectModel implements Serializable { - public id: String; - public label: String; - public abbreviation: String; - public reference: String; + public id: string; + public label: string; + public abbreviation: string; + public reference: string; public type: ProjectType = ProjectType.Internal; public uri: String; public status: Status = Status.Active; diff --git a/dmp-frontend/src/app/projects/editor/project-editor.component.ts b/dmp-frontend/src/app/projects/editor/project-editor.component.ts index 19e0e3275..b68ca8f37 100644 --- a/dmp-frontend/src/app/projects/editor/project-editor.component.ts +++ b/dmp-frontend/src/app/projects/editor/project-editor.component.ts @@ -17,6 +17,8 @@ import { HostConfiguration } from "../../app.constants"; import { LanguageResolverService } from "../../services/language-resolver/language-resolver.service"; import { THIS_EXPR } from "@angular/compiler/src/output/output_ast"; import { BaseHttpService } from "../../utilities/cite-http-service-module/base-http.service"; +import { IBreadCrumbComponent } from "../../shared/components/breadcrumb/definition/IBreadCrumbComponent"; +import { BreadcrumbItem } from "../../shared/components/breadcrumb/definition/breadcrumb-item"; @@ -26,8 +28,9 @@ import { BaseHttpService } from "../../utilities/cite-http-service-module/base-h styleUrls: ['./project-editor.component.scss'], encapsulation: ViewEncapsulation.None }) -export class ProjectEditorComponent implements AfterViewInit { +export class ProjectEditorComponent implements OnInit, IBreadCrumbComponent { + breadCrumbs: Observable = Observable.of([]);; isNew = true; project: ProjectModel; formGroup: FormGroup = null; @@ -46,7 +49,7 @@ export class ProjectEditorComponent implements AfterViewInit { } - ngAfterViewInit() { + ngOnInit() { this.route.params.subscribe((params: Params) => { const itemId = params['id']; @@ -56,8 +59,11 @@ export class ProjectEditorComponent implements AfterViewInit { .subscribe(data => { this.project = JsonSerializer.fromJSONObject(data, ProjectModel); this.formGroup = this.project.buildForm(null, this.project.type == ProjectType.External || !this.editMode); + this.breadCrumbs = Observable.of([{ parentComponentName: "ProjectListingComponent", label: 'Projects', url: "/projects" }, { parentComponentName: null, label: this.project.label, url: "/projects/edit/" + this.project.id }]) + }); } else { + this.breadCrumbs = Observable.of([{ parentComponentName: "ProjectListingComponent", label: 'Projects', url: "/projects" }, { parentComponentName: null, label: "Project New", url: "/projects/new" }]) this.project = new ProjectModel(); setTimeout(() => { this.formGroup = this.project.buildForm(); @@ -171,7 +177,7 @@ export class ProjectEditorComponent implements AfterViewInit { } public goToProjectDmps() { - this.router.navigate(["dmps/project/" + this.project.id, { projectLabel: this.project.label }]) + this.router.navigate(["dmps/project/" + this.project.id], { queryParams: { projectLabel: this.project.label } }) } public isExternalProject() { diff --git a/dmp-frontend/src/app/projects/listing/project-listing.component.ts b/dmp-frontend/src/app/projects/listing/project-listing.component.ts index 7c40b8b3c..cadef224c 100644 --- a/dmp-frontend/src/app/projects/listing/project-listing.component.ts +++ b/dmp-frontend/src/app/projects/listing/project-listing.component.ts @@ -12,6 +12,8 @@ import { ProjectCriteriaComponent } from '../../shared/components/criteria/proje import { HostConfiguration } from '../../app.constants'; import { LanguageService } from '../../services/language/language.service'; import { LanguageResolverService } from '../../services/language-resolver/language-resolver.service'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; @Component({ selector: 'app-project-listing-component', @@ -19,7 +21,9 @@ import { LanguageResolverService } from '../../services/language-resolver/langua styleUrls: ['./project-listing.component.scss'], encapsulation: ViewEncapsulation.None }) -export class ProjectListingComponent implements OnInit { +export class ProjectListingComponent implements OnInit, IBreadCrumbComponent { + + public breadCrumbs: Observable = Observable.of([]); @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -40,6 +44,8 @@ export class ProjectListingComponent implements OnInit { } ngOnInit() { + this.breadCrumbs = Observable.of([{ parentComponentName: null, label: 'Projects', url: "/projects" }]) + this.criteria.setCriteria(this.getDefaultCriteria()); this.refresh(); this.criteria.setRefreshCallback(() => this.refresh()); diff --git a/dmp-frontend/src/app/projects/project.routes.ts b/dmp-frontend/src/app/projects/project.routes.ts index 9bd149b6c..f5fa1f117 100644 --- a/dmp-frontend/src/app/projects/project.routes.ts +++ b/dmp-frontend/src/app/projects/project.routes.ts @@ -3,8 +3,30 @@ import { ProjectListingComponent } from './listing/project-listing.component'; import { RouterModule, Routes } from '@angular/router'; export const ProjectRoutes: Routes = [ - { path: '', component: ProjectListingComponent }, - { path: 'edit/:id', component: ProjectEditorComponent }, - { path: 'new', component: ProjectEditorComponent }, + { + path: '', + component: ProjectListingComponent, + data: { + breadcrumbs: '' + } + }, + { + path: 'edit/:id', + component: ProjectEditorComponent, + data: { + // Interpolates values resolved by the router + breadcrumbs: '{{ project.text }}' + }, + /* resolve: { + project: ProjectResolver + } */ + }, + { + path: 'new', + component: ProjectEditorComponent, + data: { + breadcrumbs: 'new' + } + }, ]; diff --git a/dmp-frontend/src/app/projects/projects.module.ts b/dmp-frontend/src/app/projects/projects.module.ts index 34cd0fd5e..df39fc1df 100644 --- a/dmp-frontend/src/app/projects/projects.module.ts +++ b/dmp-frontend/src/app/projects/projects.module.ts @@ -16,6 +16,7 @@ import { ProjectFileUploaderService } from '../services/files/project-file-uploa import { RouterModule } from '@angular/router'; import { BaseHttpModule } from '../utilities/cite-http-service-module/cite-http.module'; import { MaterialModule } from '../shared/material/material.module'; + @NgModule({ imports: [ CommonModule, @@ -47,7 +48,8 @@ import { MaterialModule } from '../shared/material/material.module'; ], providers: [ ProjectService, - ProjectFileUploaderService + ProjectFileUploaderService, + /* ProjectResolver */ ] }) diff --git a/dmp-frontend/src/app/services/breadcrumb/breadcrumb-resolver.service.ts b/dmp-frontend/src/app/services/breadcrumb/breadcrumb-resolver.service.ts new file mode 100644 index 000000000..a2ed5a33e --- /dev/null +++ b/dmp-frontend/src/app/services/breadcrumb/breadcrumb-resolver.service.ts @@ -0,0 +1,83 @@ +import { Component, Input, OnInit, AfterViewChecked, ViewChild, NgZone } from '@angular/core'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { Observable } from 'rxjs/Observable'; + +@Injectable() +export class BreadCrumbResolverService { + + private activeComponents = []; + private parentComponents = []; + private breadCrumbs: Observable = Observable.of([]); + constructor( + private router: Router, + private zone: NgZone + ) { } + + public push(component: any) { + let existingComponentIndex = this.activeComponents.map(x => x.constructor.name).indexOf(component.constructor.name); + if (existingComponentIndex !== -1) this.activeComponents.splice(existingComponentIndex, 1) + this.activeComponents.push(component); + } + + public clear() { + this.activeComponents.length = 0; + this.breadCrumbs = Observable.of([]) + } + + public resolve(activatedRoute: ActivatedRoute): Observable { + this.breadCrumbs = Observable.of([]) + let routeComponents = this.getComponentsFromRoute(activatedRoute, []); + this.activeComponents.filter(x => routeComponents.indexOf(x.constructor.name) !== -1).forEach(x => { + if (x.hasOwnProperty('breadCrumbs')) { + let componentItems = this.resolveDependentComponents((x).breadCrumbs, []); + this.breadCrumbs = Observable.of(componentItems); + } + }) + return this.breadCrumbs; + } + + private getComponentsFromRoute(activatedRoute: ActivatedRoute, routeComponents: any[]): any[] { + activatedRoute.children.forEach(x => { + if (x.children.length > 0) this.getComponentsFromRoute(x.children[0], routeComponents); + }) + if (activatedRoute.component) routeComponents.push(activatedRoute.component['name']) + + return routeComponents; + } + + resolveDependentComponents(items: Observable, components: any[]): any[] { + items.subscribe(breadCrumbs => { + breadCrumbs.forEach(async item => { + let parentComponent = item.parentComponentName ? this.findComponent(item.parentComponentName) : null + if (parentComponent && parentComponent.hasOwnProperty('breadCrumbs')) { + components = this.pushToStart(components, this.resolveDependentComponents((parentComponent).breadCrumbs, components)) + console.log({ componentName: item.parentComponentName, components: components }) + } else if (item.notFoundResolver) { + components = this.pushToStart(components, item.notFoundResolver) + //components = this.pushToStart(components, [unresolvedComponentItems]) + } + }) + components = this.pushToEnd(components, breadCrumbs); + }) + return components + } + + private findComponent(componentName: string): any { + for (let i = 0; i < this.activeComponents.length; i++) { + if (this.activeComponents[i].constructor.name === componentName) return this.activeComponents[i]; + } + return null + } + + pushToStart(first: any[], second: any[]) { + return [].concat(second.filter(x => first.map(firstX => firstX.parentComponentName).indexOf(x.parentComponentName) == -1), first); + } + + pushToEnd(first: any[], second: any[]) { + return [].concat(first, second.filter(x => first.map(firstX => firstX.parentComponentName).indexOf(x.parentComponentName) == -1)); + } +} diff --git a/dmp-frontend/src/app/services/dataset-profile.service.ts b/dmp-frontend/src/app/services/dataset-profile.service.ts index e00e39881..81009cb85 100644 --- a/dmp-frontend/src/app/services/dataset-profile.service.ts +++ b/dmp-frontend/src/app/services/dataset-profile.service.ts @@ -5,7 +5,7 @@ import { DatasetProfileAdmin } from '../services/datasetProfileAdmin/datasetProf import { HostConfiguration } from '../app.constants'; import { Observable } from 'rxjs/Observable'; import { RequestItem } from '../models/criteria/RequestItem'; -import { AutocompleteLookupItem } from '../models/auto-complete/AutocompleteLookUpItem'; +import { AutocompleteLookupItem } from '../models/auto-complete/AutocompleteLookupItem'; @Injectable() export class DatasetProfileService { @@ -46,4 +46,4 @@ export class DatasetProfileService { } -} \ No newline at end of file +} diff --git a/dmp-frontend/src/app/services/route-resolvers/dmp-editor-resolver.service.ts b/dmp-frontend/src/app/services/route-resolvers/dmp-editor-resolver.service.ts new file mode 100644 index 000000000..b97f8049b --- /dev/null +++ b/dmp-frontend/src/app/services/route-resolvers/dmp-editor-resolver.service.ts @@ -0,0 +1,34 @@ +/* import { Injectable } from "@angular/core"; +import { ProjectService } from "../project/project.service"; +import { RouterStateSnapshot, ActivatedRouteSnapshot } from "@angular/router"; +import { inherits } from "util"; +import { McBreadcrumbsResolver } from 'ngx-breadcrumbs'; + +@Injectable() +export class DMPEditorResolver extends McBreadcrumbsResolver { + + // Optional: inject any required dependencies + constructor(private projectService: ProjectService) { + super(); + } + + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { + + const projectId = route.params.id; + const myCrumbs = this.projectService.getSingle(projectId).map((project) => ( + { + text: project.label, + path: super.getFullPath(route.parent) + 'edit/' + project.id + } + )) + + // Note: the resolve method can return any of the following types: + // + // * IBreadcrumb[] + // * Observable + // * Promise + + return myCrumbs; + } +} + */ diff --git a/dmp-frontend/src/app/services/route-resolvers/dmp-group-resolver.service.ts b/dmp-frontend/src/app/services/route-resolvers/dmp-group-resolver.service.ts new file mode 100644 index 000000000..06e0e82e2 --- /dev/null +++ b/dmp-frontend/src/app/services/route-resolvers/dmp-group-resolver.service.ts @@ -0,0 +1,35 @@ +/* import { Injectable } from "@angular/core"; +import { ProjectService } from "../project/project.service"; +import { RouterStateSnapshot, ActivatedRouteSnapshot } from "@angular/router"; +import { inherits } from "util"; +import { McBreadcrumbsResolver } from 'ngx-breadcrumbs'; +import { DataManagementPlanService } from "../data-management-plan/data-management-plan.service"; + +@Injectable() +export class DMPGroupResolver extends McBreadcrumbsResolver { + + // Optional: inject any required dependencies + constructor(private dmpService: DataManagementPlanService) { + super(); + } + + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { + + const groupId = route.params.groupId; + const myCrumbs = this.dmpService.getSingle(groupId).map((dmp) => ( + { + text: dmp.label, + path: super.getFullPath(route.parent) + 'viewversions/' + dmp.id + } + )) + + // Note: the resolve method can return any of the following types: + // + // * IBreadcrumb[] + // * Observable + // * Promise + + return myCrumbs; + } +} + */ diff --git a/dmp-frontend/src/app/services/route-resolvers/project-resolver.service.ts b/dmp-frontend/src/app/services/route-resolvers/project-resolver.service.ts new file mode 100644 index 000000000..f7c98342e --- /dev/null +++ b/dmp-frontend/src/app/services/route-resolvers/project-resolver.service.ts @@ -0,0 +1,34 @@ +/* import { Injectable } from "@angular/core"; +import { ProjectService } from "../project/project.service"; +import { RouterStateSnapshot, ActivatedRouteSnapshot } from "@angular/router"; +import { inherits } from "util"; +import { McBreadcrumbsResolver } from 'ngx-breadcrumbs'; + +@Injectable() +export class ProjectResolver extends McBreadcrumbsResolver { + + // Optional: inject any required dependencies + constructor(private projectService: ProjectService) { + super(); + } + + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { + + const projectId = route.params.id; + const myCrumbs = this.projectService.getSingle(projectId).map((project) => ( + { + text: project.label, + path: super.getFullPath(route.parent) + 'edit/' + project.id + } + )) + + // Note: the resolve method can return any of the following types: + // + // * IBreadcrumb[] + // * Observable + // * Promise + + return myCrumbs; + } +} + */ diff --git a/dmp-frontend/src/app/services/user-reference/user-reference-data.service.ts b/dmp-frontend/src/app/services/user-reference/user-reference-data.service.ts index c3ee6c2ea..e064c19e8 100644 --- a/dmp-frontend/src/app/services/user-reference/user-reference-data.service.ts +++ b/dmp-frontend/src/app/services/user-reference/user-reference-data.service.ts @@ -7,44 +7,44 @@ import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; -import { DataTableRequest } from '../../models/data-table/dataTableRequest'; -import { DataTableData } from '../../models/data-table/dataTableData'; +import { DataTableRequest } from '../../models/data-table/DataTableRequest'; +import { DataTableData } from '../../models/data-table/DataTableData'; import { HostConfiguration } from 'app/app.constants'; @Injectable() export class UserReferenceService { - private actionUrl: string; - private headers: HttpHeaders; + private actionUrl: string; + private headers: HttpHeaders; - constructor(private http: BaseHttpService) { + constructor(private http: BaseHttpService) { - this.actionUrl = HostConfiguration.Server + '/user/'; + this.actionUrl = HostConfiguration.Server + '/user/'; - this.headers = new HttpHeaders(); - this.headers = this.headers.set('Content-Type', 'application/json'); - this.headers = this.headers.set('Accept', 'application/json'); - } + this.headers = new HttpHeaders(); + this.headers = this.headers.set('Content-Type', 'application/json'); + this.headers = this.headers.set('Accept', 'application/json'); + } - // formatItem(utilities: Utilities, item: ConfigurationModel): ConfigurationModel { - // item.validFrom = new Date(item.validFrom); - // item.validTo = new Date(item.validTo); - // return item - // } + // formatItem(utilities: Utilities, item: ConfigurationModel): ConfigurationModel { + // item.validFrom = new Date(item.validFrom); + // item.validTo = new Date(item.validTo); + // return item + // } - getPaged(dataTableRequest: DataTableRequest): Observable> { - return this.http.post>(this.actionUrl + 'getPaged', JSON.stringify(dataTableRequest), { headers: this.headers }); - } + getPaged(dataTableRequest: DataTableRequest): Observable> { + return this.http.post>(this.actionUrl + 'getPaged', JSON.stringify(dataTableRequest), { headers: this.headers }); + } - updateRoles(itemToUpdate: UserListingModel): Observable { - return this.http.post(this.actionUrl + 'updateRoles', JSON.stringify(itemToUpdate), { headers: this.headers }); - } + updateRoles(itemToUpdate: UserListingModel): Observable { + return this.http.post(this.actionUrl + 'updateRoles', JSON.stringify(itemToUpdate), { headers: this.headers }); + } - delete(id: String): Observable { - return this.http.delete(this.actionUrl + id, { headers: this.headers }); - } + delete(id: String): Observable { + return this.http.delete(this.actionUrl + id, { headers: this.headers }); + } - getRecentActivity(): Observable { - return this.http.get(this.actionUrl + "recentActivity", { headers: this.headers }); - } + getRecentActivity(): Observable { + return this.http.get(this.actionUrl + "recentActivity", { headers: this.headers }); + } } diff --git a/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.html b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.html new file mode 100644 index 000000000..e9b466a5d --- /dev/null +++ b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.html @@ -0,0 +1,7 @@ + diff --git a/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.scss b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.scss new file mode 100644 index 000000000..3b59b7e0f --- /dev/null +++ b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.scss @@ -0,0 +1,16 @@ +.breadcrumb li { + display: inline; +} + +.breadcrumb li+li:before { + content: " > "; + color: white; +} + +.breadcrumb { + background-color: #8d0000; + padding: 20px; + a { + color: white; + } +} diff --git a/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.ts b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.ts new file mode 100644 index 000000000..3ba6d89cb --- /dev/null +++ b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit, ViewEncapsulation } from '@angular/core'; +import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; +import { BreadCrumbResolverService } from '../../../services/breadcrumb/breadcrumb-resolver.service'; +import { BreadcrumbItem } from './definition/breadcrumb-item'; +import { Observable } from 'rxjs/Observable'; + +@Component({ + selector: 'app-breadcrumb', + templateUrl: './breadcrumb.component.html', + styleUrls: ['./breadcrumb.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class BreadcrumbComponent implements OnInit { + + breadcrumbs$ = this.router.events + .filter(event => event instanceof NavigationEnd) + .distinctUntilChanged() + .flatMap(event => this.buildBreadCrumb(this.activatedRoute.root)); + + + constructor( + public activatedRoute: ActivatedRoute, + private router: Router, + private breadCrumbService: BreadCrumbResolverService + ) { + } + + ngOnInit() { + } + + buildBreadCrumb(route: ActivatedRoute): Observable { + return this.breadCrumbService.resolve(route); + } + + navigate(url, params) { + this.router.navigate([url, params]) + } +} diff --git a/dmp-frontend/src/app/shared/components/breadcrumb/definition/IBreadCrumbComponent.ts b/dmp-frontend/src/app/shared/components/breadcrumb/definition/IBreadCrumbComponent.ts new file mode 100644 index 000000000..1af00cb84 --- /dev/null +++ b/dmp-frontend/src/app/shared/components/breadcrumb/definition/IBreadCrumbComponent.ts @@ -0,0 +1,6 @@ +import { BreadcrumbItem } from "./breadcrumb-item"; +import { Observable } from "rxjs/Observable"; + +export interface IBreadCrumbComponent { + breadCrumbs: Observable +} diff --git a/dmp-frontend/src/app/shared/components/breadcrumb/definition/breadcrumb-chain-item.ts b/dmp-frontend/src/app/shared/components/breadcrumb/definition/breadcrumb-chain-item.ts new file mode 100644 index 000000000..399292996 --- /dev/null +++ b/dmp-frontend/src/app/shared/components/breadcrumb/definition/breadcrumb-chain-item.ts @@ -0,0 +1,7 @@ +import { BreadcrumbItem } from "./breadcrumb-item"; + +export class BreadCrumbChainItem { + public chainedItemId: string; + public itemId: string; + public items: BreadcrumbItem[] +} diff --git a/dmp-frontend/src/app/shared/components/breadcrumb/definition/breadcrumb-item.ts b/dmp-frontend/src/app/shared/components/breadcrumb/definition/breadcrumb-item.ts new file mode 100644 index 000000000..661f1237c --- /dev/null +++ b/dmp-frontend/src/app/shared/components/breadcrumb/definition/breadcrumb-item.ts @@ -0,0 +1,9 @@ +import { Observable } from "rxjs/Observable"; + +export class BreadcrumbItem { + parentComponentName?: string; + label: string; + url: string; + params?: any = {}; + notFoundResolver?: any[] +} diff --git a/dmp-frontend/src/app/shared/componentsAdmin/radiobox/radiobox-component.ts b/dmp-frontend/src/app/shared/componentsAdmin/radiobox/radiobox-component.ts index d0e9f5382..873242ae0 100644 --- a/dmp-frontend/src/app/shared/componentsAdmin/radiobox/radiobox-component.ts +++ b/dmp-frontend/src/app/shared/componentsAdmin/radiobox/radiobox-component.ts @@ -2,7 +2,7 @@ import { Component, Input, OnInit } from '@angular/core'; import { RadioBoxData } from '../../../models/DataField/RadioBoxData'; import { FormArray } from '@angular/forms'; -import { ListingItem } from '../../../models/Common/ListingItem'; +import { ListingItem } from '../../../models/common/ListingItem'; import { JsonSerializer } from '../../../utilities/JsonSerializer'; import { Field } from '../../../models/datasetProfileAdmin/Field'; diff --git a/dmp-frontend/src/app/shared/componentsAdmin/wordlist/wordlist-component.ts b/dmp-frontend/src/app/shared/componentsAdmin/wordlist/wordlist-component.ts index be2151311..34f0bafee 100644 --- a/dmp-frontend/src/app/shared/componentsAdmin/wordlist/wordlist-component.ts +++ b/dmp-frontend/src/app/shared/componentsAdmin/wordlist/wordlist-component.ts @@ -2,7 +2,7 @@ import { Component, Input, OnInit } from '@angular/core'; import { WordListData } from '../../../models/DataField/WordListData'; import { FormArray } from '@angular/forms'; -import { ListingItem } from '../../../models/Common/ListingItem'; +import { ListingItem } from '../../../models/common/ListingItem'; import { JsonSerializer } from '../../../utilities/JsonSerializer'; import { Field } from '../../../models/datasetProfileAdmin/Field'; diff --git a/dmp-frontend/src/app/shared/shared.module.ts b/dmp-frontend/src/app/shared/shared.module.ts index d32dde6bd..83eeaa13e 100644 --- a/dmp-frontend/src/app/shared/shared.module.ts +++ b/dmp-frontend/src/app/shared/shared.module.ts @@ -17,66 +17,66 @@ import { DataManagementPlanCriteriaComponent } from './components/criteria/data- import { AutocompleteChipComponent } from '../shared/components/autocompleteChips/autocompleteChips.component'; import { FileUploaderComponent } from '../shared/components/file-uploader/file-uploader.component'; import { UrlListingComponent } from '../shared/components/url-listing/url-listing.component'; -import { NgForLimitPipe } from '../shared/pipes/ngforlimit/NgForLimit.pipe'; +import { NgForLimitPipe } from './pipes/ngforlimit/ngforlimit.pipe'; import { DataManagementPlanProfileCriteriaComponent } from './components/criteria/datamanagementplanprofile/dmp-profile-criteria.component'; import { AutoCompleteComponent } from './components/auto-complete/auto-complete.component'; import { ExternalItemListingComponent } from './components/external-items/external-item-listing/external-item-listing.component'; import { ExternalItemComponent } from './components/external-items/external-item/external-item.component'; @NgModule({ - imports: [ - CommonModule, - RouterModule, - MaterialModule, - FlexLayoutModule, + imports: [ + CommonModule, + RouterModule, + MaterialModule, + FlexLayoutModule, - TranslateModule, - FormsModule, - ReactiveFormsModule - ], + TranslateModule, + FormsModule, + ReactiveFormsModule + ], - declarations: [ - NavigationComponent, - SnackBarNotificationComponent, - ProjectCriteriaComponent, - DatasetCriteriaComponent, - DataManagementPlanCriteriaComponent, - DataManagementPlanProfileCriteriaComponent, - AutocompleteComponent, - FigurecardComponent, - BaseCriteriaComponent, - FileUploaderComponent, - AutocompleteChipComponent, - UrlListingComponent, - NgForLimitPipe, - AutoCompleteComponent, - ExternalItemListingComponent, - ExternalItemComponent - ], + declarations: [ + NavigationComponent, + SnackBarNotificationComponent, + ProjectCriteriaComponent, + DatasetCriteriaComponent, + DataManagementPlanCriteriaComponent, + DataManagementPlanProfileCriteriaComponent, + AutocompleteComponent, + FigurecardComponent, + BaseCriteriaComponent, + FileUploaderComponent, + AutocompleteChipComponent, + UrlListingComponent, + NgForLimitPipe, + AutoCompleteComponent, + ExternalItemListingComponent, + ExternalItemComponent + ], - exports: [ - MaterialModule, - FlexLayoutModule, + exports: [ + MaterialModule, + FlexLayoutModule, - NavigationComponent, - SnackBarNotificationComponent, - ProjectCriteriaComponent, - DatasetCriteriaComponent, - DataManagementPlanProfileCriteriaComponent, - DataManagementPlanCriteriaComponent, - AutocompleteComponent, - FigurecardComponent, - BaseCriteriaComponent, - FileUploaderComponent, - AutocompleteChipComponent, - UrlListingComponent, - NgForLimitPipe, - AutoCompleteComponent, - ExternalItemListingComponent, - ExternalItemComponent - ], - entryComponents: [ - ] + NavigationComponent, + SnackBarNotificationComponent, + ProjectCriteriaComponent, + DatasetCriteriaComponent, + DataManagementPlanProfileCriteriaComponent, + DataManagementPlanCriteriaComponent, + AutocompleteComponent, + FigurecardComponent, + BaseCriteriaComponent, + FileUploaderComponent, + AutocompleteChipComponent, + UrlListingComponent, + NgForLimitPipe, + AutoCompleteComponent, + ExternalItemListingComponent, + ExternalItemComponent + ], + entryComponents: [ + ] }) export class SharedModule { } diff --git a/dmp-frontend/src/environments/environment.prod.ts b/dmp-frontend/src/environments/environment.prod.ts index 664479b7d..7f6a04de0 100644 --- a/dmp-frontend/src/environments/environment.prod.ts +++ b/dmp-frontend/src/environments/environment.prod.ts @@ -1,6 +1,6 @@ export const environment = { production: true, - Server: 'http://dl043.madgik.di.uoa.gr/api/', + Server: 'http://localhost:8080/api/', App: 'http://dl043.madgik.di.uoa.gr/', HelpServiceUrl: 'http://dl043.madgik.di.uoa.gr:5555/' }; diff --git a/dmp-frontend/yarn.lock b/dmp-frontend/yarn.lock deleted file mode 100644 index 237dca139..000000000 --- a/dmp-frontend/yarn.lock +++ /dev/null @@ -1,6938 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@angular-devkit/build-optimizer@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.3.2.tgz#77d4d1e4fcd09575f0200e2d6d21c1a3f995096f" - dependencies: - loader-utils "^1.1.0" - source-map "^0.5.6" - typescript "~2.6.2" - webpack-sources "^1.0.1" - -"@angular-devkit/core@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.3.2.tgz#b6fd6aa2e4f4ac3c39478198ba91a53d4c0f88d5" - dependencies: - ajv "~5.5.1" - chokidar "^1.7.0" - rxjs "^5.5.6" - source-map "^0.5.6" - -"@angular-devkit/schematics@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.3.2.tgz#09a2268fad61f4f956f42db87913b8748c512a78" - dependencies: - "@ngtools/json-schema" "^1.1.0" - rxjs "^5.5.6" - -"@angular/animations@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-5.2.11.tgz#2bd3fe9e72916ca28de9bfaaddf0cb936565a0b8" - dependencies: - tslib "^1.7.1" - -"@angular/cdk@^5.2.4": - version "5.2.5" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-5.2.5.tgz#cae2b12e1990a692dd267a73fdb1d49db37f9604" - dependencies: - tslib "^1.7.1" - -"@angular/cli@~1.7.4": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.7.4.tgz#b6c31b5fc6f8ea07e55b1b01a26422f5358a4ea6" - dependencies: - "@angular-devkit/build-optimizer" "0.3.2" - "@angular-devkit/core" "0.3.2" - "@angular-devkit/schematics" "0.3.2" - "@ngtools/json-schema" "1.2.0" - "@ngtools/webpack" "1.10.2" - "@schematics/angular" "0.3.2" - "@schematics/package-update" "0.3.2" - ajv "^6.1.1" - autoprefixer "^7.2.3" - cache-loader "^1.2.0" - chalk "~2.2.0" - circular-dependency-plugin "^4.2.1" - clean-css "^4.1.11" - common-tags "^1.3.1" - copy-webpack-plugin "~4.4.1" - core-object "^3.1.0" - denodeify "^1.2.1" - ember-cli-string-utils "^1.0.0" - extract-text-webpack-plugin "^3.0.2" - file-loader "^1.1.5" - fs-extra "^4.0.0" - glob "^7.0.3" - html-webpack-plugin "^2.29.0" - istanbul-instrumenter-loader "^3.0.0" - karma-source-map-support "^1.2.0" - less "^2.7.2" - less-loader "^4.0.5" - license-webpack-plugin "^1.0.0" - loader-utils "1.1.0" - lodash "^4.11.1" - memory-fs "^0.4.1" - minimatch "^3.0.4" - node-modules-path "^1.0.0" - nopt "^4.0.1" - opn "~5.1.0" - portfinder "~1.0.12" - postcss "^6.0.16" - postcss-import "^11.0.0" - postcss-loader "^2.0.10" - postcss-url "^7.1.2" - raw-loader "^0.5.1" - resolve "^1.1.7" - rxjs "^5.5.6" - sass-loader "^6.0.6" - semver "^5.1.0" - silent-error "^1.0.0" - source-map-support "^0.4.1" - style-loader "^0.19.1" - stylus "^0.54.5" - stylus-loader "^3.0.1" - uglifyjs-webpack-plugin "^1.1.8" - url-loader "^0.6.2" - webpack "~3.11.0" - webpack-dev-middleware "~1.12.0" - webpack-dev-server "~2.11.0" - webpack-merge "^4.1.0" - webpack-sources "^1.0.0" - webpack-subresource-integrity "^1.0.1" - optionalDependencies: - node-sass "^4.7.2" - -"@angular/common@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.2.11.tgz#ee7520b02510a2868f30b1f91897102d48324edf" - dependencies: - tslib "^1.7.1" - -"@angular/compiler-cli@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.2.11.tgz#71a2885ac394a3c7a407c6ba0b920b52d73add99" - dependencies: - chokidar "^1.4.2" - minimist "^1.2.0" - reflect-metadata "^0.1.2" - tsickle "^0.27.2" - -"@angular/compiler@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.2.11.tgz#ca2c38cda6ddde52b5948b8cff6551ff19d5e9de" - dependencies: - tslib "^1.7.1" - -"@angular/core@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.2.11.tgz#0e38fdf4fa038a3c168c72952682f2ee3721f1a3" - dependencies: - tslib "^1.7.1" - -"@angular/flex-layout@5.0.0-beta.14": - version "5.0.0-beta.14" - resolved "https://registry.yarnpkg.com/@angular/flex-layout/-/flex-layout-5.0.0-beta.14.tgz#300e1cba2ef1a70f43fe7ea68ea78267cb4241e4" - dependencies: - tslib "^1.7.1" - -"@angular/forms@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-5.2.11.tgz#712534fa317e194caa452d0c1a8efc72f5e040d6" - dependencies: - tslib "^1.7.1" - -"@angular/http@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/http/-/http-5.2.11.tgz#2b649983c954ae754f6f39060e2d83da0bf352ad" - dependencies: - tslib "^1.7.1" - -"@angular/language-service@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-5.2.11.tgz#6e119ada2c0271a65d9b8fae61fcdd5f1938766b" - -"@angular/material@^5.2.4": - version "5.2.5" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-5.2.5.tgz#287af95d234e0644244d9db565f7a05c10b737f8" - dependencies: - tslib "^1.7.1" - -"@angular/platform-browser-dynamic@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.11.tgz#1b2a9de4af207bee7040400f61c01a44e929c308" - dependencies: - tslib "^1.7.1" - -"@angular/platform-browser@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.2.11.tgz#5be379f96d74b4ebe84a447633ed5279cb7e641e" - dependencies: - tslib "^1.7.1" - -"@angular/router@^5.2.0": - version "5.2.11" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-5.2.11.tgz#65a902daea923086ec728817c43d87becd99d7a7" - dependencies: - tslib "^1.7.1" - -"@covalent/core@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@covalent/core/-/core-1.0.0.tgz#64978a74029635408a55bd462fcf13a682e2d6d2" - dependencies: - tslib "^1.7.1" - -"@ngtools/json-schema@1.2.0", "@ngtools/json-schema@^1.1.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.2.0.tgz#06e5ecd29e9a37d260a447dd873ea2becd228c4f" - -"@ngtools/webpack@1.10.2": - version "1.10.2" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.10.2.tgz#373705fd19992b36e996203480b1d412e942c8d6" - dependencies: - chalk "~2.2.0" - enhanced-resolve "^3.1.0" - loader-utils "^1.0.2" - magic-string "^0.22.3" - semver "^5.3.0" - source-map "^0.5.6" - tree-kill "^1.0.0" - webpack-sources "^1.1.0" - -"@ngx-translate/core@10.0.1": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-10.0.1.tgz#9f3a3ed077e847dd0d2951a664da6ee348a06d22" - dependencies: - tslib "^1.9.0" - -"@ngx-translate/http-loader@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@ngx-translate/http-loader/-/http-loader-3.0.1.tgz#20b0f98bc6c25321129d3e3302ab3cc489c0a42a" - dependencies: - tslib "^1.9.0" - -"@schematics/angular@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.3.2.tgz#be209a032a3e4577992d94fbaa14bd4bfde485e2" - dependencies: - typescript "~2.6.2" - -"@schematics/package-update@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@schematics/package-update/-/package-update-0.3.2.tgz#c5a299ceba8b9e56f3e1f804f86f07664ec6e01c" - dependencies: - rxjs "^5.5.6" - semver "^5.3.0" - semver-intersect "^1.1.2" - -"@swimlane/ngx-datatable@^11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@swimlane/ngx-datatable/-/ngx-datatable-11.3.2.tgz#cefeda7f75a6f69394e4f8e05b197942584f054d" - -"@types/file-saver@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@types/file-saver/-/file-saver-1.3.0.tgz#0ef213077e704fc3f4e7a86cfd31c9de4f4f47a7" - -"@types/jasmine@*", "@types/jasmine@~2.8.3": - version "2.8.7" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.7.tgz#3fe583928ae0a22cdd34cedf930eeffeda2602fd" - -"@types/jasminewd2@~2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/jasminewd2/-/jasminewd2-2.0.3.tgz#0d2886b0cbdae4c0eeba55e30792f584bf040a95" - dependencies: - "@types/jasmine" "*" - -"@types/node@^6.0.46", "@types/node@~6.0.60": - version "6.0.110" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.110.tgz#6bbfc1c14d671348e3db4f89f3b487785e684684" - -"@types/q@^0.0.32": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" - -"@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": - version "2.53.43" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz#2de3d718819bc20165754c4a59afb7e9833f6707" - -"@types/strip-bom@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" - -"@types/strip-json-comments@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -accepts@~1.3.4, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" - -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - -acorn@^5.0.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -addressparser@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" - -adm-zip@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" - -adm-zip@^0.4.7: - version "0.4.11" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a" - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - -agent-base@4, agent-base@^4.1.0, agent-base@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce" - dependencies: - es6-promisify "^5.0.0" - -ajv-keywords@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.0.0, ajv@^5.1.0, ajv@~5.5.1: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.1.0, ajv@^6.1.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.0.tgz#4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - uri-js "^4.2.1" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -amqplib@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.5.2.tgz#d2d7313c7ffaa4d10bcf1e6252de4591b6cc7b63" - dependencies: - bitsyntax "~0.0.4" - bluebird "^3.4.6" - buffer-more-ints "0.0.2" - readable-stream "1.x >=1.1.9" - safe-buffer "^5.0.1" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.1.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -app-root-path@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" - -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - dependencies: - default-require-extensions "^1.0.0" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-flatten@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -ast-types@0.x.x: - version "0.11.3" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -async@^1.4.0, async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.1.2, async@^2.1.4, async@^2.4.1, async@~2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" - -autoprefixer@^7.2.3: - version "7.2.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" - dependencies: - browserslist "^2.11.3" - caniuse-lite "^1.0.30000805" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.17" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.2.1, aws4@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" - -axios@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053" - dependencies: - follow-redirects "1.0.0" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-generator@^6.18.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - dependencies: - callsite "1.0.0" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -bitsyntax@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/bitsyntax/-/bitsyntax-0.0.4.tgz#eb10cc6f82b8c490e3e85698f07e83d46e0cba82" - dependencies: - buffer-more-ints "0.0.2" - -bl@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" - dependencies: - readable-stream "~2.0.5" - -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -blocking-proxy@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-1.0.1.tgz#81d6fd1fe13a4c0d6957df7f91b75e98dac40cb2" - dependencies: - minimist "^1.2.0" - -bluebird@^3.3.0, bluebird@^3.4.6, bluebird@^3.4.7, bluebird@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -body-parser@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" - on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" - -body-parser@^1.16.1: - version "1.18.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "~1.6.3" - iconv-lite "0.4.23" - on-finished "~2.3.0" - qs "6.5.2" - raw-body "2.3.3" - type-is "~1.6.16" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" - dependencies: - expand-range "^0.1.0" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.0, braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^2.11.3: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" - dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" - -buffer-from@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - -buffer-more-ints@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buildmail@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/buildmail/-/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72" - dependencies: - addressparser "1.0.1" - libbase64 "0.1.0" - libmime "3.0.0" - libqp "1.1.0" - nodemailer-fetch "1.6.0" - nodemailer-shared "1.1.0" - punycode "1.4.1" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - -cacache@^10.0.1, cacache@^10.0.4: - version "10.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5" - dependencies: - loader-utils "^1.1.0" - mkdirp "^0.5.1" - neo-async "^2.5.0" - schema-utils "^0.4.2" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805: - version "1.0.30000842" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000842.tgz#7a198e3181a207f4b5749b8f5a1817685bf3d7df" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - 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" - -chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.2.2.tgz#4403f5cf18f35c05f51fbdf152bf588f956cf7cb" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -chokidar@^1.4.1, chokidar@^1.4.2, chokidar@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chokidar@^2.0.0, chokidar@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.0" - optionalDependencies: - fsevents "^1.1.2" - -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-dependency-plugin@^4.2.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-4.4.0.tgz#f8a1a746a3f6c8e57f4dae9b54d991cd2a582f5d" - -circular-json@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.4.tgz#ff1ad2f2e392eeb8a5172d4d985fa846ed8ad656" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.1.x, clean-css@^4.1.11: - version "4.1.11" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" - dependencies: - source-map "0.5.x" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone-deep@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" - dependencies: - for-own "^1.0.0" - is-plain-object "^2.0.4" - kind-of "^6.0.0" - shallow-clone "^1.0.0" - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -codelyzer@^4.0.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-4.3.0.tgz#6bf3ba68efd9d655a451ecaa14a2852001a43dfb" - dependencies: - app-root-path "^2.0.1" - css-selector-tokenizer "^0.7.0" - cssauron "^1.4.0" - semver-dsl "^1.0.1" - source-map "^0.5.7" - sprintf-js "^1.0.3" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: - color-name "^1.1.1" - -color-name@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -colors@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -colors@^1.1.0: - version "1.2.5" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" - -combine-lists@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" - dependencies: - lodash "^4.5.0" - -combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - -commander@2.15.x, commander@^2.12.1, commander@^2.9.0, commander@~2.15.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - -commander@~2.14.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" - -common-tags@^1.3.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.7.2.tgz#24d9768c63d253a56ecff93845b44b4df1d52771" - dependencies: - babel-runtime "^6.26.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -compare-versions@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.2.1.tgz#a49eb7689d4caaf0b6db5220173fd279614000f7" - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.2.1, component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - -compressible@~2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9" - dependencies: - mime-db ">= 1.33.0 < 2" - -compression@^1.5.2: - version "1.7.2" - resolved "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" - dependencies: - accepts "~1.3.4" - bytes "3.0.0" - compressible "~2.0.13" - debug "2.6.9" - on-headers "~1.0.1" - safe-buffer "5.1.1" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" - -connect@^3.6.0: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - -convert-source-map@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -copy-webpack-plugin@~4.4.1: - version "4.4.3" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.4.3.tgz#65d56fb9e1936b39e129f9aa2aec097ce1fd44be" - dependencies: - cacache "^10.0.1" - find-cache-dir "^1.0.0" - globby "^7.1.1" - is-glob "^4.0.0" - loader-utils "^1.1.0" - minimatch "^3.0.4" - p-limit "^1.0.0" - serialize-javascript "^1.4.0" - -core-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1: - version "2.5.6" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d" - -core-js@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" - -core-object@^3.1.0: - version "3.1.5" - resolved "https://registry.yarnpkg.com/core-object/-/core-object-3.1.5.tgz#fa627b87502adc98045e44678e9a8ec3b9c0d2a9" - dependencies: - chalk "^2.0.0" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-parse@1.7.x: - version "1.7.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-selector-tokenizer@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -cssauron@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" - dependencies: - through X.X.X - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -data-uri-to-buffer@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" - -date-format@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@*, debug@3.1.0, debug@^3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - dependencies: - strip-bom "^2.0.0" - -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -degenerator@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" - dependencies: - ast-types "0.x.x" - escodegen "1.x.x" - esprima "3.x.x" - -del@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" - -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - -depd@~1.1.1, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - -diff@^3.1.0, diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" - dependencies: - arrify "^1.0.1" - path-type "^3.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - dependencies: - buffer-indexof "^1.0.0" - -dom-converter@~0.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" - dependencies: - utila "~0.3" - -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - -domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" - dependencies: - domelementtype "1" - -domutils@1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -double-ended-queue@^2.1.0-0: - version "2.1.0-0" - resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -ejs@^2.5.7: - version "2.6.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" - -electron-to-chromium@^1.3.30: - version "1.3.47" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz#764e887ca9104d01a0ac8eabee7dfc0e2ce14104" - -elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -ember-cli-string-utils@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encodeurl@~1.0.1, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - dependencies: - once "^1.4.0" - -engine.io-client@~3.1.0: - version "3.1.6" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.6.tgz#5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd" - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.4" - has-binary2 "~1.0.2" - -engine.io@~3.1.0: - version "3.1.5" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845" - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - optionalDependencies: - uws "~9.14.0" - -enhanced-resolve@^3.1.0, enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - -entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.7.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.42" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-promise@^4.0.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" - -es6-promise@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - dependencies: - es6-promise "^4.0.3" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@1.x.x: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@3.x.x, esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - -expand-braces@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" - dependencies: - array-slice "^0.2.3" - array-unique "^0.2.1" - braces "^0.1.2" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" - dependencies: - is-number "^0.1.1" - repeat-string "^0.2.2" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -express@^4.16.2: - version "4.16.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" - dependencies: - accepts "~1.3.5" - array-flatten "1.1.1" - body-parser "1.18.2" - content-disposition "0.5.2" - content-type "~1.0.4" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.1.1" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.2" - path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-text-webpack-plugin@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - webpack-sources "^1.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - dependencies: - websocket-driver ">=0.5.1" - -file-loader@^1.1.5: - version "1.1.11" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.4.5" - -file-saver@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.3.tgz#cdd4c44d3aa264eac2f68ec165bc791c34af1232" - -file-uri-to-path@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fileset@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" - unpipe "~1.0.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -flush-write-stream@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - -follow-redirects@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37" - dependencies: - debug "^2.2.0" - -follow-redirects@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" - dependencies: - debug "^3.1.0" - -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.11" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.3.0, form-data@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" - dependencies: - asynckit "^0.4.0" - combined-stream "1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - dependencies: - null-check "^1.0.0" - -fs-extra@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0, fsevents@^1.1.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -fstream@^1.0.0, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -ftp@~0.3.10: - version "0.3.10" - resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" - dependencies: - readable-stream "1.1.x" - xregexp "2.0.0" - -function-bind@^1.0.2, function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" - dependencies: - globule "^1.0.0" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-uri@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.2.tgz#5c795e71326f6ca1286f2fc82575cd2bab2af578" - dependencies: - data-uri-to-buffer "1" - debug "2" - extend "3" - file-uri-to-path "1" - ftp "~0.3.10" - readable-stream "2" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@7.0.x: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - 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" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globule@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" - dependencies: - glob "~7.1.1" - lodash "~4.17.4" - minimatch "~3.0.2" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - -handlebars@^4.0.3: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - -he@1.1.x: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -hipchat-notifier@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz#b6d249755437c191082367799d3ba9a0f23b231e" - dependencies: - lodash "^4.0.0" - request "^2.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - -homedir-polyfill@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - -html-minifier@^3.2.3: - version "3.5.15" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.15.tgz#f869848d4543cbfd84f26d5514a2a87cbf9a05e0" - dependencies: - camel-case "3.0.x" - clean-css "4.1.x" - commander "2.15.x" - he "1.1.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.3.x" - -html-webpack-plugin@^2.29.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" - dependencies: - bluebird "^3.4.7" - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - toposort "^1.0.0" - -htmlparser2@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" - dependencies: - domelementtype "1" - domhandler "2.1" - domutils "1.1" - readable-stream "1.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - -http-errors@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.4.0: - version "0.4.12" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.12.tgz#b9cfbf4a2cf26f0fc34b10ca1489a27771e3474f" - -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - dependencies: - agent-base "4" - debug "3.1.0" - -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.13.0, http-proxy@^1.16.2: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - dependencies: - eventemitter3 "^3.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -httpntlm@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/httpntlm/-/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2" - dependencies: - httpreq ">=0.4.22" - underscore "~1.7.0" - -httpreq@>=0.4.22: - version "0.4.24" - resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-0.4.24.tgz#4335ffd82cd969668a39465c929ac61d6393627f" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -https-proxy-agent@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" - dependencies: - agent-base "^4.1.0" - debug "^3.1.0" - -iconv-lite@0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -iconv-lite@0.4.23, iconv-lite@^0.4.4: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.11" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -ignore@^3.3.5: - version "3.3.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflection@~1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" - -inflection@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.3.8.tgz#cbd160da9f75b14c3cc63578d4f396784bf3014e" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" - dependencies: - meow "^3.3.0" - -interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ip@^1.1.0, ip@^1.1.2, ip@^1.1.4, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - -ipaddr.js@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - dependencies: - is-extglob "^2.1.1" - -is-my-ip-valid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - -is-my-json-valid@^2.12.4: - version "2.17.2" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - is-my-ip-valid "^1.0.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-number@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - dependencies: - is-number "^4.0.0" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - -isbinaryfile@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -istanbul-api@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.2.tgz#b2cfe6d15ae6a28ee282e7a823b8e9faa235e6cf" - dependencies: - async "^2.1.4" - compare-versions "^3.1.0" - fileset "^2.0.2" - istanbul-lib-coverage "^1.2.0" - istanbul-lib-hook "^1.2.0" - istanbul-lib-instrument "^1.10.1" - istanbul-lib-report "^1.1.4" - istanbul-lib-source-maps "^1.2.4" - istanbul-reports "^1.4.0" - js-yaml "^3.7.0" - mkdirp "^0.5.1" - once "^1.4.0" - -istanbul-instrumenter-loader@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949" - dependencies: - convert-source-map "^1.5.0" - istanbul-lib-instrument "^1.7.3" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - -istanbul-lib-coverage@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" - -istanbul-lib-hook@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz#ae556fd5a41a6e8efa0b1002b1e416dfeaf9816c" - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.7.3: - version "1.10.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.0" - semver "^5.3.0" - -istanbul-lib-report@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" - dependencies: - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.4.0.tgz#3d7b44b912ecbe7652a603662b962120739646a1" - dependencies: - handlebars "^4.0.3" - -jasmine-core@~2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" - -jasmine-spec-reporter@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz#1d632aec0341670ad324f92ba84b4b32b35e9e22" - dependencies: - colors "1.1.2" - -jasmine@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" - dependencies: - exit "^0.1.2" - glob "^7.0.6" - jasmine-core "~2.8.0" - -jasminewd2@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e" - -js-base64@^2.1.8: - version "2.4.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.4.3, js-yaml@^3.7.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jszip@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.5.tgz#e3c2a6c6d706ac6e603314036d43cd40beefdf37" - dependencies: - core-js "~2.3.0" - es6-promise "~3.0.2" - lie "~3.1.0" - pako "~1.0.2" - readable-stream "~2.0.6" - -karma-chrome-launcher@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" - dependencies: - fs-access "^1.0.0" - which "^1.2.1" - -karma-coverage-istanbul-reporter@^1.2.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.3.tgz#3b5dff4664fa5b8d5196b9889e3f61c1fa2b80d9" - dependencies: - istanbul-api "^1.3.1" - minimatch "^3.0.4" - -karma-jasmine-html-reporter@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz#48a8e5ef18807617ee2b5e33c1194c35b439524c" - dependencies: - karma-jasmine "^1.0.2" - -karma-jasmine@^1.0.2, karma-jasmine@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz#394f2b25ffb4a644b9ada6f22d443e2fd08886c3" - -karma-source-map-support@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz#36dd4d8ca154b62ace95696236fae37caf0a7dde" - dependencies: - source-map-support "^0.5.5" - -karma@~2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.2.tgz#4d2db9402850a66551fa784b0164fb0824ed8c4b" - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - chokidar "^1.4.1" - colors "^1.1.0" - combine-lists "^1.0.0" - connect "^3.6.0" - core-js "^2.2.0" - di "^0.0.1" - dom-serialize "^2.2.0" - expand-braces "^0.1.1" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.4" - log4js "^2.3.9" - mime "^1.3.4" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.0.4" - source-map "^0.6.1" - tmp "0.0.33" - useragent "2.2.1" - -killable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -less-loader@^4.0.5: - version "4.1.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^3.0.0" - -less@^2.7.2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/less/-/less-2.7.3.tgz#cc1260f51c900a9ec0d91fb6998139e02507b63b" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.2.11" - mkdirp "^0.5.0" - promise "^7.1.1" - request "2.81.0" - source-map "^0.5.3" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libbase64@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6" - -libmime@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/libmime/-/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6" - dependencies: - iconv-lite "0.4.15" - libbase64 "0.1.0" - libqp "1.1.0" - -libqp@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" - -license-webpack-plugin@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-1.3.1.tgz#688b76472188ef597918b7cae3eec7dc2fa5a0e8" - dependencies: - ejs "^2.5.7" - -lie@~3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" - dependencies: - immediate "~3.0.5" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@1.1.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - -lodash.mergewith@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" - -lodash.tail@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" - -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.5.0, lodash@~4.17.4: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - -log4js@^2.3.9: - version "2.6.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-2.6.1.tgz#497289259b5b941dd518f6ce219e6768aec87a96" - dependencies: - circular-json "^0.5.4" - date-format "^1.2.0" - debug "^3.1.0" - semver "^5.5.0" - streamroller "0.7.0" - optionalDependencies: - amqplib "^0.5.2" - axios "^0.15.3" - hipchat-notifier "^1.1.0" - loggly "^1.1.0" - mailgun-js "^0.18.0" - nodemailer "^2.5.0" - redis "^2.7.1" - slack-node "~0.2.0" - -loggly@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee" - dependencies: - json-stringify-safe "5.0.x" - request "2.75.x" - timespan "2.3.x" - -loglevel@^1.4.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - -lru-cache@2.2.x: - version "2.2.4" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" - -lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -magic-string@^0.22.3: - version "0.22.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" - dependencies: - vlq "^0.2.2" - -mailcomposer@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4" - dependencies: - buildmail "4.0.1" - libmime "3.0.0" - -mailgun-js@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/mailgun-js/-/mailgun-js-0.18.0.tgz#81fed0c66a411d3ff6c4354861ad21387afcfaaa" - dependencies: - async "~2.6.0" - debug "~3.1.0" - form-data "~2.3.0" - inflection "~1.12.0" - is-stream "^1.1.0" - path-proxy "~1.0.0" - promisify-call "^2.0.2" - proxy-agent "~3.0.0" - tsscmp "~1.0.0" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - dependencies: - pify "^3.0.0" - -make-error@^1.1.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.3.0, meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5, micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -"mime-db@>= 1.33.0 < 2", mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - dependencies: - mime-db "~1.33.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - -mime@^1.2.11, mime@^1.3.4, mime@^1.4.1, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minipass@^2.2.1, minipass@^2.2.4: - version "2.3.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.0.tgz#2e11b1c46df7fe7f1afbe9a490280add21ffe384" - dependencies: - safe-buffer "^5.1.1" - yallist "^3.0.0" - -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - dependencies: - minipass "^2.2.1" - -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^2.0.1" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -nan@^2.10.0, nan@^2.9.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" - -nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-odd "^2.0.0" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -needle@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -neo-async@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" - -netmask@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" - -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - dependencies: - lower-case "^1.1.1" - -node-forge@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" - -node-gyp@^3.3.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - minimatch "^3.0.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "2" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-modules-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" - -node-pre-gyp@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.0" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.1.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-sass@^4.7.2: - version "4.9.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.0.tgz#d1b8aa855d98ed684d6848db929a20771cc2ae52" - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash.assign "^4.2.0" - lodash.clonedeep "^4.3.2" - lodash.mergewith "^4.6.0" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.10.0" - node-gyp "^3.3.1" - npmlog "^4.0.0" - request "~2.79.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -node-uuid@~1.4.7: - version "1.4.8" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" - -nodemailer-direct-transport@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86" - dependencies: - nodemailer-shared "1.1.0" - smtp-connection "2.12.0" - -nodemailer-fetch@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4" - -nodemailer-shared@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0" - dependencies: - nodemailer-fetch "1.6.0" - -nodemailer-smtp-pool@2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72" - dependencies: - nodemailer-shared "1.1.0" - nodemailer-wellknown "0.1.10" - smtp-connection "2.12.0" - -nodemailer-smtp-transport@2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77" - dependencies: - nodemailer-shared "1.1.0" - nodemailer-wellknown "0.1.10" - smtp-connection "2.12.0" - -nodemailer-wellknown@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5" - -nodemailer@^2.5.0: - version "2.7.2" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9" - dependencies: - libmime "3.0.0" - mailcomposer "4.0.1" - nodemailer-direct-transport "3.3.2" - nodemailer-shared "1.1.0" - nodemailer-smtp-pool "2.8.2" - nodemailer-smtp-transport "2.7.2" - socks "1.1.9" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -npm-bundled@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" - -npm-packlist@^1.1.6: - version "1.1.10" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - dependencies: - boolbase "~1.0.0" - -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1, oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -opn@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - dependencies: - is-wsl "^1.1.0" - -opn@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" - dependencies: - is-wsl "^1.1.0" - -optimist@^0.6.1, optimist@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - -original@>=0.0.5: - version "1.0.1" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190" - dependencies: - url-parse "~1.4.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@0, osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.0.0, p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -pac-proxy-agent@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz#90d9f6730ab0f4d2607dcdcd4d3d641aa26c3896" - dependencies: - agent-base "^4.2.0" - debug "^3.1.0" - get-uri "^2.0.0" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.1" - pac-resolver "^3.0.0" - raw-body "^2.2.0" - socks-proxy-agent "^3.0.0" - -pac-resolver@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-3.0.0.tgz#6aea30787db0a891704deb7800a722a7615a6f26" - dependencies: - co "^4.6.0" - degenerator "^1.0.4" - ip "^1.1.5" - netmask "^1.0.6" - thunkify "^2.1.2" - -pako@~1.0.2, pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - dependencies: - no-case "^2.2.0" - -parse-asn1@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - dependencies: - better-assert "~1.0.0" - -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-proxy@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/path-proxy/-/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e" - dependencies: - inflection "~1.3.0" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - -pbkdf2@^3.0.3: - version "3.0.16" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -portfinder@^1.0.9, portfinder@~1.0.12: - version "1.0.13" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -postcss-import@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0" - dependencies: - postcss "^6.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" - -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" - dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" - -postcss-loader@^2.0.10: - version "2.1.5" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.5.tgz#3c6336ee641c8f95138172533ae461a83595e788" - dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.4.0" - -postcss-url@^7.1.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-7.3.2.tgz#5fea273807fb84b38c461c3c9a9e8abd235f7120" - dependencies: - mime "^1.4.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^6.0.1" - xxhashjs "^0.2.1" - -postcss-value-parser@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.16, postcss@^6.0.17: - version "6.0.22" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - dependencies: - asap "~2.0.3" - -promisify-call@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/promisify-call/-/promisify-call-2.0.4.tgz#d48c2d45652ccccd52801ddecbd533a6d4bd5fba" - dependencies: - with-callback "^1.0.2" - -protractor@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.3.2.tgz#b8278f3131d9d52fa1172ed0f7fec03085fbe0ce" - dependencies: - "@types/node" "^6.0.46" - "@types/q" "^0.0.32" - "@types/selenium-webdriver" "~2.53.39" - blocking-proxy "^1.0.0" - chalk "^1.1.3" - glob "^7.0.3" - jasmine "2.8.0" - jasminewd2 "^2.1.0" - optimist "~0.6.0" - q "1.4.1" - saucelabs "^1.5.0" - selenium-webdriver "3.6.0" - source-map-support "~0.4.0" - webdriver-js-extender "^1.0.0" - webdriver-manager "^12.0.6" - -proxy-addr@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.6.0" - -proxy-agent@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.0.0.tgz#f6768e202889b2285d39906d3a94768416f8f713" - dependencies: - agent-base "^4.2.0" - debug "^3.1.0" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.1" - lru-cache "^4.1.2" - pac-proxy-agent "^2.0.1" - proxy-from-env "^1.0.0" - socks-proxy-agent "^3.0.0" - -proxy-from-env@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -pump@^2.0.0, pump@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@1.4.1, punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - -q@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - -q@^1.4.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -qs@6.5.2, qs@~6.5.1: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -qs@~6.2.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" - -qs@~6.3.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -querystringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" - -randomatic@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" - unpipe "1.0.0" - -raw-body@2.3.3, raw-body@^2.2.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" - dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" - unpipe "1.0.0" - -raw-loader@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" - -rc@^1.1.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297" - dependencies: - deep-extend "^0.5.1" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - dependencies: - pify "^2.3.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@1.0: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@1.1.x, "readable-stream@1.x >=1.1.9": - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~2.0.5, readable-stream@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redis-commands@^1.2.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2" - -redis-parser@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" - -redis@^2.7.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" - dependencies: - double-ended-queue "^2.1.0-0" - redis-commands "^1.2.0" - redis-parser "^2.6.0" - -reflect-metadata@^0.1.2: - version "0.1.12" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2" - -regenerate@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -renderkid@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" - dependencies: - css-select "^1.1.0" - dom-converter "~0.1" - htmlparser2 "~3.3.0" - strip-ansi "^3.0.0" - utila "~0.3" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@2, request@^2.0.0, request@^2.74.0, request@^2.78.0: - version "2.86.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.86.0.tgz#2b9497f449b0a32654c081a5cf426bbfb5bf5b69" - dependencies: - 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" - hawk "~6.0.2" - 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" - -request@2.75.x: - version "2.75.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - bl "~1.1.2" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.0.0" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.1" - qs "~6.2.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -requestretry@^1.2.2: - version "1.13.0" - resolved "https://registry.yarnpkg.com/requestretry/-/requestretry-1.13.0.tgz#213ec1006eeb750e8b8ce54176283d15a8d55d94" - dependencies: - extend "^3.0.0" - lodash "^4.15.0" - request "^2.74.0" - when "^3.7.7" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@^1.1.7, resolve@^1.3.2: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - dependencies: - path-parse "^1.0.5" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - dependencies: - aproba "^1.1.1" - -rxjs@^5.5.6: - version "5.5.10" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.10.tgz#fde02d7a614f6c8683d0d1957827f492e09db045" - dependencies: - symbol-observable "1.0.1" - -rxjs@^5.6.0-forward-compat.4: - version "5.6.0-forward-compat.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.6.0-forward-compat.4.tgz#1d3d8d0ebd7eb894a44891d2582f604a78b0014c" - dependencies: - symbol-observable "1.0.1" - -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^7.0.0" - -sass-loader@^6.0.6: - version "6.0.7" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" - dependencies: - clone-deep "^2.0.1" - loader-utils "^1.0.1" - lodash.tail "^4.1.1" - neo-async "^2.5.0" - pify "^3.0.0" - -saucelabs@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" - dependencies: - https-proxy-agent "^2.2.1" - -sax@0.5.x: - version "0.5.8" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" - -sax@0.6.x: - version "0.6.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" - -sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - dependencies: - ajv "^5.0.0" - -schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - -selenium-webdriver@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" - dependencies: - jszip "^3.1.3" - rimraf "^2.5.4" - tmp "0.0.30" - xml2js "^0.4.17" - -selenium-webdriver@^2.53.2: - version "2.53.3" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085" - dependencies: - adm-zip "0.4.4" - rimraf "^2.2.8" - tmp "0.0.24" - ws "^1.0.1" - xml2js "0.4.4" - -selfsigned@^1.9.1: - version "1.10.3" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" - dependencies: - node-forge "0.7.5" - -semver-dsl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" - dependencies: - semver "^5.3.0" - -semver-intersect@^1.1.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.3.1.tgz#8fa84a9e1028bd239e4530d1a3e181e698d884ba" - dependencies: - semver "^5.0.0" - -"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -serialize-javascript@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" - -serve-index@^1.7.2: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" - dependencies: - is-extendable "^0.1.1" - kind-of "^5.0.0" - mixin-object "^2.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -silent-error@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.1.0.tgz#2209706f1c850a9f1d10d0d840918b46f26e1bc9" - dependencies: - debug "^2.2.0" - -slack-node@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/slack-node/-/slack-node-0.2.0.tgz#de4b8dddaa8b793f61dbd2938104fdabf37dfa30" - dependencies: - requestretry "^1.2.2" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -smart-buffer@^1.0.13, smart-buffer@^1.0.4: - version "1.1.15" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" - -smtp-connection@2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1" - dependencies: - httpntlm "1.6.1" - nodemailer-shared "1.1.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - -socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - -socket.io-client@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e" - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~2.6.4" - engine.io-client "~3.1.0" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.1.1" - to-array "0.1.4" - -socket.io-parser@~3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e" - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - has-binary2 "~1.0.2" - isarray "2.0.1" - -socket.io@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014" - dependencies: - debug "~2.6.6" - engine.io "~3.1.0" - socket.io-adapter "~1.1.0" - socket.io-client "2.0.4" - socket.io-parser "~3.1.1" - -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" - dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.8" - -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - -socks-proxy-agent@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" - dependencies: - agent-base "^4.1.0" - socks "^1.1.10" - -socks@1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691" - dependencies: - ip "^1.1.2" - smart-buffer "^1.0.4" - -socks@^1.1.10: - version "1.1.10" - resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" - dependencies: - ip "^1.1.4" - smart-buffer "^1.0.13" - -source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - -source-list-map@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.1, source-map-support@~0.4.0: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.0, source-map-support@^0.5.5: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@0.1.x: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - -source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.4.2, source-map@^0.4.4, source-map@~0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - -spdy-transport@^2.0.18: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - dependencies: - safe-buffer "^5.1.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -stdout-stream@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" - dependencies: - readable-stream "^2.0.1" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -streamroller@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b" - dependencies: - date-format "^1.2.0" - debug "^3.1.0" - mkdirp "^0.5.1" - readable-stream "^2.3.0" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.4: - version "0.0.6" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -style-loader@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.1.tgz#591ffc80bcefe268b77c5d9ebc0505d772619f85" - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" - -stylus-loader@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" - -stylus@^0.54.5: - version "0.54.5" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" - dependencies: - css-parse "1.7.x" - debug "*" - glob "7.0.x" - mkdirp "0.5.x" - sax "0.5.x" - source-map "0.1.x" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^4.0.0, supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - dependencies: - has-flag "^3.0.0" - -symbol-observable@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" - -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" - -tar@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -tar@^4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462" - dependencies: - chownr "^1.0.1" - fs-minipass "^1.2.5" - minipass "^2.2.4" - minizlib "^1.1.0" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -through2@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@X.X.X: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -thunkify@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" - -thunky@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" - -time-stamp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" - -timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - dependencies: - setimmediate "^1.0.4" - -timespan@2.3.x: - version "2.3.0" - resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" - -tmp@0.0.24: - version "0.0.24" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" - -tmp@0.0.30: - version "0.0.30" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" - dependencies: - os-tmpdir "~1.0.1" - -tmp@0.0.33, tmp@0.0.x: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - -tough-cookie@~2.3.0, tough-cookie@~2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" - dependencies: - punycode "^1.4.1" - -tree-kill@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -"true-case-path@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" - dependencies: - glob "^6.0.4" - -ts-node@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-4.1.0.tgz#36d9529c7b90bb993306c408cd07f7743de20712" - dependencies: - arrify "^1.0.0" - chalk "^2.3.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.0" - tsconfig "^7.0.0" - v8flags "^3.0.0" - yn "^2.0.0" - -tsconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" - dependencies: - "@types/strip-bom" "^3.0.0" - "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - -tsickle@^0.27.2: - version "0.27.5" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.27.5.tgz#41e1a41a5acf971cbb2b0558a9590779234d591f" - dependencies: - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map "^0.6.0" - source-map-support "^0.5.0" - -tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.1.tgz#a5d1f0532a49221c87755cfcc89ca37197242ba7" - -tslint@~5.9.1: - version "5.9.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" - dependencies: - babel-code-frame "^6.22.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.7.0" - minimatch "^3.0.4" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.12.1" - -tsscmp@~1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" - -tsutils@^2.12.1: - version "2.27.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.0.tgz#9efb252b188eaa0ca3ade41dc410d6ce7eaab816" - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.15, type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.18" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typescript@~2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d" - -typescript@~2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" - -uglify-es@^3.3.4: - version "3.3.10" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5" - dependencies: - commander "~2.14.1" - source-map "~0.6.1" - -uglify-js@3.3.x: - version "3.3.25" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.25.tgz#3266ccb87c5bea229f69041a0296010d6477d539" - dependencies: - commander "~2.15.0" - source-map "~0.6.1" - -uglify-js@^2.6, uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" - dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" - -uglifyjs-webpack-plugin@^1.1.8: - version "1.2.5" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz#2ef8387c8f1a903ec5e44fa36f9f3cbdcea67641" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - schema-utils "^0.4.5" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - uglify-es "^3.3.4" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - -underscore@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - -uri-js@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.1.tgz#4595a80a51f356164e22970df64c7abd6ade9850" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-loader@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" - dependencies: - loader-utils "^1.0.2" - mime "^1.4.1" - schema-utils "^0.3.0" - -url-parse@^1.1.8, url-parse@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.0.tgz#6bfdaad60098c7fe06f623e42b22de62de0d3d75" - dependencies: - querystringify "^2.0.0" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - dependencies: - kind-of "^6.0.2" - -useragent@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" - dependencies: - lru-cache "2.2.x" - tmp "0.0.x" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -utila@~0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - -uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -uws@~9.14.0: - version "9.14.0" - resolved "https://registry.yarnpkg.com/uws/-/uws-9.14.0.tgz#fac8386befc33a7a3705cbd58dc47b430ca4dd95" - -v8flags@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.0.tgz#246a34a8158c0e1390dcb758e1140e5d004e230b" - dependencies: - homedir-polyfill "^1.0.1" - -validate-npm-package-license@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vlq@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - -watchpack@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - dependencies: - minimalistic-assert "^1.0.0" - -webdriver-js-extender@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" - dependencies: - "@types/selenium-webdriver" "^2.53.35" - selenium-webdriver "^2.53.2" - -webdriver-manager@^12.0.6: - version "12.0.6" - resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.0.6.tgz#3df1a481977010b4cbf8c9d85c7a577828c0e70b" - dependencies: - adm-zip "^0.4.7" - chalk "^1.1.1" - del "^2.2.0" - glob "^7.0.3" - ini "^1.3.4" - minimist "^1.2.0" - q "^1.4.1" - request "^2.78.0" - rimraf "^2.5.2" - semver "^5.3.0" - xml2js "^0.4.17" - -webpack-core@^0.6.8: - version "0.6.9" - resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" - dependencies: - source-list-map "~0.1.7" - source-map "~0.4.1" - -webpack-dev-middleware@1.12.2, webpack-dev-middleware@~1.12.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" - dependencies: - memory-fs "~0.4.1" - mime "^1.5.0" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - time-stamp "^2.0.0" - -webpack-dev-server@~2.11.0: - version "2.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" - dependencies: - ansi-html "0.0.7" - array-includes "^3.0.3" - bonjour "^3.5.0" - chokidar "^2.0.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - debug "^3.1.0" - del "^3.0.0" - express "^4.16.2" - html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - import-local "^1.0.0" - internal-ip "1.2.0" - ip "^1.1.5" - killable "^1.0.0" - loglevel "^1.4.1" - opn "^5.1.0" - portfinder "^1.0.9" - selfsigned "^1.9.1" - serve-index "^1.7.2" - sockjs "0.3.19" - sockjs-client "1.1.4" - spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^5.1.0" - webpack-dev-middleware "1.12.2" - yargs "6.6.0" - -webpack-merge@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.2.tgz#5d372dddd3e1e5f8874f5bf5a8e929db09feb216" - dependencies: - lodash "^4.17.5" - -webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-subresource-integrity@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.0.4.tgz#8fac8a7e8eb59fc6a16768a85c9d94ee7f9d0edb" - dependencies: - webpack-core "^0.6.8" - -webpack@~3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" - -websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - dependencies: - http-parser-js ">=0.4.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - -when@^3.7.7: - version "3.7.8" - resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" - -when@~3.6.x: - version "3.6.4" - resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@1, which@^1.2.1, which@^1.2.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" - dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -with-callback@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/with-callback/-/with-callback-1.0.2.tgz#a09629b9a920028d721404fb435bdcff5c91bc21" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -ws@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -xml2js@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" - dependencies: - sax "0.6.x" - xmlbuilder ">=1.0.0" - -xml2js@^0.4.17: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@>=1.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.0.0.tgz#c64e52f8ae097fe5fd46d1c38adaade071ee1b55" - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - -xregexp@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -xxhashjs@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" - dependencies: - cuint "^0.2.2" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs@6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - -zone.js@^0.8.19: - version "0.8.26" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.26.tgz#7bdd72f7668c5a7ad6b118148b4ea39c59d08d2d" diff --git a/docker b/docker new file mode 100644 index 000000000..fd658fd8d Binary files /dev/null and b/docker differ diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..8c3a4baa2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,121 @@ +--- +version: '3' +services: + # The environment variable "TAG" is used throughout this file to + # specify the version of the images to run. The default is set in the + # '.env' file in this folder. It can be overridden with any normal + # technique for setting environment variables, for example: + # + # TAG=6.0.0-beta1 docker-compose up + # + # REF: https://docs.docker.com/compose/compose-file/#variable-substitution + # + # Also be sure to set the ELASTIC_VERSION variable. For released versions, + # ${TAG} and ${ELASTIC_VERSION} will be identical, but for pre-release + # versions, ${TAG} might contain an extra build identifier, like + # "6.0.0-beta1-3eab5b40", so a full invocation might look like: + # + # ELASTIC_VERSION=6.0.0-beta1 TAG=6.0.0-beta1-3eab5b40 docker-compose up + # + dmp-backend: + build: + context: ./dmp-backend + args: + PROFILE: ${PROFILE} + container_name: dmp-backend + ports: ['0.0.0.0:8080:8080'] + links: + - logstash + networks: ['stack'] + + dmp-frontend: + build: + context: ./dmp-frontend + args: + env: ${ENV} + aot: ${AOT} + container_name: dmp-frontend + ports: ['0.0.0.0:80:80'] + networks: ['stack'] + + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:${TAG} + container_name: elasticsearch + environment: ['http.host=0.0.0.0', 'transport.host=127.0.0.1', 'ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + ports: ['0.0.0.0:9200:9200'] + networks: ['stack'] + + kibana: + image: docker.elastic.co/kibana/kibana:${TAG} + container_name: kibana + ports: ['0.0.0.0:5601:5601'] + networks: ['stack'] + depends_on: ['elasticsearch'] + + logstash: + image: docker.elastic.co/logstash/logstash:${TAG} + container_name: logstash + volumes: + - ./ELK.Docker/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf + ports: ['0.0.0.0:31311:31311'] + + networks: ['stack'] + depends_on: ['elasticsearch', 'setup_logstash'] + + filebeat: + image: docker.elastic.co/beats/filebeat:${TAG} + container_name: filebeat + command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}' + networks: ['stack'] + depends_on: ['elasticsearch', 'setup_filebeat'] + + heartbeat: + image: docker.elastic.co/beats/heartbeat:${TAG} + container_name: heartbeat + command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}' + networks: ['stack'] + depends_on: ['elasticsearch', 'setup_heartbeat'] + + # Run a short-lived container to set up Logstash. + setup_logstash: + image: centos:7 + container_name: setup_logstash + volumes: ['./ELK.Docker/scripts/setup-logstash.sh:/usr/local/bin/setup-logstash.sh:ro'] + # The script may have CR/LF line endings if using Docker for Windows, so + # make sure that they don't confuse Bash. + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-logstash.sh | tr -d "\r" | bash'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['elasticsearch'] + + setup_kibana: + image: centos:7 + container_name: setup_kibana + volumes: ['./ELK.Docker/scripts/setup-kibana.sh:/usr/local/bin/setup-kibana.sh:ro'] + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-kibana.sh | tr -d "\r" | bash'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['elasticsearch'] + + setup_filebeat: + image: docker.elastic.co/beats/filebeat:${TAG} + container_name: setup_filebeat + volumes: ['./ELK.Docker/scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro'] + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s filebeat'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['kibana'] + + setup_heartbeat: + image: docker.elastic.co/beats/heartbeat:${TAG} + container_name: setup_heartbeat + volumes: ['./ELK.Docker/scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro'] + command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s heartbeat'] + environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + networks: ['stack'] + depends_on: ['kibana'] + +#volumes: + #esdata: + # driver: local +networks: {stack: {}} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 48e341a09..000000000 --- a/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -}