Commit e43558109ef613ef30e9edc5a3bcb9c03cf1da35

Authored by Andrew Shvayka
1 parent fe24db40

Extracted dao-api module to simplify rule-engine-api

Showing 35 changed files with 220 additions and 116 deletions
@@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
16 package org.thingsboard.server.actors.ruleChain; 16 package org.thingsboard.server.actors.ruleChain;
17 17
18 import akka.actor.ActorRef; 18 import akka.actor.ActorRef;
  19 +import com.datastax.driver.core.ResultSetFuture;
19 import com.datastax.driver.core.utils.UUIDs; 20 import com.datastax.driver.core.utils.UUIDs;
20 import com.fasterxml.jackson.core.JsonProcessingException; 21 import com.fasterxml.jackson.core.JsonProcessingException;
21 import com.fasterxml.jackson.databind.ObjectMapper; 22 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -60,6 +61,7 @@ import org.thingsboard.server.dao.dashboard.DashboardService; @@ -60,6 +61,7 @@ import org.thingsboard.server.dao.dashboard.DashboardService;
60 import org.thingsboard.server.dao.device.DeviceService; 61 import org.thingsboard.server.dao.device.DeviceService;
61 import org.thingsboard.server.dao.entityview.EntityViewService; 62 import org.thingsboard.server.dao.entityview.EntityViewService;
62 import org.thingsboard.server.dao.nosql.CassandraBufferedRateExecutor; 63 import org.thingsboard.server.dao.nosql.CassandraBufferedRateExecutor;
  64 +import org.thingsboard.server.dao.nosql.CassandraStatementTask;
