hap-nodejs 0.12.3-beta.2 → 0.12.3-beta.21

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 (175) hide show
  1. package/README.md +1 -0
  2. package/dist/accessories/AirConditioner_accessory.js +24 -24
  3. package/dist/accessories/AirConditioner_accessory.js.map +1 -1
  4. package/dist/accessories/AppleTVRemote_accessory.js +23 -23
  5. package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
  6. package/dist/accessories/Camera_accessory.js +292 -373
  7. package/dist/accessories/Camera_accessory.js.map +1 -1
  8. package/dist/accessories/Fan_accessory.js +15 -21
  9. package/dist/accessories/Fan_accessory.js.map +1 -1
  10. package/dist/accessories/GarageDoorOpener_accessory.js +12 -12
  11. package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -1
  12. package/dist/accessories/Light-AdaptiveLighting_accessory.js +31 -21
  13. package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -1
  14. package/dist/accessories/Light_accessory.js +45 -48
  15. package/dist/accessories/Light_accessory.js.map +1 -1
  16. package/dist/accessories/Lock_accessory.js +11 -11
  17. package/dist/accessories/Lock_accessory.js.map +1 -1
  18. package/dist/accessories/MotionSensor_accessory.js +8 -8
  19. package/dist/accessories/MotionSensor_accessory.js.map +1 -1
  20. package/dist/accessories/Outlet_accessory.js +10 -10
  21. package/dist/accessories/Outlet_accessory.js.map +1 -1
  22. package/dist/accessories/SmartSpeaker_accessory.js +11 -11
  23. package/dist/accessories/SmartSpeaker_accessory.js.map +1 -1
  24. package/dist/accessories/Sprinkler_accessory.js +19 -19
  25. package/dist/accessories/Sprinkler_accessory.js.map +1 -1
  26. package/dist/accessories/TV_accessory.js +17 -17
  27. package/dist/accessories/TV_accessory.js.map +1 -1
  28. package/dist/accessories/TemperatureSensor_accessory.js +6 -6
  29. package/dist/accessories/TemperatureSensor_accessory.js.map +1 -1
  30. package/dist/accessories/Wi-FiRouter_accessory.js +3 -3
  31. package/dist/accessories/Wi-FiRouter_accessory.js.map +1 -1
  32. package/dist/accessories/Wi-FiSatellite_accessory.js +4 -4
  33. package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -1
  34. package/dist/accessories/gstreamer-audioProducer.js +36 -47
  35. package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
  36. package/dist/accessories/types.js +2 -2
  37. package/dist/accessories/types.js.map +1 -1
  38. package/dist/index.d.ts +0 -14
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +5 -28
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/Accessory.d.ts +1 -58
  43. package/dist/lib/Accessory.d.ts.map +1 -1
  44. package/dist/lib/Accessory.js +747 -1149
  45. package/dist/lib/Accessory.js.map +1 -1
  46. package/dist/lib/Advertiser.d.ts +1 -2
  47. package/dist/lib/Advertiser.d.ts.map +1 -1
  48. package/dist/lib/Advertiser.js +392 -524
  49. package/dist/lib/Advertiser.js.map +1 -1
  50. package/dist/lib/Bridge.js +6 -10
  51. package/dist/lib/Bridge.js.map +1 -1
  52. package/dist/lib/Characteristic.d.ts +2 -133
  53. package/dist/lib/Characteristic.d.ts.map +1 -1
  54. package/dist/lib/Characteristic.js +1467 -669
  55. package/dist/lib/Characteristic.js.map +1 -1
  56. package/dist/lib/HAPServer.d.ts +0 -10
  57. package/dist/lib/HAPServer.d.ts.map +1 -1
  58. package/dist/lib/HAPServer.js +216 -280
  59. package/dist/lib/HAPServer.js.map +1 -1
  60. package/dist/lib/Service.d.ts +1 -51
  61. package/dist/lib/Service.d.ts.map +1 -1
  62. package/dist/lib/Service.js +474 -322
  63. package/dist/lib/Service.js.map +1 -1
  64. package/dist/lib/camera/RTPProxy.js +112 -104
  65. package/dist/lib/camera/RTPProxy.js.map +1 -1
  66. package/dist/lib/camera/RTPStreamManagement.d.ts +0 -65
  67. package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
  68. package/dist/lib/camera/RTPStreamManagement.js +255 -278
  69. package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
  70. package/dist/lib/camera/RecordingManagement.js +318 -381
  71. package/dist/lib/camera/RecordingManagement.js.map +1 -1
  72. package/dist/lib/camera/index.d.ts +0 -1
  73. package/dist/lib/camera/index.d.ts.map +1 -1
  74. package/dist/lib/camera/index.js +1 -2
  75. package/dist/lib/camera/index.js.map +1 -1
  76. package/dist/lib/controller/AdaptiveLightingController.d.ts +19 -3
  77. package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
  78. package/dist/lib/controller/AdaptiveLightingController.js +217 -218
  79. package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
  80. package/dist/lib/controller/CameraController.d.ts +0 -4
  81. package/dist/lib/controller/CameraController.d.ts.map +1 -1
  82. package/dist/lib/controller/CameraController.js +189 -256
  83. package/dist/lib/controller/CameraController.js.map +1 -1
  84. package/dist/lib/controller/DoorbellController.js +38 -39
  85. package/dist/lib/controller/DoorbellController.js.map +1 -1
  86. package/dist/lib/controller/RemoteController.d.ts +0 -14
  87. package/dist/lib/controller/RemoteController.d.ts.map +1 -1
  88. package/dist/lib/controller/RemoteController.js +340 -415
  89. package/dist/lib/controller/RemoteController.js.map +1 -1
  90. package/dist/lib/controller/index.js +1 -1
  91. package/dist/lib/datastream/DataStreamManagement.js +56 -57
  92. package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
  93. package/dist/lib/datastream/DataStreamParser.js +259 -304
  94. package/dist/lib/datastream/DataStreamParser.js.map +1 -1
  95. package/dist/lib/datastream/DataStreamServer.d.ts +0 -5
  96. package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
  97. package/dist/lib/datastream/DataStreamServer.js +252 -269
  98. package/dist/lib/datastream/DataStreamServer.js.map +1 -1
  99. package/dist/lib/datastream/index.js +1 -1
  100. package/dist/lib/definitions/CharacteristicDefinitions.d.ts +1 -106
  101. package/dist/lib/definitions/CharacteristicDefinitions.d.ts.map +1 -1
  102. package/dist/lib/definitions/CharacteristicDefinitions.js +2000 -2995
  103. package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
  104. package/dist/lib/definitions/ServiceDefinitions.d.ts +0 -32
  105. package/dist/lib/definitions/ServiceDefinitions.d.ts.map +1 -1
  106. package/dist/lib/definitions/ServiceDefinitions.js +820 -1147
  107. package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
  108. package/dist/lib/definitions/generate-definitions.js +383 -679
  109. package/dist/lib/definitions/generate-definitions.js.map +1 -1
  110. package/dist/lib/definitions/generator-configuration.js +29 -29
  111. package/dist/lib/definitions/generator-configuration.js.map +1 -1
  112. package/dist/lib/definitions/index.js +1 -1
  113. package/dist/lib/model/AccessoryInfo.js +101 -136
  114. package/dist/lib/model/AccessoryInfo.js.map +1 -1
  115. package/dist/lib/model/ControllerStorage.js +86 -89
  116. package/dist/lib/model/ControllerStorage.js.map +1 -1
  117. package/dist/lib/model/HAPStorage.js +15 -16
  118. package/dist/lib/model/HAPStorage.js.map +1 -1
  119. package/dist/lib/model/IdentifierCache.js +49 -49
  120. package/dist/lib/model/IdentifierCache.js.map +1 -1
  121. package/dist/lib/tv/AccessControlManagement.js +40 -44
  122. package/dist/lib/tv/AccessControlManagement.js.map +1 -1
  123. package/dist/lib/util/checkName.d.ts +2 -1
  124. package/dist/lib/util/checkName.d.ts.map +1 -1
  125. package/dist/lib/util/checkName.js +7 -11
  126. package/dist/lib/util/checkName.js.map +1 -1
  127. package/dist/lib/util/clone.js +5 -27
  128. package/dist/lib/util/clone.js.map +1 -1
  129. package/dist/lib/util/color-utils.js +8 -12
  130. package/dist/lib/util/color-utils.js.map +1 -1
  131. package/dist/lib/util/eventedhttp.d.ts.map +1 -1
  132. package/dist/lib/util/eventedhttp.js +301 -409
  133. package/dist/lib/util/eventedhttp.js.map +1 -1
  134. package/dist/lib/util/hapCrypto.js +31 -32
  135. package/dist/lib/util/hapCrypto.js.map +1 -1
  136. package/dist/lib/util/hapStatusError.js +9 -12
  137. package/dist/lib/util/hapStatusError.js.map +1 -1
  138. package/dist/lib/util/net-utils.js +32 -53
  139. package/dist/lib/util/net-utils.js.map +1 -1
  140. package/dist/lib/util/once.js +3 -8
  141. package/dist/lib/util/once.js.map +1 -1
  142. package/dist/lib/util/promise-utils.js +8 -13
  143. package/dist/lib/util/promise-utils.js.map +1 -1
  144. package/dist/lib/util/request-util.js +2 -3
  145. package/dist/lib/util/request-util.js.map +1 -1
  146. package/dist/lib/util/time.js +5 -5
  147. package/dist/lib/util/time.js.map +1 -1
  148. package/dist/lib/util/tlv.d.ts +0 -27
  149. package/dist/lib/util/tlv.d.ts.map +1 -1
  150. package/dist/lib/util/tlv.js +71 -113
  151. package/dist/lib/util/tlv.js.map +1 -1
  152. package/dist/lib/util/uuid.d.ts +0 -9
  153. package/dist/lib/util/uuid.d.ts.map +1 -1
  154. package/dist/lib/util/uuid.js +15 -33
  155. package/dist/lib/util/uuid.js.map +1 -1
  156. package/dist/types.d.ts +0 -35
  157. package/dist/types.d.ts.map +1 -1
  158. package/dist/types.js.map +1 -1
  159. package/package.json +10 -10
  160. package/dist/BridgedCore.d.ts +0 -2
  161. package/dist/BridgedCore.d.ts.map +0 -1
  162. package/dist/BridgedCore.js +0 -43
  163. package/dist/BridgedCore.js.map +0 -1
  164. package/dist/Core.d.ts +0 -2
  165. package/dist/Core.d.ts.map +0 -1
  166. package/dist/Core.js +0 -52
  167. package/dist/Core.js.map +0 -1
  168. package/dist/lib/AccessoryLoader.d.ts +0 -28
  169. package/dist/lib/AccessoryLoader.d.ts.map +0 -1
  170. package/dist/lib/AccessoryLoader.js +0 -166
  171. package/dist/lib/AccessoryLoader.js.map +0 -1
  172. package/dist/lib/camera/Camera.d.ts +0 -43
  173. package/dist/lib/camera/Camera.d.ts.map +0 -1
  174. package/dist/lib/camera/Camera.js +0 -36
  175. package/dist/lib/camera/Camera.js.map +0 -1
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AccessoryInfo = exports.PermissionTypes = void 0;
4
- var tslib_1 = require("tslib");
5
- var assert_1 = tslib_1.__importDefault(require("assert"));
6
- var crypto_1 = tslib_1.__importDefault(require("crypto"));
7
- var tweetnacl_1 = tslib_1.__importDefault(require("tweetnacl"));
8
- var util_1 = tslib_1.__importDefault(require("util"));
9
- var eventedhttp_1 = require("../util/eventedhttp");
10
- var HAPStorage_1 = require("./HAPStorage");
4
+ const tslib_1 = require("tslib");
5
+ const assert_1 = tslib_1.__importDefault(require("assert"));
6
+ const crypto_1 = tslib_1.__importDefault(require("crypto"));
7
+ const tweetnacl_1 = tslib_1.__importDefault(require("tweetnacl"));
8
+ const util_1 = tslib_1.__importDefault(require("util"));
9
+ const eventedhttp_1 = require("../util/eventedhttp");
10
+ const HAPStorage_1 = require("./HAPStorage");
11
11
  function getVersion() {
12
12
  // eslint-disable-next-line @typescript-eslint/no-var-requires
13
- var packageJson = require("../../../package.json");
13
+ const packageJson = require("../../../package.json");
14
14
  return packageJson.version;
15
15
  }
