homey-api 1.10.17 → 3.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/assets/types/homey-api.d.ts +47 -588
  3. package/assets/types/homey-api.private.d.ts +47 -648
  4. package/index.js +1 -1
  5. package/lib/APIErrorNotFound.js +20 -0
  6. package/lib/AthomCloudAPI/Homey.js +3 -1
  7. package/lib/EventEmitter.js +0 -6
  8. package/lib/HomeyAPI/HomeyAPI.js +49 -5
  9. package/lib/HomeyAPI/HomeyAPIErrorNotFound.js +21 -0
  10. package/lib/HomeyAPI/HomeyAPIV2/Manager.js +2 -575
  11. package/lib/HomeyAPI/HomeyAPIV2/ManagerDevices/Capability.js +20 -0
  12. package/lib/HomeyAPI/HomeyAPIV2/ManagerDevices/Device.js +18 -0
  13. package/lib/HomeyAPI/HomeyAPIV2/ManagerDevices.js +20 -3
  14. package/lib/HomeyAPI/HomeyAPIV2/ManagerDrivers/Driver.js +25 -0
  15. package/lib/HomeyAPI/HomeyAPIV2/ManagerDrivers.js +29 -0
  16. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlow/AdvancedFlow.js +17 -0
  17. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlow/Flow.js +34 -0
  18. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlow/FlowCardAction.js +25 -0
  19. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlow/FlowCardCondition.js +25 -0
  20. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlow/FlowCardTrigger.js +25 -0
  21. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlow.js +104 -0
  22. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlowToken/FlowToken.js +24 -0
  23. package/lib/HomeyAPI/HomeyAPIV2/ManagerFlowToken.js +29 -0
  24. package/lib/HomeyAPI/HomeyAPIV2/ManagerInsights/Log.js +23 -0
  25. package/lib/HomeyAPI/HomeyAPIV2/ManagerInsights.js +29 -0
  26. package/lib/HomeyAPI/HomeyAPIV2.js +12 -716
  27. package/lib/HomeyAPI/HomeyAPIV3/Item.js +173 -2
  28. package/lib/HomeyAPI/HomeyAPIV3/Manager.js +531 -3
  29. package/lib/HomeyAPI/{HomeyAPIV2 → HomeyAPIV3/ManagerApps}/App.js +1 -1
  30. package/lib/HomeyAPI/{HomeyAPIV2 → HomeyAPIV3}/ManagerApps.js +4 -3
  31. package/lib/HomeyAPI/HomeyAPIV3/ManagerDevices/Capability.js +9 -0
  32. package/lib/HomeyAPI/{HomeyAPIV2 → HomeyAPIV3/ManagerDevices}/Device.js +78 -3
  33. package/lib/HomeyAPI/{HomeyAPIV2 → HomeyAPIV3/ManagerDevices}/DeviceCapability.js +3 -3
  34. package/lib/HomeyAPI/HomeyAPIV3/ManagerDevices.js +17 -0
  35. package/lib/HomeyAPI/HomeyAPIV3/ManagerDrivers/Driver.js +9 -0
  36. package/lib/HomeyAPI/HomeyAPIV3/ManagerDrivers.js +15 -0
  37. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlow/AdvancedFlow.js +9 -0
  38. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlow/Flow.js +9 -0
  39. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlow/FlowCard.js +9 -0
  40. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlow/FlowCardAction.js +9 -0
  41. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlow/FlowCardCondition.js +9 -0
  42. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlow/FlowCardTrigger.js +9 -0
  43. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlow.js +12 -23
  44. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlowToken/FlowToken.js +16 -0
  45. package/lib/HomeyAPI/HomeyAPIV3/ManagerFlowToken.js +15 -0
  46. package/lib/HomeyAPI/HomeyAPIV3/ManagerInsights/Log.js +9 -0
  47. package/lib/HomeyAPI/HomeyAPIV3/ManagerInsights.js +15 -0
  48. package/lib/HomeyAPI/HomeyAPIV3.js +728 -4
  49. package/lib/HomeyAPI/HomeyAPIV3Cloud.js +1 -1
  50. package/lib/HomeyAPI/HomeyAPIV3Local.js +1 -1
  51. package/package.json +1 -1
  52. package/lib/HomeyAPI/HomeyAPIApp.js +0 -127
  53. package/lib/HomeyAPI/HomeyAPIV2/Item.js +0 -177
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ const ManagerDriversV3 = require('../HomeyAPIV3/ManagerDrivers');
4
+ const Driver = require('./ManagerDrivers/Driver');
5
+
6
+ class ManagerDrivers extends ManagerDriversV3 {
7
+
8
+ static CRUD = {
9
+ ...super.CRUD,
10
+ Driver,
11
+ }
12
+
13
+ async getDriver({
14
+ $cache = true,
15
+ id,
16
+ }) {
17
+ if ($cache === true && this.__cache['driver'][id]) {
18
+ return this.__cache['driver'][id];
19
+ }
20
+
21
+ return this.__super__getDriver({
22
+ id: id.split(':').reverse()[0],
23
+ uri: id.split(':', 3).join(':'),
24
+ });
25
+ }
26
+
27
+ }
28
+
29
+ module.exports = ManagerDrivers;
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ const AdvancedFlowV3 = require('../../HomeyAPIV3/ManagerFlow/Flow');
4
+
5
+ class AdvancedFlow extends AdvancedFlowV3 {
6
+
7
+ static transform(item) {
8
+ for (const card of Object.values(item.cards)) {
9
+ card.id = `${card.ownerUri}:${card.id}`;
10
+ }
11
+
12
+ return item;
13
+ }
14
+
15
+ }
16
+
17
+ module.exports = AdvancedFlow;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ const FlowV3 = require('../../HomeyAPIV3/ManagerFlow/Flow');
4
+
5
+ class Flow extends FlowV3 {
6
+
7
+ static transform(item) {
8
+ item = super.transform(item);
9
+
10
+ if (item.trigger) {
11
+ item.trigger.id = `${item.trigger.uri}:${item.trigger.id}`;
12
+ delete item.trigger.uri;
13
+ }
14
+
15
+ if (Array.isArray(item.conditions)) {
16
+ item.conditions.forEach(card => {
17
+ card.id = `${card.uri}:${card.id}`;
18
+ delete card.uri;
19
+ });
20
+ }
21
+
22
+ if (Array.isArray(item.actions)) {
23
+ item.actions.forEach(card => {
24
+ card.id = `${card.uri}:${card.id}`;
25
+ delete card.uri;
26
+ });
27
+ }
28
+
29
+ return item;
30
+ }
31
+
32
+ }
33
+
34
+ module.exports = Flow;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ const FlowCardActionV3 = require('../../HomeyAPIV3/ManagerFlow/FlowCardAction');
4
+
5
+ class FlowCardAction extends FlowCardActionV3 {
6
+
7
+ static transform(item) {
8
+ item = super.transform(item);
9
+
10
+ item.id = `${item.uri}:${item.id}`;
11
+ item.ownerUri = item.uri;
12
+ item.ownerId = item.uriObj.id;
13
+ item.ownerName = item.uriObj.name;
14
+ item.color = item.uriObj.color;
15
+ item.iconObj = item.uriObj.iconObj;
16
+
17
+ delete item.uri;
18
+ delete item.uriObj;
19
+
20
+ return item;
21
+ }
22
+
23
+ }
24
+
25
+ module.exports = FlowCardAction;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ const FlowCardConditionV3 = require('../../HomeyAPIV3/ManagerFlow/FlowCardCondition');
4
+
5
+ class FlowCardCondition extends FlowCardConditionV3 {
6
+
7
+ static transform(item) {
8
+ item = super.transform(item);
9
+
10
+ item.id = `${item.uri}:${item.id}`;
11
+ item.ownerUri = item.uri;
12
+ item.ownerId = item.uriObj.id;
13
+ item.ownerName = item.uriObj.name;
14
+ item.color = item.uriObj.color;
15
+ item.iconObj = item.uriObj.iconObj;
16
+
17
+ delete item.uri;
18
+ delete item.uriObj;
19
+
20
+ return item;
21
+ }
22
+
23
+ }
24
+
25
+ module.exports = FlowCardCondition;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ const FlowCardTriggerV3 = require('../../HomeyAPIV3/ManagerFlow/FlowCardTrigger');
4
+
5
+ class FlowCardTrigger extends FlowCardTriggerV3 {
6
+
7
+ static transform(item) {
8
+ item = super.transform(item);
9
+
10
+ item.id = `${item.uri}:${item.id}`;
11
+ item.ownerUri = item.uri;
12
+ item.ownerId = item.uriObj.id;
13
+ item.ownerName = item.uriObj.name;
14
+ item.color = item.uriObj.color;
15
+ item.iconObj = item.uriObj.iconObj;
16
+
17
+ delete item.uri;
18
+ delete item.uriObj;
19
+
20
+ return item;
21
+ }
22
+
23
+ }
24
+
25
+ module.exports = FlowCardTrigger;
@@ -0,0 +1,104 @@
1
+ 'use strict';
2
+
3
+ const Manager = require('./Manager');
4
+ const Flow = require('./ManagerFlow/Flow');
5
+ const AdvancedFlow = require('./ManagerFlow/AdvancedFlow');
6
+ const FlowCardTrigger = require('./ManagerFlow/FlowCardTrigger');
7
+ const FlowCardCondition = require('./ManagerFlow/FlowCardCondition');
8
+ const FlowCardAction = require('./ManagerFlow/FlowCardAction');
9
+
10
+ class ManagerFlow extends Manager {
11
+
12
+ static CRUD = {
13
+ ...super.CRUD,
14
+ Flow,
15
+ AdvancedFlow,
16
+ FlowCardTrigger,
17
+ FlowCardCondition,
18
+ FlowCardAction,
19
+ }
20
+
21
+ // TODO: Transform card IDs
22
+ // async createFlow() {
23
+
24
+ // }
25
+
26
+ // async updateFlow() {
27
+
28
+ // }
29
+
30
+ // async createAdvancedFlow() {
31
+
32
+ // }
33
+
34
+ // async updateAdvancedFlow() {
35
+
36
+ // }
37
+
38
+ async getFlowCardTrigger({
39
+ $cache = true,
40
+ id,
41
+ }) {
42
+ if ($cache === true && this.__cache['flowcardtrigger'][id]) {
43
+ return this.__cache['flowcardtrigger'][id];
44
+ }
45
+
46
+ return this.__super__getFlowCardCondition({
47
+ id: id.split(':').reverse()[0],
48
+ uri: id.split(':', 3).join(':'),
49
+ });
50
+ }
51
+
52
+ async getFlowCardCondition({
53
+ $cache = true,
54
+ id,
55
+ }) {
56
+ if ($cache === true && this.__cache['flowcardcondition'][id]) {
57
+ return this.__cache['flowcardcondition'][id];
58
+ }
59
+
60
+ return this.__super__getFlowCardCondition({
61
+ id: id.split(':').reverse()[0],
62
+ uri: id.split(':', 3).join(':'),
63
+ });
64
+ }
65
+
66
+ async runFlowCardCondition({
67
+ id,
68
+ ...props
69
+ }) {
70
+ return this.__super__runFlowCardCondition({
71
+ id: id.split(':').reverse()[0],
72
+ uri: id.split(':', 3).join(':'),
73
+ ...props,
74
+ });
75
+ }
76
+
77
+ async getFlowCardAction({
78
+ $cache = true,
79
+ id,
80
+ }) {
81
+ if ($cache === true && this.__cache['flowcardaction'][id]) {
82
+ return this.__cache['flowcardaction'][id];
83
+ }
84
+
85
+ return this.__super__getFlowCardAction({
86
+ id: id.split(':').reverse()[0],
87
+ uri: id.split(':', 3).join(':'),
88
+ });
89
+ }
90
+
91
+ async runFlowCardAction({
92
+ id,
93
+ ...props
94
+ }) {
95
+ return this.__super__runFlowCardAction({
96
+ id: id.split(':').reverse()[0],
97
+ uri: id.split(':', 3).join(':'),
98
+ ...props,
99
+ });
100
+ }
101
+
102
+ }
103
+
104
+ module.exports = ManagerFlow;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ const FlowTokenV3 = require('../../HomeyAPIV3/ManagerFlowToken/FlowToken');
4
+
5
+ class FlowToken extends FlowTokenV3 {
6
+
7
+ static transform(item) {
8
+ // TODO: Remove FlowTokenV3.transform and uncomment this after front-end does not use FlowToken.uri|id|uriObj anymore!
9
+ // item = super.transform(item);
10
+
11
+ item.ownerUri = item.uri;
12
+ item.ownerId = item.id;
13
+ item.ownerName = item.uriObj.name;
14
+ item.id = `${item.ownerUri}:${item.ownerId}`;
15
+
16
+ delete item.uri;
17
+ delete item.uriObj;
18
+
19
+ return item;
20
+ }
21
+
22
+ }
23
+
24
+ module.exports = FlowToken;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ const ManagerFlowTokenV3 = require('../HomeyAPIV3/ManagerFlowToken');
4
+ const FlowToken = require('./ManagerFlowToken/FlowToken');
5
+
6
+ class ManagerFlowToken extends ManagerFlowTokenV3 {
7
+
8
+ static CRUD = {
9
+ ...super.CRUD,
10
+ FlowToken,
11
+ };
12
+
13
+ async getFlowToken({
14
+ $cache = true,
15
+ id,
16
+ }) {
17
+ if ($cache === true && this.__cache['flowtoken'][id]) {
18
+ return this.__cache['flowtoken'][id];
19
+ }
20
+
21
+ return this.__super__getFlowToken({
22
+ id: id.split(':').reverse()[0],
23
+ uri: id.split(':', 3).join(':'),
24
+ });
25
+ }
26
+
27
+ }
28
+
29
+ module.exports = ManagerFlowToken;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ const LogV3 = require('../../HomeyAPIV3/ManagerInsights/Log');
4
+
5
+ class Log extends LogV3 {
6
+
7
+ static transform(item) {
8
+ item = super.transform(item);
9
+
10
+ item.ownerId = item.id;
11
+ item.ownerUri = item.uri;
12
+ item.ownerName = item.uriObj.name;
13
+ item.id = `${item.uri}:${item.id}`;
14
+
15
+ delete item.uri;
16
+ delete item.uriObj;
17
+
18
+ return item;
19
+ }
20
+
21
+ }
22
+
23
+ module.exports = Log;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ const ManagerInsightsV3 = require('../HomeyAPIV3/ManagerInsights');
4
+ const Log = require('./ManagerInsights/Log');
5
+
6
+ class ManagerInsights extends ManagerInsightsV3 {
7
+
8
+ static CRUD = {
9
+ ...super.CRUD,
10
+ Log,
11
+ }
12
+
13
+ async getLog({
14
+ $cache = true,
15
+ id,
16
+ }) {
17
+ if ($cache === true && this.__cache['log'][id]) {
18
+ return this.__cache['log'][id];
19
+ }
20
+
21
+ return this.__super__getLog({
22
+ id: id.split(':').reverse()[0],
23
+ uri: id.split(':', 3).join(':'),
24
+ });
25
+ }
26
+
27
+ }
28
+
29
+ module.exports = ManagerInsights;