63 import org.thingsboard.server.dao.relation.RelationService; 65 import org.thingsboard.server.dao.relation.RelationService;
64 import org.thingsboard.server.dao.rule.RuleChainService; 66 import org.thingsboard.server.dao.rule.RuleChainService;
65 import org.thingsboard.server.dao.tenant.TenantService; 67 import org.thingsboard.server.dao.tenant.TenantService;
@@ -355,8 +357,8 @@ class DefaultTbContext implements TbContext { @@ -355,8 +357,8 @@ class DefaultTbContext implements TbContext {
355 } 357 }
356 358
357 @Override 359 @Override
358 - public CassandraBufferedRateExecutor getCassandraBufferedRateExecutor() {  
359 - return mainCtx.getCassandraBufferedRateExecutor(); 360 + public ResultSetFuture submitCassandraTask(CassandraStatementTask task) {
  361 + return mainCtx.getCassandraBufferedRateExecutor().submit(task);
360 } 362 }
361 363
362 private TbMsgMetaData getActionMetaData(RuleNodeId ruleNodeId) { 364 private TbMsgMetaData getActionMetaData(RuleNodeId ruleNodeId) {
  1 +<!--
  2 +
  3 + Copyright © 2016-2019 The Thingsboard Authors
  4 +
  5 + Licensed under the Apache License, Version 2.0 (the "License");
  6 + you may not use this file except in compliance with the License.
  7 + You may obtain a copy of the License at
  8 +
  9 + http://www.apache.org/licenses/LICENSE-2.0
  10 +
  11 + Unless required by applicable law or agreed to in writing, software
  12 + distributed under the License is distributed on an "AS IS" BASIS,
  13 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 + See the License for the specific language governing permissions and
  15 + limitations under the License.
  16 +
  17 +-->
  18 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  19 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  20 + <modelVersion>4.0.0</modelVersion>
  21 + <parent>
  22 + <groupId>org.thingsboard</groupId>
  23 + <version>2.4.1-SNAPSHOT</version>
  24 + <artifactId>common</artifactId>
  25 + </parent>
  26 + <groupId>org.thingsboard.common</groupId>
  27 + <artifactId>dao-api</artifactId>
  28 + <packaging>jar</packaging>
  29 +
  30 + <name>Thingsboard Server Common DAO API</name>
  31 + <url>https://thingsboard.io</url>
  32 +
  33 + <properties>
  34 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  35 + <main.dir>${basedir}/../..</main.dir>
  36 + </properties>
  37 +
  38 + <dependencies>
  39 + <dependency>
  40 + <groupId>org.thingsboard.common</groupId>
  41 + <artifactId>data</artifactId>
  42 + </dependency>
  43 + <dependency>
  44 + <groupId>org.thingsboard.common</groupId>
  45 + <artifactId>message</artifactId>
  46 + </dependency>
  47 + <dependency>
  48 + <groupId>com.google.guava</groupId>
  49 + <artifactId>guava</artifactId>
  50 + </dependency>
  51 + <dependency>
  52 + <groupId>com.github.fge</groupId>
  53 + <artifactId>json-schema-validator</artifactId>
  54 + </dependency>
  55 + <dependency>
  56 + <groupId>org.slf4j</groupId>
  57 + <artifactId>slf4j-api</artifactId>
  58 + </dependency>
  59 + <dependency>
  60 + <groupId>org.slf4j</groupId>
  61 + <artifactId>log4j-over-slf4j</artifactId>
  62 + </dependency>
  63 + <dependency>
  64 + <groupId>ch.qos.logback</groupId>
  65 + <artifactId>logback-core</artifactId>
  66 + </dependency>
  67 + <dependency>
  68 + <groupId>ch.qos.logback</groupId>
  69 + <artifactId>logback-classic</artifactId>
  70 + </dependency>
  71 + <dependency>
  72 + <groupId>com.fasterxml.jackson.core</groupId>
  73 + <artifactId>jackson-databind</artifactId>
  74 + </dependency>
  75 + <dependency>
  76 + <groupId>org.springframework.boot</groupId>
  77 + <artifactId>spring-boot-autoconfigure</artifactId>
  78 + <scope>provided</scope>
  79 + </dependency>
  80 + <dependency>
  81 + <groupId>com.datastax.cassandra</groupId>
  82 + <artifactId>cassandra-driver-core</artifactId>
  83 + <scope>provided</scope>
  84 + </dependency>
  85 + <dependency>
  86 + <groupId>com.datastax.cassandra</groupId>
  87 + <artifactId>cassandra-driver-mapping</artifactId>
  88 + <scope>provided</scope>
  89 + </dependency>
  90 + <dependency>
  91 + <groupId>com.datastax.cassandra</groupId>
  92 + <artifactId>cassandra-driver-extras</artifactId>
  93 + <scope>provided</scope>
  94 + </dependency>
  95 + <dependency>
  96 + <groupId>org.apache.commons</groupId>
  97 + <artifactId>commons-lang3</artifactId>
  98 + <scope>provided</scope>
  99 + </dependency>
  100 + <dependency>
  101 + <groupId>junit</groupId>
  102 + <artifactId>junit</artifactId>
  103 + <scope>test</scope>
  104 + </dependency>
  105 + <dependency>
  106 + <groupId>org.mockito</groupId>
  107 + <artifactId>mockito-all</artifactId>
  108 + <scope>test</scope>
  109 + </dependency>
  110 + </dependencies>
  111 +
  112 + <build>
  113 + <plugins>
  114 + </plugins>
  115 + </build>
  116 +
  117 +</project>
common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java renamed from dao/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetService.java renamed from dao/src/main/java/org/thingsboard/server/dao/asset/AssetService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/attributes/AttributesService.java renamed from dao/src/main/java/org/thingsboard/server/dao/attributes/AttributesService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/cassandra/AbstractCassandraCluster.java renamed from dao/src/main/java/org/thingsboard/server/dao/cassandra/AbstractCassandraCluster.java
common/dao-api/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java renamed from dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java
common/dao-api/src/main/java/org/thingsboard/server/dao/cassandra/CassandraInstallCluster.java renamed from dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraInstallCluster.java
common/dao-api/src/main/java/org/thingsboard/server/dao/cassandra/CassandraQueryOptions.java renamed from dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraQueryOptions.java
common/dao-api/src/main/java/org/thingsboard/server/dao/cassandra/CassandraSocketOptions.java renamed from dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraSocketOptions.java
common/dao-api/src/main/java/org/thingsboard/server/dao/customer/CustomerService.java renamed from dao/src/main/java/org/thingsboard/server/dao/customer/CustomerService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java renamed from dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceService.java renamed from dao/src/main/java/org/thingsboard/server/dao/device/DeviceService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java renamed from dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/nosql/CassandraStatementTask.java renamed from dao/src/main/java/org/thingsboard/server/dao/nosql/CassandraStatementTask.java
common/dao-api/src/main/java/org/thingsboard/server/dao/relation/RelationService.java renamed from dao/src/main/java/org/thingsboard/server/dao/relation/RelationService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java renamed from dao/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantService.java renamed from dao/src/main/java/org/thingsboard/server/dao/tenant/TenantService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/timeseries/TimeseriesService.java renamed from dao/src/main/java/org/thingsboard/server/dao/timeseries/TimeseriesService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/user/UserService.java renamed from dao/src/main/java/org/thingsboard/server/dao/user/UserService.java
common/dao-api/src/main/java/org/thingsboard/server/dao/util/AsyncTask.java renamed from dao/src/main/java/org/thingsboard/server/dao/util/AsyncTask.java
common/dao-api/src/main/java/org/thingsboard/server/dao/util/NoSqlAnyDao.java renamed from dao/src/main/java/org/thingsboard/server/dao/util/NoSqlAnyDao.java
common/dao-api/src/main/java/org/thingsboard/server/dao/util/NoSqlDao.java renamed from dao/src/main/java/org/thingsboard/server/dao/util/NoSqlDao.java
common/dao-api/src/main/java/org/thingsboard/server/dao/util/NoSqlTsDao.java renamed from dao/src/main/java/org/thingsboard/server/dao/util/NoSqlTsDao.java
common/dao-api/src/main/java/org/thingsboard/server/dao/util/SqlDao.java renamed from dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java
common/dao-api/src/main/java/org/thingsboard/server/dao/util/SqlTsDao.java renamed from dao/src/main/java/org/thingsboard/server/dao/util/SqlTsDao.java
@@ -39,6 +39,7 @@ @@ -39,6 +39,7 @@
39 <module>message</module> 39 <module>message</module>
40 <module>queue</module> 40 <module>queue</module>
41 <module>transport</module> 41 <module>transport</module>
  42 + <module>dao-api</module>
42 </modules> 43 </modules>
43 44
44 </project> 45 </project>
@@ -44,6 +44,10 @@ @@ -44,6 +44,10 @@
44 <artifactId>message</artifactId> 44 <artifactId>message</artifactId>
45 </dependency> 45 </dependency>
46 <dependency> 46 <dependency>
  47 + <groupId>org.thingsboard.common</groupId>
  48 + <artifactId>dao-api</artifactId>
  49 + </dependency>
  50 + <dependency>
47 <groupId>org.slf4j</groupId> 51 <groupId>org.slf4j</groupId>
48 <artifactId>slf4j-api</artifactId> 52 <artifactId>slf4j-api</artifactId>
49 </dependency> 53 </dependency>
@@ -96,10 +100,6 @@ @@ -96,10 +100,6 @@
96 <artifactId>jackson-databind</artifactId> 100 <artifactId>jackson-databind</artifactId>
97 </dependency> 101 </dependency>
98 <dependency> 102 <dependency>
99 - <groupId>com.github.fge</groupId>  
100 - <artifactId>json-schema-validator</artifactId>  
101 - </dependency>  
102 - <dependency>  
103 <groupId>org.springframework</groupId> 103 <groupId>org.springframework</groupId>
104 <artifactId>spring-context</artifactId> 104 <artifactId>spring-context</artifactId>
105 </dependency> 105 </dependency>
@@ -998,7 +998,7 @@ @@ -998,7 +998,7 @@
998 }, 998 },
999 "enabled": { 999 "enabled": {
1000 "version": "1.0.2", 1000 "version": "1.0.2",
1001 - "resolved": "http://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", 1001 + "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
1002 "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=", 1002 "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
1003 "requires": { 1003 "requires": {
1004 "env-variable": "0.0.x" 1004 "env-variable": "0.0.x"
@@ -1261,7 +1261,7 @@ @@ -1261,7 +1261,7 @@
1261 }, 1261 },
1262 "fecha": { 1262 "fecha": {
1263 "version": "2.3.3", 1263 "version": "2.3.3",
1264 - "resolved": "http://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", 1264 + "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
1265 "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" 1265 "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
1266 }, 1266 },
1267 "file-stream-rotator": { 1267 "file-stream-rotator": {
@@ -1407,14 +1407,12 @@ @@ -1407,14 +1407,12 @@
1407 "balanced-match": { 1407 "balanced-match": {
1408 "version": "1.0.0", 1408 "version": "1.0.0",
1409 "bundled": true, 1409 "bundled": true,
1410 - "dev": true,  
1411 - "optional": true 1410 + "dev": true
1412 }, 1411 },
1413 "brace-expansion": { 1412 "brace-expansion": {
1414 "version": "1.1.11", 1413 "version": "1.1.11",
1415 "bundled": true, 1414 "bundled": true,
1416 "dev": true, 1415 "dev": true,
1417 - "optional": true,  
1418 "requires": { 1416 "requires": {
1419 "balanced-match": "^1.0.0", 1417 "balanced-match": "^1.0.0",
1420 "concat-map": "0.0.1" 1418 "concat-map": "0.0.1"
@@ -1429,20 +1427,17 @@ @@ -1429,20 +1427,17 @@
1429 "code-point-at": { 1427 "code-point-at": {
1430 "version": "1.1.0", 1428 "version": "1.1.0",
1431 "bundled": true, 1429 "bundled": true,
1432 - "dev": true,  
1433 - "optional": true 1430 + "dev": true
1434 }, 1431 },
1435 "concat-map": { 1432 "concat-map": {
1436 "version": "0.0.1", 1433 "version": "0.0.1",
1437 "bundled": true, 1434 "bundled": true,
1438 - "dev": true,  
1439 - "optional": true 1435 + "dev": true
1440 }, 1436 },
1441 "console-control-strings": { 1437 "console-control-strings": {
1442 "version": "1.1.0", 1438 "version": "1.1.0",
1443 "bundled": true, 1439 "bundled": true,
1444 - "dev": true,  
1445 - "optional": true 1440 + "dev": true
1446 }, 1441 },
1447 "core-util-is": { 1442 "core-util-is": {
1448 "version": "1.0.2", 1443 "version": "1.0.2",
@@ -1559,8 +1554,7 @@ @@ -1559,8 +1554,7 @@
1559 "inherits": { 1554 "inherits": {
1560 "version": "2.0.3", 1555 "version": "2.0.3",
1561 "bundled": true, 1556 "bundled": true,
1562 - "dev": true,  
1563 - "optional": true 1557 + "dev": true
1564 }, 1558 },
1565 "ini": { 1559 "ini": {
1566 "version": "1.3.5", 1560 "version": "1.3.5",
@@ -1572,7 +1566,6 @@ @@ -1572,7 +1566,6 @@
1572 "version": "1.0.0", 1566 "version": "1.0.0",
1573 "bundled": true, 1567 "bundled": true,
1574 "dev": true, 1568 "dev": true,
1575 - "optional": true,  
1576 "requires": { 1569 "requires": {
1577 "number-is-nan": "^1.0.0" 1570 "number-is-nan": "^1.0.0"
1578 } 1571 }
@@ -1587,7 +1580,6 @@ @@ -1587,7 +1580,6 @@
1587 "version": "3.0.4", 1580 "version": "3.0.4",
1588 "bundled": true, 1581 "bundled": true,
1589 "dev": true, 1582 "dev": true,
1590 - "optional": true,  
1591 "requires": { 1583 "requires": {
1592 "brace-expansion": "^1.1.7" 1584 "brace-expansion": "^1.1.7"
1593 } 1585 }
@@ -1595,14 +1587,12 @@ @@ -1595,14 +1587,12 @@
1595 "minimist": { 1587 "minimist": {
1596 "version": "0.0.8", 1588 "version": "0.0.8",
1597 "bundled": true, 1589 "bundled": true,
1598 - "dev": true,  
1599 - "optional": true 1590 + "dev": true
1600 }, 1591 },
1601 "minipass": { 1592 "minipass": {
1602 "version": "2.2.4", 1593 "version": "2.2.4",
1603 "bundled": true, 1594 "bundled": true,
1604 "dev": true, 1595 "dev": true,
1605 - "optional": true,  
1606 "requires": { 1596 "requires": {
1607 "safe-buffer": "^5.1.1", 1597 "safe-buffer": "^5.1.1",
1608 "yallist": "^3.0.0" 1598 "yallist": "^3.0.0"
@@ -1621,7 +1611,6 @@ @@ -1621,7 +1611,6 @@
1621 "version": "0.5.1", 1611 "version": "0.5.1",
1622 "bundled": true, 1612 "bundled": true,
1623 "dev": true, 1613 "dev": true,
1624 - "optional": true,  
1625 "requires": { 1614 "requires": {
1626 "minimist": "0.0.8" 1615 "minimist": "0.0.8"
1627 } 1616 }
@@ -1702,8 +1691,7 @@ @@ -1702,8 +1691,7 @@
1702 "number-is-nan": { 1691 "number-is-nan": {
1703 "version": "1.0.1", 1692 "version": "1.0.1",
1704 "bundled": true, 1693 "bundled": true,
1705 - "dev": true,  
1706 - "optional": true 1694 + "dev": true
1707 }, 1695 },
1708 "object-assign": { 1696 "object-assign": {
1709 "version": "4.1.1", 1697 "version": "4.1.1",
@@ -1715,7 +1703,6 @@ @@ -1715,7 +1703,6 @@
1715 "version": "1.4.0", 1703 "version": "1.4.0",
1716 "bundled": true, 1704 "bundled": true,
1717 "dev": true, 1705 "dev": true,
1718 - "optional": true,  
1719 "requires": { 1706 "requires": {
1720 "wrappy": "1" 1707 "wrappy": "1"
1721 } 1708 }
@@ -1837,7 +1824,6 @@ @@ -1837,7 +1824,6 @@
1837 "version": "1.0.2", 1824 "version": "1.0.2",
1838 "bundled": true, 1825 "bundled": true,
1839 "dev": true, 1826 "dev": true,
1840 - "optional": true,  
1841 "requires": { 1827 "requires": {
1842 "code-point-at": "^1.0.0", 1828 "code-point-at": "^1.0.0",
1843 "is-fullwidth-code-point": "^1.0.0", 1829 "is-fullwidth-code-point": "^1.0.0",
@@ -2440,7 +2426,7 @@ @@ -2440,7 +2426,7 @@
2440 }, 2426 },
2441 "json5": { 2427 "json5": {
2442 "version": "1.0.1", 2428 "version": "1.0.1",
2443 - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", 2429 + "resolved": "http://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
2444 "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", 2430 "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
2445 "requires": { 2431 "requires": {
2446 "minimist": "^1.2.0" 2432 "minimist": "^1.2.0"
@@ -2961,7 +2947,7 @@ @@ -2961,7 +2947,7 @@
2961 }, 2947 },
2962 "os-homedir": { 2948 "os-homedir": {
2963 "version": "1.0.2", 2949 "version": "1.0.2",
2964 - "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2950 + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
2965 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 2951 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
2966 "optional": true 2952 "optional": true
2967 }, 2953 },
@@ -3009,7 +2995,7 @@ @@ -3009,7 +2995,7 @@
3009 }, 2995 },
3010 "path-is-absolute": { 2996 "path-is-absolute": {
3011 "version": "1.0.1", 2997 "version": "1.0.1",
3012 - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2998 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3013 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2999 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3014 "dev": true 3000 "dev": true
3015 }, 3001 },
@@ -3415,7 +3401,7 @@ @@ -3415,7 +3401,7 @@
3415 }, 3401 },
3416 "safe-regex": { 3402 "safe-regex": {
3417 "version": "1.1.0", 3403 "version": "1.1.0",
3418 - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 3404 + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3419 "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 3405 "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3420 "dev": true, 3406 "dev": true,
3421 "requires": { 3407 "requires": {
@@ -3767,7 +3753,7 @@ @@ -3767,7 +3753,7 @@
3767 }, 3753 },
3768 "strip-eof": { 3754 "strip-eof": {
3769 "version": "1.0.0", 3755 "version": "1.0.0",
3770 - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3756 + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
3771 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 3757 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
3772 "dev": true 3758 "dev": true
3773 }, 3759 },
@@ -837,7 +837,7 @@ @@ -837,7 +837,7 @@
837 }, 837 },
838 "enabled": { 838 "enabled": {
839 "version": "1.0.2", 839 "version": "1.0.2",
840 - "resolved": "http://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", 840 + "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
841 "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=", 841 "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
842 "requires": { 842 "requires": {
843 "env-variable": "0.0.x" 843 "env-variable": "0.0.x"
@@ -1149,7 +1149,7 @@ @@ -1149,7 +1149,7 @@
1149 }, 1149 },
1150 "fecha": { 1150 "fecha": {
1151 "version": "2.3.3", 1151 "version": "2.3.3",
1152 - "resolved": "http://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", 1152 + "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
1153 "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" 1153 "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
1154 }, 1154 },
1155 "file-stream-rotator": { 1155 "file-stream-rotator": {
@@ -1325,14 +1325,12 @@ @@ -1325,14 +1325,12 @@
1325 "balanced-match": { 1325 "balanced-match": {
1326 "version": "1.0.0", 1326 "version": "1.0.0",
1327 "bundled": true, 1327 "bundled": true,
1328 - "dev": true,  
1329 - "optional": true 1328 + "dev": true
1330 }, 1329 },
1331 "brace-expansion": { 1330 "brace-expansion": {
1332 "version": "1.1.11", 1331 "version": "1.1.11",
1333 "bundled": true, 1332 "bundled": true,
1334 "dev": true, 1333 "dev": true,
1335 - "optional": true,  
1336 "requires": { 1334 "requires": {
1337 "balanced-match": "^1.0.0", 1335 "balanced-match": "^1.0.0",
1338 "concat-map": "0.0.1" 1336 "concat-map": "0.0.1"
@@ -1347,20 +1345,17 @@ @@ -1347,20 +1345,17 @@
1347 "code-point-at": { 1345 "code-point-at": {
1348 "version": "1.1.0", 1346 "version": "1.1.0",
1349 "bundled": true, 1347 "bundled": true,
1350 - "dev": true,  
1351 - "optional": true 1348 + "dev": true
1352 }, 1349 },
1353 "concat-map": { 1350 "concat-map": {
1354 "version": "0.0.1", 1351 "version": "0.0.1",
1355 "bundled": true, 1352 "bundled": true,
1356 - "dev": true,  
1357 - "optional": true 1353 + "dev": true
1358 }, 1354 },
1359 "console-control-strings": { 1355 "console-control-strings": {
1360 "version": "1.1.0", 1356 "version": "1.1.0",
1361 "bundled": true, 1357 "bundled": true,
1362 - "dev": true,  
1363 - "optional": true 1358 + "dev": true
1364 }, 1359 },
1365 "core-util-is": { 1360 "core-util-is": {
1366 "version": "1.0.2", 1361 "version": "1.0.2",
@@ -1477,8 +1472,7 @@ @@ -1477,8 +1472,7 @@
1477 "inherits": { 1472 "inherits": {
1478 "version": "2.0.3", 1473 "version": "2.0.3",
1479 "bundled": true, 1474 "bundled": true,
1480 - "dev": true,  
1481 - "optional": true 1475 + "dev": true
1482 }, 1476 },
1483 "ini": { 1477 "ini": {
1484 "version": "1.3.5", 1478 "version": "1.3.5",
@@ -1490,7 +1484,6 @@ @@ -1490,7 +1484,6 @@
1490 "version": "1.0.0", 1484 "version": "1.0.0",
1491 "bundled": true, 1485 "bundled": true,
1492 "dev": true, 1486 "dev": true,
1493 - "optional": true,  
1494 "requires": { 1487 "requires": {
1495 "number-is-nan": "^1.0.0" 1488 "number-is-nan": "^1.0.0"
1496 } 1489 }
@@ -1505,7 +1498,6 @@ @@ -1505,7 +1498,6 @@
1505 "version": "3.0.4", 1498 "version": "3.0.4",
1506 "bundled": true, 1499 "bundled": true,
1507 "dev": true, 1500 "dev": true,
1508 - "optional": true,  
1509 "requires": { 1501 "requires": {
1510 "brace-expansion": "^1.1.7" 1502 "brace-expansion": "^1.1.7"
1511 } 1503 }
@@ -1513,14 +1505,12 @@ @@ -1513,14 +1505,12 @@
1513 "minimist": { 1505 "minimist": {
1514 "version": "0.0.8", 1506 "version": "0.0.8",
1515 "bundled": true, 1507 "bundled": true,
1516 - "dev": true,  
1517 - "optional": true 1508 + "dev": true
1518 }, 1509 },
1519 "minipass": { 1510 "minipass": {
1520 "version": "2.2.4", 1511 "version": "2.2.4",
1521 "bundled": true, 1512 "bundled": true,
1522 "dev": true, 1513 "dev": true,
1523 - "optional": true,  
1524 "requires": { 1514 "requires": {
1525 "safe-buffer": "^5.1.1", 1515 "safe-buffer": "^5.1.1",
1526 "yallist": "^3.0.0" 1516 "yallist": "^3.0.0"
@@ -1539,7 +1529,6 @@ @@ -1539,7 +1529,6 @@
1539 "version": "0.5.1", 1529 "version": "0.5.1",
1540 "bundled": true, 1530 "bundled": true,
1541 "dev": true, 1531 "dev": true,
1542 - "optional": true,  
1543 "requires": { 1532 "requires": {
1544 "minimist": "0.0.8" 1533 "minimist": "0.0.8"
1545 } 1534 }
@@ -1620,8 +1609,7 @@ @@ -1620,8 +1609,7 @@
1620 "number-is-nan": { 1609 "number-is-nan": {
1621 "version": "1.0.1", 1610 "version": "1.0.1",
1622 "bundled": true, 1611 "bundled": true,
1623 - "dev": true,  
1624 - "optional": true 1612 + "dev": true
1625 }, 1613 },
1626 "object-assign": { 1614 "object-assign": {
1627 "version": "4.1.1", 1615 "version": "4.1.1",
@@ -1633,7 +1621,6 @@ @@ -1633,7 +1621,6 @@
1633 "version": "1.4.0", 1621 "version": "1.4.0",
1634 "bundled": true, 1622 "bundled": true,
1635 "dev": true, 1623 "dev": true,
1636 - "optional": true,  
1637 "requires": { 1624 "requires": {
1638 "wrappy": "1" 1625 "wrappy": "1"
1639 } 1626 }
@@ -1755,7 +1742,6 @@ @@ -1755,7 +1742,6 @@
1755 "version": "1.0.2", 1742 "version": "1.0.2",
1756 "bundled": true, 1743 "bundled": true,
1757 "dev": true, 1744 "dev": true,
1758 - "optional": true,  
1759 "requires": { 1745 "requires": {
1760 "code-point-at": "^1.0.0", 1746 "code-point-at": "^1.0.0",
1761 "is-fullwidth-code-point": "^1.0.0", 1747 "is-fullwidth-code-point": "^1.0.0",
@@ -2368,7 +2354,7 @@ @@ -2368,7 +2354,7 @@
2368 }, 2354 },
2369 "json5": { 2355 "json5": {
2370 "version": "1.0.1", 2356 "version": "1.0.1",
2371 - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", 2357 + "resolved": "http://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
2372 "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", 2358 "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
2373 "requires": { 2359 "requires": {
2374 "minimist": "^1.2.0" 2360 "minimist": "^1.2.0"
@@ -2500,7 +2486,7 @@ @@ -2500,7 +2486,7 @@
2500 }, 2486 },
2501 "media-typer": { 2487 "media-typer": {
2502 "version": "0.3.0", 2488 "version": "0.3.0",
2503 - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 2489 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
2504 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 2490 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
2505 }, 2491 },
2506 "merge-descriptors": { 2492 "merge-descriptors": {
@@ -2595,7 +2581,7 @@ @@ -2595,7 +2581,7 @@
2595 }, 2581 },
2596 "mkdirp": { 2582 "mkdirp": {
2597 "version": "0.5.1", 2583 "version": "0.5.1",
2598 - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2584 + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2599 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2585 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2600 "dev": true, 2586 "dev": true,
2601 "requires": { 2587 "requires": {
@@ -2604,7 +2590,7 @@ @@ -2604,7 +2590,7 @@
2604 "dependencies": { 2590 "dependencies": {
2605 "minimist": { 2591 "minimist": {
2606 "version": "0.0.8", 2592 "version": "0.0.8",
2607 - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2593 + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2608 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2594 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2609 "dev": true 2595 "dev": true
2610 } 2596 }
@@ -2873,7 +2859,7 @@ @@ -2873,7 +2859,7 @@
2873 }, 2859 },
2874 "path-is-absolute": { 2860 "path-is-absolute": {
2875 "version": "1.0.1", 2861 "version": "1.0.1",
2876 - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2862 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2877 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2863 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2878 "dev": true 2864 "dev": true
2879 }, 2865 },
@@ -3247,7 +3233,7 @@ @@ -3247,7 +3233,7 @@
3247 }, 3233 },
3248 "safe-regex": { 3234 "safe-regex": {
3249 "version": "1.1.0", 3235 "version": "1.1.0",
3250 - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 3236 + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3251 "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 3237 "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3252 "dev": true, 3238 "dev": true,
3253 "requires": { 3239 "requires": {
@@ -3599,7 +3585,7 @@ @@ -3599,7 +3585,7 @@
3599 }, 3585 },
3600 "strip-eof": { 3586 "strip-eof": {
3601 "version": "1.0.0", 3587 "version": "1.0.0",
3602 - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3588 + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
3603 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 3589 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
3604 "dev": true 3590 "dev": true
3605 }, 3591 },
@@ -360,6 +360,11 @@ @@ -360,6 +360,11 @@
360 <version>${project.version}</version> 360 <version>${project.version}</version>
361 </dependency> 361 </dependency>
362 <dependency> 362 <dependency>
  363 + <groupId>org.thingsboard.common</groupId>
  364 + <artifactId>dao-api</artifactId>
  365 + <version>${project.version}</version>
  366 + </dependency>
  367 + <dependency>
363 <groupId>org.thingsboard.rule-engine</groupId> 368 <groupId>org.thingsboard.rule-engine</groupId>
364 <artifactId>rule-engine-api</artifactId> 369 <artifactId>rule-engine-api</artifactId>
365 <version>${project.version}</version> 370 <version>${project.version}</version>
@@ -44,8 +44,13 @@ @@ -44,8 +44,13 @@
44 <scope>provided</scope> 44 <scope>provided</scope>
45 </dependency> 45 </dependency>
46 <dependency> 46 <dependency>
47 - <groupId>org.thingsboard</groupId>  
48 - <artifactId>dao</artifactId> 47 + <groupId>org.thingsboard.common</groupId>
  48 + <artifactId>dao-api</artifactId>
  49 + <scope>provided</scope>
  50 + </dependency>
  51 + <dependency>
  52 + <groupId>io.netty</groupId>
  53 + <artifactId>netty-all</artifactId>
49 <scope>provided</scope> 54 <scope>provided</scope>
50 </dependency> 55 </dependency>
51 <dependency> 56 <dependency>
@@ -63,5 +68,20 @@ @@ -63,5 +68,20 @@
63 <artifactId>logback-classic</artifactId> 68 <artifactId>logback-classic</artifactId>
64 <scope>provided</scope> 69 <scope>provided</scope>
65 </dependency> 70 </dependency>
  71 + <dependency>
  72 + <groupId>com.datastax.cassandra</groupId>
  73 + <artifactId>cassandra-driver-core</artifactId>
  74 + <scope>provided</scope>
  75 + </dependency>
  76 + <dependency>
  77 + <groupId>com.datastax.cassandra</groupId>
  78 + <artifactId>cassandra-driver-mapping</artifactId>
  79 + <scope>provided</scope>
  80 + </dependency>
  81 + <dependency>
  82 + <groupId>com.datastax.cassandra</groupId>
  83 + <artifactId>cassandra-driver-extras</artifactId>
  84 + <scope>provided</scope>
  85 + </dependency>
66 </dependencies> 86 </dependencies>
67 </project> 87 </project>
@@ -34,13 +34,15 @@ import org.thingsboard.server.dao.customer.CustomerService; @@ -34,13 +34,15 @@ import org.thingsboard.server.dao.customer.CustomerService;
34 import org.thingsboard.server.dao.dashboard.DashboardService; 34 import org.thingsboard.server.dao.dashboard.DashboardService;
35 import org.thingsboard.server.dao.device.DeviceService; 35 import org.thingsboard.server.dao.device.DeviceService;
36 import org.thingsboard.server.dao.entityview.EntityViewService; 36 import org.thingsboard.server.dao.entityview.EntityViewService;
37 -import org.thingsboard.server.dao.nosql.CassandraBufferedRateExecutor; 37 +import org.thingsboard.server.dao.nosql.CassandraStatementTask;
38 import org.thingsboard.server.dao.relation.RelationService; 38 import org.thingsboard.server.dao.relation.RelationService;
39 import org.thingsboard.server.dao.rule.RuleChainService; 39 import org.thingsboard.server.dao.rule.RuleChainService;
40 import org.thingsboard.server.dao.tenant.TenantService; 40 import org.thingsboard.server.dao.tenant.TenantService;
41 import org.thingsboard.server.dao.timeseries.TimeseriesService; 41 import org.thingsboard.server.dao.timeseries.TimeseriesService;
42 import org.thingsboard.server.dao.user.UserService; 42 import org.thingsboard.server.dao.user.UserService;
43 43
  44 +import com.datastax.driver.core.ResultSetFuture;
  45 +
44 import java.util.Set; 46 import java.util.Set;
45 47
46 /** 48 /**
@@ -128,7 +130,6 @@ public interface TbContext { @@ -128,7 +130,6 @@ public interface TbContext {
128 130
129 CassandraCluster getCassandraCluster(); 131 CassandraCluster getCassandraCluster();
130 132
131 - CassandraBufferedRateExecutor getCassandraBufferedRateExecutor();  
132 - 133 + ResultSetFuture submitCassandraTask(CassandraStatementTask task);
133 134
134 } 135 }
@@ -241,7 +241,7 @@ public class TbSaveToCustomCassandraTableNode implements TbNode { @@ -241,7 +241,7 @@ public class TbSaveToCustomCassandraTableNode implements TbNode {
241 if (statement.getConsistencyLevel() == null) { 241 if (statement.getConsistencyLevel() == null) {
242 statement.setConsistencyLevel(level); 242 statement.setConsistencyLevel(level);
243 } 243 }
244 - return ctx.getCassandraBufferedRateExecutor().submit(new CassandraStatementTask(ctx.getTenantId(), getSession(), statement)); 244 + return ctx.submitCassandraTask(new CassandraStatementTask(ctx.getTenantId(), getSession(), statement));
245 } 245 }
246 246
247 private static String statementToString(Statement statement) { 247 private static String statementToString(Statement statement) {
@@ -2366,7 +2366,7 @@ @@ -2366,7 +2366,7 @@
2366 }, 2366 },
2367 "util": { 2367 "util": {
2368 "version": "0.10.3", 2368 "version": "0.10.3",
2369 - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 2369 + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz",
2370 "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 2370 "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
2371 "dev": true, 2371 "dev": true,
2372 "requires": { 2372 "requires": {
@@ -3960,7 +3960,7 @@ @@ -3960,7 +3960,7 @@
3960 "esprima": { 3960 "esprima": {
3961 "version": "4.0.1", 3961 "version": "4.0.1",
3962 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 3962 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
3963 - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 3963 + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=",
3964 "dev": true 3964 "dev": true
3965 }, 3965 },
3966 "js-yaml": { 3966 "js-yaml": {
@@ -4464,7 +4464,7 @@ @@ -4464,7 +4464,7 @@
4464 "path-type": { 4464 "path-type": {
4465 "version": "3.0.0", 4465 "version": "3.0.0",
4466 "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 4466 "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
4467 - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 4467 + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
4468 "dev": true, 4468 "dev": true,
4469 "requires": { 4469 "requires": {
4470 "pify": "^3.0.0" 4470 "pify": "^3.0.0"
@@ -6096,14 +6096,12 @@ @@ -6096,14 +6096,12 @@
6096 "balanced-match": { 6096 "balanced-match": {
6097 "version": "1.0.0", 6097 "version": "1.0.0",
6098 "bundled": true, 6098 "bundled": true,
6099 - "dev": true,  
6100 - "optional": true 6099 + "dev": true
6101 }, 6100 },
6102 "brace-expansion": { 6101 "brace-expansion": {
6103 "version": "1.1.11", 6102 "version": "1.1.11",
6104 "bundled": true, 6103 "bundled": true,
6105 "dev": true, 6104 "dev": true,
6106 - "optional": true,  
6107 "requires": { 6105 "requires": {
6108 "balanced-match": "^1.0.0", 6106 "balanced-match": "^1.0.0",
6109 "concat-map": "0.0.1" 6107 "concat-map": "0.0.1"
@@ -6118,20 +6116,17 @@ @@ -6118,20 +6116,17 @@
6118 "code-point-at": { 6116 "code-point-at": {
6119 "version": "1.1.0", 6117 "version": "1.1.0",
6120 "bundled": true, 6118 "bundled": true,
6121 - "dev": true,  
6122 - "optional": true 6119 + "dev": true
6123 }, 6120 },
6124 "concat-map": { 6121 "concat-map": {
6125 "version": "0.0.1", 6122 "version": "0.0.1",
6126 "bundled": true, 6123 "bundled": true,
6127 - "dev": true,  
6128 - "optional": true 6124 + "dev": true
6129 }, 6125 },
6130 "console-control-strings": { 6126 "console-control-strings": {
6131 "version": "1.1.0", 6127 "version": "1.1.0",
6132 "bundled": true, 6128 "bundled": true,
6133 - "dev": true,  
6134 - "optional": true 6129 + "dev": true
6135 }, 6130 },
6136 "core-util-is": { 6131 "core-util-is": {
6137 "version": "1.0.2", 6132 "version": "1.0.2",
@@ -6248,8 +6243,7 @@ @@ -6248,8 +6243,7 @@
6248 "inherits": { 6243 "inherits": {
6249 "version": "2.0.3", 6244 "version": "2.0.3",
6250 "bundled": true, 6245 "bundled": true,
6251 - "dev": true,  
6252 - "optional": true 6246 + "dev": true
6253 }, 6247 },
6254 "ini": { 6248 "ini": {
6255 "version": "1.3.5", 6249 "version": "1.3.5",
@@ -6261,7 +6255,6 @@ @@ -6261,7 +6255,6 @@
6261 "version": "1.0.0", 6255 "version": "1.0.0",
6262 "bundled": true, 6256 "bundled": true,
6263 "dev": true, 6257 "dev": true,
6264 - "optional": true,  
6265 "requires": { 6258 "requires": {
6266 "number-is-nan": "^1.0.0" 6259 "number-is-nan": "^1.0.0"
6267 } 6260 }
@@ -6276,7 +6269,6 @@ @@ -6276,7 +6269,6 @@
6276 "version": "3.0.4", 6269 "version": "3.0.4",
6277 "bundled": true, 6270 "bundled": true,
6278 "dev": true, 6271 "dev": true,
6279 - "optional": true,  
6280 "requires": { 6272 "requires": {
6281 "brace-expansion": "^1.1.7" 6273 "brace-expansion": "^1.1.7"
6282 } 6274 }
@@ -6284,14 +6276,12 @@ @@ -6284,14 +6276,12 @@
6284 "minimist": { 6276 "minimist": {
6285 "version": "0.0.8", 6277 "version": "0.0.8",
6286 "bundled": true, 6278 "bundled": true,
6287 - "dev": true,  
6288 - "optional": true 6279 + "dev": true
6289 }, 6280 },
6290 "minipass": { 6281 "minipass": {
6291 "version": "2.3.5", 6282 "version": "2.3.5",
6292 "bundled": true, 6283 "bundled": true,
6293 "dev": true, 6284 "dev": true,
6294 - "optional": true,  
6295 "requires": { 6285 "requires": {
6296 "safe-buffer": "^5.1.2", 6286 "safe-buffer": "^5.1.2",
6297 "yallist": "^3.0.0" 6287 "yallist": "^3.0.0"
@@ -6310,7 +6300,6 @@ @@ -6310,7 +6300,6 @@
6310 "version": "0.5.1", 6300 "version": "0.5.1",
6311 "bundled": true, 6301 "bundled": true,
6312 "dev": true, 6302 "dev": true,
6313 - "optional": true,  
6314 "requires": { 6303 "requires": {
6315 "minimist": "0.0.8" 6304 "minimist": "0.0.8"
6316 } 6305 }
@@ -6391,8 +6380,7 @@ @@ -6391,8 +6380,7 @@
6391 "number-is-nan": { 6380 "number-is-nan": {
6392 "version": "1.0.1", 6381 "version": "1.0.1",
6393 "bundled": true, 6382 "bundled": true,
6394 - "dev": true,  
6395 - "optional": true 6383 + "dev": true
6396 }, 6384 },
6397 "object-assign": { 6385 "object-assign": {
6398 "version": "4.1.1", 6386 "version": "4.1.1",
@@ -6404,7 +6392,6 @@ @@ -6404,7 +6392,6 @@
6404 "version": "1.4.0", 6392 "version": "1.4.0",
6405 "bundled": true, 6393 "bundled": true,
6406 "dev": true, 6394 "dev": true,
6407 - "optional": true,  
6408 "requires": { 6395 "requires": {
6409 "wrappy": "1" 6396 "wrappy": "1"
6410 } 6397 }
@@ -6526,7 +6513,6 @@ @@ -6526,7 +6513,6 @@
6526 "version": "1.0.2", 6513 "version": "1.0.2",
6527 "bundled": true, 6514 "bundled": true,
6528 "dev": true, 6515 "dev": true,
6529 - "optional": true,  
6530 "requires": { 6516 "requires": {
6531 "code-point-at": "^1.0.0", 6517 "code-point-at": "^1.0.0",
6532 "is-fullwidth-code-point": "^1.0.0", 6518 "is-fullwidth-code-point": "^1.0.0",
@@ -9354,7 +9340,7 @@ @@ -9354,7 +9340,7 @@
9354 "is-extendable": { 9340 "is-extendable": {
9355 "version": "1.0.1", 9341 "version": "1.0.1",
9356 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 9342 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
9357 - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 9343 + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
9358 "dev": true, 9344 "dev": true,
9359 "requires": { 9345 "requires": {
9360 "is-plain-object": "^2.0.4" 9346 "is-plain-object": "^2.0.4"
@@ -11063,7 +11049,7 @@ @@ -11063,7 +11049,7 @@
11063 "ansi-styles": { 11049 "ansi-styles": {
11064 "version": "3.2.1", 11050 "version": "3.2.1",
11065 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 11051 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11066 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 11052 + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
11067 "dev": true, 11053 "dev": true,
11068 "requires": { 11054 "requires": {
11069 "color-convert": "^1.9.0" 11055 "color-convert": "^1.9.0"
@@ -11094,13 +11080,13 @@ @@ -11094,13 +11080,13 @@
11094 "source-map": { 11080 "source-map": {
11095 "version": "0.6.1", 11081 "version": "0.6.1",
11096 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 11082 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
11097 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 11083 + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
11098 "dev": true 11084 "dev": true
11099 }, 11085 },
11100 "supports-color": { 11086 "supports-color": {
11101 "version": "5.5.0", 11087 "version": "5.5.0",
11102 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 11088 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
11103 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 11089 + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
11104 "dev": true, 11090 "dev": true,
11105 "requires": { 11091 "requires": {
11106 "has-flag": "^3.0.0" 11092 "has-flag": "^3.0.0"
@@ -11126,7 +11112,7 @@ @@ -11126,7 +11112,7 @@
11126 "ansi-styles": { 11112 "ansi-styles": {
11127 "version": "3.2.1", 11113 "version": "3.2.1",
11128 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 11114 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11129 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 11115 + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
11130 "dev": true, 11116 "dev": true,
11131 "requires": { 11117 "requires": {
11132 "color-convert": "^1.9.0" 11118 "color-convert": "^1.9.0"
@@ -11157,13 +11143,13 @@ @@ -11157,13 +11143,13 @@
11157 "source-map": { 11143 "source-map": {
11158 "version": "0.6.1", 11144 "version": "0.6.1",
11159 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 11145 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
11160 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 11146 + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
11161 "dev": true 11147 "dev": true
11162 }, 11148 },
11163 "supports-color": { 11149 "supports-color": {
11164 "version": "5.5.0", 11150 "version": "5.5.0",
11165 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 11151 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
11166 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 11152 + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
11167 "dev": true, 11153 "dev": true,
11168 "requires": { 11154 "requires": {
11169 "has-flag": "^3.0.0" 11155 "has-flag": "^3.0.0"
@@ -11184,7 +11170,7 @@ @@ -11184,7 +11170,7 @@
11184 "ansi-styles": { 11170 "ansi-styles": {
11185 "version": "3.2.1", 11171 "version": "3.2.1",
11186 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 11172 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11187 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 11173 + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
11188 "dev": true, 11174 "dev": true,
11189 "requires": { 11175 "requires": {
11190 "color-convert": "^1.9.0" 11176 "color-convert": "^1.9.0"
@@ -11215,13 +11201,13 @@ @@ -11215,13 +11201,13 @@
11215 "source-map": { 11201 "source-map": {
11216 "version": "0.6.1", 11202 "version": "0.6.1",
11217 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 11203 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
11218 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 11204 + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
11219 "dev": true 11205 "dev": true
11220 }, 11206 },
11221 "supports-color": { 11207 "supports-color": {
11222 "version": "5.5.0", 11208 "version": "5.5.0",
11223 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 11209 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
11224 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 11210 + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
11225 "dev": true, 11211 "dev": true,
11226 "requires": { 11212 "requires": {
11227 "has-flag": "^3.0.0" 11213 "has-flag": "^3.0.0"
@@ -11241,7 +11227,7 @@ @@ -11241,7 +11227,7 @@
11241 "ansi-styles": { 11227 "ansi-styles": {
11242 "version": "3.2.1", 11228 "version": "3.2.1",
11243 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 11229 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11244 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 11230 + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
11245 "dev": true, 11231 "dev": true,
11246 "requires": { 11232 "requires": {
11247 "color-convert": "^1.9.0" 11233 "color-convert": "^1.9.0"
@@ -11272,13 +11258,13 @@ @@ -11272,13 +11258,13 @@
11272 "source-map": { 11258 "source-map": {
11273 "version": "0.6.1", 11259 "version": "0.6.1",
11274 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 11260 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
11275 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 11261 + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
11276 "dev": true 11262 "dev": true
11277 }, 11263 },
11278 "supports-color": { 11264 "supports-color": {
11279 "version": "5.5.0", 11265 "version": "5.5.0",
11280 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 11266 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
11281 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 11267 + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
11282 "dev": true, 11268 "dev": true,
11283 "requires": { 11269 "requires": {
11284 "has-flag": "^3.0.0" 11270 "has-flag": "^3.0.0"
@@ -13628,7 +13614,7 @@ @@ -13628,7 +13614,7 @@
13628 "ansi-styles": { 13614 "ansi-styles": {
13629 "version": "3.2.1", 13615 "version": "3.2.1",
13630 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 13616 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
13631 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 13617 + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
13632 "dev": true, 13618 "dev": true,
13633 "requires": { 13619 "requires": {
13634 "color-convert": "^1.9.0" 13620 "color-convert": "^1.9.0"
@@ -13954,7 +13940,7 @@ @@ -13954,7 +13940,7 @@
13954 "path-type": { 13940 "path-type": {
13955 "version": "3.0.0", 13941 "version": "3.0.0",
13956 "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 13942 "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
13957 - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 13943 + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
13958 "dev": true, 13944 "dev": true,
13959 "requires": { 13945 "requires": {
13960 "pify": "^3.0.0" 13946 "pify": "^3.0.0"
@@ -14028,7 +14014,7 @@ @@ -14028,7 +14014,7 @@
14028 "slice-ansi": { 14014 "slice-ansi": {
14029 "version": "1.0.0", 14015 "version": "1.0.0",
14030 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 14016 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
14031 - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 14017 + "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=",
14032 "dev": true, 14018 "dev": true,
14033 "requires": { 14019 "requires": {
14034 "is-fullwidth-code-point": "^2.0.0" 14020 "is-fullwidth-code-point": "^2.0.0"
@@ -14037,7 +14023,7 @@ @@ -14037,7 +14023,7 @@
14037 "source-map": { 14023 "source-map": {
14038 "version": "0.6.1", 14024 "version": "0.6.1",
14039 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 14025 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
14040 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 14026 + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
14041 "dev": true 14027 "dev": true
14042 }, 14028 },
14043 "strip-indent": { 14029 "strip-indent": {
@@ -14049,7 +14035,7 @@ @@ -14049,7 +14035,7 @@
14049 "supports-color": { 14035 "supports-color": {
14050 "version": "5.5.0", 14036 "version": "5.5.0",
14051 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 14037 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
14052 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 14038 + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
14053 "dev": true, 14039 "dev": true,
14054 "requires": { 14040 "requires": {
14055 "has-flag": "^3.0.0" 14041 "has-flag": "^3.0.0"
@@ -14442,7 +14428,7 @@ @@ -14442,7 +14428,7 @@
14442 "ansi-styles": { 14428 "ansi-styles": {
14443 "version": "3.2.1", 14429 "version": "3.2.1",
14444 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 14430 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
14445 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 14431 + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
14446 "dev": true, 14432 "dev": true,
14447 "requires": { 14433 "requires": {
14448 "color-convert": "^1.9.0" 14434 "color-convert": "^1.9.0"
@@ -14473,13 +14459,13 @@ @@ -14473,13 +14459,13 @@
14473 "source-map": { 14459 "source-map": {
14474 "version": "0.6.1", 14460 "version": "0.6.1",
14475 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 14461 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
14476 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 14462 + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
14477 "dev": true 14463 "dev": true
14478 }, 14464 },
14479 "supports-color": { 14465 "supports-color": {
14480 "version": "5.5.0", 14466 "version": "5.5.0",
14481 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 14467 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
14482 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 14468 + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
14483 "dev": true, 14469 "dev": true,
14484 "requires": { 14470 "requires": {
14485 "has-flag": "^3.0.0" 14471 "has-flag": "^3.0.0"
@@ -14965,7 +14951,7 @@ @@ -14965,7 +14951,7 @@
14965 "source-map": { 14951 "source-map": {
14966 "version": "0.6.1", 14952 "version": "0.6.1",
14967 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 14953 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
14968 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 14954 + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
14969 "dev": true 14955 "dev": true
14970 } 14956 }
14971 } 14957 }