16
16
  /**
@@ -27,15 +27,22 @@ var PermissionTypes;
27
27
  * such as encryption keys and username. It is persisted to disk.
28
28
  * @group Model
29
29
  */
30
- var AccessoryInfo = /** @class */ (function () {
31
- function AccessoryInfo(username) {
32
- var _this = this;
33
- this.configVersion = 1;
34
- this.lastFirmwareVersion = "";
35
- // Returns a boolean indicating whether this accessory has been paired with a client.
36
- this.paired = function () {
37
- return Object.keys(_this.pairedClients).length > 0; // if we have any paired clients, we're paired.
38
- };
30
+ class AccessoryInfo {
31
+ static deviceIdPattern = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
32
+ username;
33
+ displayName;
34
+ model; // this property is currently not saved to disk
35
+ category;
36
+ pincode;
37
+ signSk;
38
+ signPk;
39
+ pairedClients;
40
+ pairedAdminClients;
41
+ configVersion = 1;
42
+ configHash;
43
+ setupID;
44
+ lastFirmwareVersion = "";
45
+ constructor(username) {
39
46
  this.username = username;
40
47
  this.displayName = "";
41
48
  this.model = "";
@@ -54,7 +61,7 @@ var AccessoryInfo = /** @class */ (function () {
54
61
  * @param {Buffer} publicKey
55
62
  * @param {PermissionTypes} permission
56
63
  */
57
- AccessoryInfo.prototype.addPairedClient = function (username, publicKey, permission) {
64
+ addPairedClient(username, publicKey, permission) {
58
65
  this.pairedClients[username] = {
59
66
  username: username,
60
67
  publicKey: publicKey,
@@ -63,11 +70,11 @@ var AccessoryInfo = /** @class */ (function () {
63
70
  if (permission === 1 /* PermissionTypes.ADMIN */) {
64
71
  this.pairedAdminClients++;
65
72
  }
66
- };
67
- AccessoryInfo.prototype.updatePermission = function (username, permission) {
68
- var pairingInformation = this.pairedClients[username];
73
+ }
74
+ updatePermission(username, permission) {
75
+ const pairingInformation = this.pairedClients[username];
69
76
  if (pairingInformation) {
70
- var oldPermission = pairingInformation.permission;
77
+ const oldPermission = pairingInformation.permission;
71
78
  pairingInformation.permission = permission;
72
79
  if (oldPermission === 1 /* PermissionTypes.ADMIN */ && permission !== 1 /* PermissionTypes.ADMIN */) {
73
80
  this.pairedAdminClients--;
@@ -76,79 +83,61 @@ var AccessoryInfo = /** @class */ (function () {
76
83
  this.pairedAdminClients++;
77
84
  }
78
85
  }
79
- };
80
- AccessoryInfo.prototype.listPairings = function () {
81
- var e_1, _a;
82
- var array = [];
83
- try {
84
- for (var _b = tslib_1.__values(Object.values(this.pairedClients)), _c = _b.next(); !_c.done; _c = _b.next()) {
85
- var pairingInformation = _c.value;
86
- array.push(pairingInformation);
87
- }
88
- }
89
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
90
- finally {
91
- try {
92
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
93
- }
94
- finally { if (e_1) throw e_1.error; }
86
+ }
87
+ listPairings() {
88
+ const array = [];
89
+ for (const pairingInformation of Object.values(this.pairedClients)) {
90
+ array.push(pairingInformation);
95
91
  }
96
92
  return array;
97
- };
93
+ }
98
94
  /**
99
95
  * Remove a paired client from memory.
100
96
  * @param connection - the session of the connection initiated the removal of the pairing
101
97
  * @param {string} username
102
98
  */
103
- AccessoryInfo.prototype.removePairedClient = function (connection, username) {
104
- var e_2, _a;
99
+ removePairedClient(connection, username) {
105
100
  this._removePairedClient0(connection, username);
106
101
  if (this.pairedAdminClients === 0) { // if we don't have any admin clients left paired it is required to kill all normal clients
107
- try {
108
- for (var _b = tslib_1.__values(Object.keys(this.pairedClients)), _c = _b.next(); !_c.done; _c = _b.next()) {
109
- var username0 = _c.value;
110
- this._removePairedClient0(connection, username0);
111
- }
112
- }
113
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
114
- finally {
115
- try {
116
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
117
- }
118
- finally { if (e_2) throw e_2.error; }
102
+ for (const username0 of Object.keys(this.pairedClients)) {
103
+ this._removePairedClient0(connection, username0);
119
104
  }
120
105
  }
121
- };
122
- AccessoryInfo.prototype._removePairedClient0 = function (connection, username) {
106
+ }
107
+ _removePairedClient0(connection, username) {
123
108
  if (this.pairedClients[username] && this.pairedClients[username].permission === 1 /* PermissionTypes.ADMIN */) {
124
109
  this.pairedAdminClients--;
125
110
  }
126
111
  delete this.pairedClients[username];
127
112
  eventedhttp_1.EventedHTTPServer.destroyExistingConnectionsAfterUnpair(connection, username);
128
- };
113
+ }
129
114
  /**
130
115
  * Check if username is paired
131
116
  * @param username
132
117
  */
133
- AccessoryInfo.prototype.isPaired = function (username) {
118
+ isPaired(username) {
134
119
  return !!this.pairedClients[username];
135
- };
136
- AccessoryInfo.prototype.hasAdminPermissions = function (username) {
120
+ }
121
+ hasAdminPermissions(username) {
137
122
  if (!username) {
138
123
  return false;
139
124
  }
140
- var pairingInformation = this.pairedClients[username];
125
+ const pairingInformation = this.pairedClients[username];
141
126
  return !!pairingInformation && pairingInformation.permission === 1 /* PermissionTypes.ADMIN */;
142
- };
127
+ }
143
128
  // Gets the public key for a paired client as a Buffer, or falsy value if not paired.
144
- AccessoryInfo.prototype.getClientPublicKey = function (username) {
145
- var pairingInformation = this.pairedClients[username];
129
+ getClientPublicKey(username) {
130
+ const pairingInformation = this.pairedClients[username];
146
131
  if (pairingInformation) {
147
132
  return pairingInformation.publicKey;
148
133
  }
149
134
  else {
150
135
  return undefined;
151
136
  }
137
+ }
138
+ // Returns a boolean indicating whether this accessory has been paired with a client.
139
+ paired = () => {
140
+ return Object.keys(this.pairedClients).length > 0; // if we have any paired clients, we're paired.
152
141
  };
153
142
  /**
154
143
  * Checks based on the current accessory configuration if the current configuration number needs to be incremented.
@@ -158,11 +147,11 @@ var AccessoryInfo = /** @class */ (function () {
158
147
  * @param checkFirmwareIncrement
159
148
  * @returns True if the current configuration number was incremented and thus a new TXT must be advertised.
160
149
  */
161
- AccessoryInfo.prototype.checkForCurrentConfigurationNumberIncrement = function (configuration, checkFirmwareIncrement) {
162
- var shasum = crypto_1.default.createHash("sha1");
150
+ checkForCurrentConfigurationNumberIncrement(configuration, checkFirmwareIncrement) {
151
+ const shasum = crypto_1.default.createHash("sha1");
163
152
  shasum.update(JSON.stringify(configuration));
164
- var configHash = shasum.digest("hex");
165
- var changed = false;
153
+ const configHash = shasum.digest("hex");
154
+ let changed = false;
166
155
  if (configHash !== this.configHash) {
167
156
  this.configVersion++;
168
157
  this.configHash = configHash;
@@ -170,7 +159,7 @@ var AccessoryInfo = /** @class */ (function () {
170
159
  changed = true;
171
160
  }
172
161
  if (checkFirmwareIncrement) {
173
- var version = getVersion();
162
+ const version = getVersion();
174
163
  if (this.lastFirmwareVersion !== version) {
175
164
  // we only check if it is different and not only if it is incremented
176
165
  // HomeKit spec prohibits firmware downgrades, but with hap-nodejs it's possible lol
@@ -182,20 +171,19 @@ var AccessoryInfo = /** @class */ (function () {
182
171
  this.save();
183
172
  }
184
173
  return changed;
185
- };
186
- AccessoryInfo.prototype.getConfigVersion = function () {
174
+ }
175
+ getConfigVersion() {
187
176
  return this.configVersion;
188
- };
189
- AccessoryInfo.prototype.ensureConfigVersionBounds = function () {
177
+ }
178
+ ensureConfigVersionBounds() {
190
179
  // current configuration number must be in the range of 1-65535 and wrap to 1 when it overflows
191
180
  this.configVersion = this.configVersion % (0xFFFF + 1);
192
181
  if (this.configVersion === 0) {
193
182
  this.configVersion = 1;
194
183
  }
195
- };
196
- AccessoryInfo.prototype.save = function () {
197
- var e_3, _a;
198
- var saved = {
184
+ }
185
+ save() {
186
+ const saved = {
199
187
  displayName: this.displayName,
200
188
  category: this.category,
201
189
  pincode: this.pincode,
@@ -211,76 +199,55 @@ var AccessoryInfo = /** @class */ (function () {
211
199
  setupID: this.setupID,
212
200
  lastFirmwareVersion: this.lastFirmwareVersion,
213
201
  };
214
- try {
215
- for (var _b = tslib_1.__values(Object.entries(this.pairedClients)), _c = _b.next(); !_c.done; _c = _b.next()) {
216
- var _d = tslib_1.__read(_c.value, 2), username = _d[0], pairingInformation = _d[1];
217
- // @ts-expect-error: missing typing, object instead of Record
218
- saved.pairedClients[username] = pairingInformation.publicKey.toString("hex");
219
- // @ts-expect-error: missing typing, object instead of Record
220
- saved.pairedClientsPermission[username] = pairingInformation.permission;
221
- }
202
+ for (const [username, pairingInformation] of Object.entries(this.pairedClients)) {
203
+ // @ts-expect-error: missing typing, object instead of Record
204
+ saved.pairedClients[username] = pairingInformation.publicKey.toString("hex");
205
+ // @ts-expect-error: missing typing, object instead of Record
206
+ saved.pairedClientsPermission[username] = pairingInformation.permission;
222
207
  }
223
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
224
- finally {
225
- try {
226
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
227
- }
228
- finally { if (e_3) throw e_3.error; }
229
- }
230
- var key = AccessoryInfo.persistKey(this.username);
208
+ const key = AccessoryInfo.persistKey(this.username);
231
209
  HAPStorage_1.HAPStorage.storage().setItemSync(key, saved);
232
- };
210
+ }
233
211
  // Gets a key for storing this AccessoryInfo in the filesystem, like "AccessoryInfo.CC223DE3CEF3.json"
234
- AccessoryInfo.persistKey = function (username) {
212
+ static persistKey(username) {
235
213
  return util_1.default.format("AccessoryInfo.%s.json", username.replace(/:/g, "").toUpperCase());
236
- };
237
- AccessoryInfo.create = function (username) {
214
+ }
215
+ static create(username) {
238
216
  AccessoryInfo.assertValidUsername(username);
239
- var accessoryInfo = new AccessoryInfo(username);
217
+ const accessoryInfo = new AccessoryInfo(username);
240
218
  accessoryInfo.lastFirmwareVersion = getVersion();
241
219
  // Create a new unique key pair for this accessory.
242
- var keyPair = tweetnacl_1.default.sign.keyPair();
220
+ const keyPair = tweetnacl_1.default.sign.keyPair();
243
221
  accessoryInfo.signSk = Buffer.from(keyPair.secretKey);
244
222
  accessoryInfo.signPk = Buffer.from(keyPair.publicKey);
245
223
  return accessoryInfo;
246
- };
247
- AccessoryInfo.load = function (username) {
248
- var e_4, _a;
224
+ }
225
+ static load(username) {
249
226
  AccessoryInfo.assertValidUsername(username);
250
- var key = AccessoryInfo.persistKey(username);
251
- var saved = HAPStorage_1.HAPStorage.storage().getItem(key);
227
+ const key = AccessoryInfo.persistKey(username);
228
+ const saved = HAPStorage_1.HAPStorage.storage().getItem(key);
252
229
  if (saved) {
253
- var info = new AccessoryInfo(username);
230
+ const info = new AccessoryInfo(username);
254
231
  info.displayName = saved.displayName || "";
255
232
  info.category = saved.category || "";
256
233
  info.pincode = saved.pincode || "";
257
234
  info.signSk = Buffer.from(saved.signSk || "", "hex");
258
235
  info.signPk = Buffer.from(saved.signPk || "", "hex");
259
236
  info.pairedClients = {};
260
- try {
261
- for (var _b = tslib_1.__values(Object.keys(saved.pairedClients || {})), _c = _b.next(); !_c.done; _c = _b.next()) {
262
- var username_1 = _c.value;
263
- var publicKey = saved.pairedClients[username_1];
264
- var permission = saved.pairedClientsPermission ? saved.pairedClientsPermission[username_1] : undefined;
265
- if (permission === undefined) {
266
- permission = 1 /* PermissionTypes.ADMIN */;
267
- } // defaulting to admin permissions is the only suitable solution, there is no way to recover permissions
268
- info.pairedClients[username_1] = {
269
- username: username_1,
270
- publicKey: Buffer.from(publicKey, "hex"),
271
- permission: permission,
272
- };
273
- if (permission === 1 /* PermissionTypes.ADMIN */) {
274
- info.pairedAdminClients++;
275
- }
276
- }
277
- }
278
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
279
- finally {
280
- try {
281
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
237
+ for (const username of Object.keys(saved.pairedClients || {})) {
238
+ const publicKey = saved.pairedClients[username];
239
+ let permission = saved.pairedClientsPermission ? saved.pairedClientsPermission[username] : undefined;
240
+ if (permission === undefined) {
241
+ permission = 1 /* PermissionTypes.ADMIN */;
242
+ } // defaulting to admin permissions is the only suitable solution, there is no way to recover permissions
243
+ info.pairedClients[username] = {
244
+ username: username,
245
+ publicKey: Buffer.from(publicKey, "hex"),
246
+ permission: permission,
247
+ };
248
+ if (permission === 1 /* PermissionTypes.ADMIN */) {
249
+ info.pairedAdminClients++;
282
250
  }
283
- finally { if (e_4) throw e_4.error; }
284
251
  }
285
252
  info.configVersion = saved.configVersion || 1;
286
253
  info.configHash = saved.configHash || "";
@@ -292,20 +259,18 @@ var AccessoryInfo = /** @class */ (function () {
292
259
  else {
293
260
  return null;
294
261
  }
295
- };
296
- AccessoryInfo.remove = function (username) {
297
- var key = AccessoryInfo.persistKey(username);
262
+ }
263
+ static remove(username) {
264
+ const key = AccessoryInfo.persistKey(username);
298
265
  HAPStorage_1.HAPStorage.storage().removeItemSync(key);
299
- };
300
- AccessoryInfo.assertValidUsername = function (username) {
266
+ }
267
+ static assertValidUsername(username) {
301
268
  assert_1.default.ok(AccessoryInfo.deviceIdPattern.test(username), "The supplied username (" + username + ") is not valid " +
302
269
  "(expected a format like 'XX:XX:XX:XX:XX:XX' with XX being a valid hexadecimal string). " +
303
270
  "Note that, if you had this accessory already paired with the invalid username, you will need to repair " +
304
271
  "the accessory and reconfigure your services in the Home app. " +
305
272
  "Using an invalid username will lead to unexpected behaviour.");
306
- };
307
- AccessoryInfo.deviceIdPattern = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
308
- return AccessoryInfo;
309
- }());
273
+ }
274
+ }
310
275
  exports.AccessoryInfo = AccessoryInfo;
311
276
  //# sourceMappingURL=AccessoryInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryInfo.js","sourceRoot":"","sources":["../../../src/lib/model/AccessoryInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccessoryInfo.js","sourceRoot":"","sources":["../../../src/lib/model/AccessoryInfo.ts"],"names":[],"mappings":"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"}