@mp-consulting/homebridge-daikin-cloud 1.5.2 → 1.6.0

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 (211) hide show
  1. package/README.md +40 -27
  2. package/config.schema.json +66 -12
  3. package/dist/src/accessories/air-conditioning-accessory.js +1 -1
  4. package/dist/src/accessories/air-conditioning-accessory.js.map +1 -1
  5. package/dist/src/accessories/altherma-accessory.js +1 -1
  6. package/dist/src/accessories/altherma-accessory.js.map +1 -1
  7. package/dist/src/accessories/base-accessory.d.ts +5 -4
  8. package/dist/src/accessories/base-accessory.d.ts.map +1 -1
  9. package/dist/src/accessories/base-accessory.js +9 -10
  10. package/dist/src/accessories/base-accessory.js.map +1 -1
  11. package/dist/src/api/daikin-api.d.ts +22 -6
  12. package/dist/src/api/daikin-api.d.ts.map +1 -1
  13. package/dist/src/api/daikin-api.js +49 -23
  14. package/dist/src/api/daikin-api.js.map +1 -1
  15. package/dist/src/api/daikin-controller.d.ts +4 -48
  16. package/dist/src/api/daikin-controller.d.ts.map +1 -1
  17. package/dist/src/api/daikin-controller.js +14 -84
  18. package/dist/src/api/daikin-controller.js.map +1 -1
  19. package/dist/src/api/daikin-mobile-oauth.d.ts +11 -40
  20. package/dist/src/api/daikin-mobile-oauth.d.ts.map +1 -1
  21. package/dist/src/api/daikin-mobile-oauth.js +36 -160
  22. package/dist/src/api/daikin-mobile-oauth.js.map +1 -1
  23. package/dist/src/api/daikin-oauth.d.ts +10 -37
  24. package/dist/src/api/daikin-oauth.d.ts.map +1 -1
  25. package/dist/src/api/daikin-oauth.js +36 -166
  26. package/dist/src/api/daikin-oauth.js.map +1 -1
  27. package/dist/src/api/daikin-schemas.d.ts +20 -22
  28. package/dist/src/api/daikin-schemas.d.ts.map +1 -1
  29. package/dist/src/api/daikin-schemas.js +17 -49
  30. package/dist/src/api/daikin-schemas.js.map +1 -1
  31. package/dist/src/api/daikin-types.d.ts +11 -23
  32. package/dist/src/api/daikin-types.d.ts.map +1 -1
  33. package/dist/src/api/daikin-types.js.map +1 -1
  34. package/dist/src/api/daikin-websocket.d.ts +4 -5
  35. package/dist/src/api/daikin-websocket.d.ts.map +1 -1
  36. package/dist/src/api/daikin-websocket.js +62 -34
  37. package/dist/src/api/daikin-websocket.js.map +1 -1
  38. package/dist/src/api/http-defaults.d.ts +3 -2
  39. package/dist/src/api/http-defaults.d.ts.map +1 -1
  40. package/dist/src/api/http-defaults.js.map +1 -1
  41. package/dist/src/api/http-transport.d.ts +14 -2
  42. package/dist/src/api/http-transport.d.ts.map +1 -1
  43. package/dist/src/api/http-transport.js +32 -9
  44. package/dist/src/api/http-transport.js.map +1 -1
  45. package/dist/src/api/token-client.d.ts +82 -0
  46. package/dist/src/api/token-client.d.ts.map +1 -0
  47. package/dist/src/api/token-client.js +188 -0
  48. package/dist/src/api/token-client.js.map +1 -0
  49. package/dist/src/api/token-storage.d.ts +6 -0
  50. package/dist/src/api/token-storage.d.ts.map +1 -1
  51. package/dist/src/api/token-storage.js +27 -1
  52. package/dist/src/api/token-storage.js.map +1 -1
  53. package/dist/src/config/config-manager.d.ts +69 -125
  54. package/dist/src/config/config-manager.d.ts.map +1 -1
  55. package/dist/src/config/config-manager.js +288 -225
  56. package/dist/src/config/config-manager.js.map +1 -1
  57. package/dist/src/constants/api.constants.d.ts +6 -0
  58. package/dist/src/constants/api.constants.d.ts.map +1 -1
  59. package/dist/src/constants/api.constants.js +7 -1
  60. package/dist/src/constants/api.constants.js.map +1 -1
  61. package/dist/src/constants/auth.constants.d.ts +11 -0
  62. package/dist/src/constants/auth.constants.d.ts.map +1 -1
  63. package/dist/src/constants/auth.constants.js +12 -1
  64. package/dist/src/constants/auth.constants.js.map +1 -1
  65. package/dist/src/constants/device.constants.d.ts +1 -7
  66. package/dist/src/constants/device.constants.d.ts.map +1 -1
  67. package/dist/src/constants/device.constants.js +2 -11
  68. package/dist/src/constants/device.constants.js.map +1 -1
  69. package/dist/src/constants/time.constants.d.ts +0 -2
  70. package/dist/src/constants/time.constants.d.ts.map +1 -1
  71. package/dist/src/constants/time.constants.js +1 -3
  72. package/dist/src/constants/time.constants.js.map +1 -1
  73. package/dist/src/device/accessory-factory.d.ts +0 -5
  74. package/dist/src/device/accessory-factory.d.ts.map +1 -1
  75. package/dist/src/device/accessory-factory.js +0 -7
  76. package/dist/src/device/accessory-factory.js.map +1 -1
  77. package/dist/src/device/capability-detector.d.ts +9 -1
  78. package/dist/src/device/capability-detector.d.ts.map +1 -1
  79. package/dist/src/device/capability-detector.js +32 -28
  80. package/dist/src/device/capability-detector.js.map +1 -1
  81. package/dist/src/device/capability-docs.d.ts.map +1 -1
  82. package/dist/src/device/capability-docs.js +3 -0
  83. package/dist/src/device/capability-docs.js.map +1 -1
  84. package/dist/src/device/data-paths.d.ts +18 -0
  85. package/dist/src/device/data-paths.d.ts.map +1 -0
  86. package/dist/src/device/data-paths.js +20 -0
  87. package/dist/src/device/data-paths.js.map +1 -0
  88. package/dist/src/device/profiles/device-profile.d.ts +0 -5
  89. package/dist/src/device/profiles/device-profile.d.ts.map +1 -1
  90. package/dist/src/device/profiles/device-profile.js +0 -21
  91. package/dist/src/device/profiles/device-profile.js.map +1 -1
  92. package/dist/src/features/base-feature.d.ts +53 -9
  93. package/dist/src/features/base-feature.d.ts.map +1 -1
  94. package/dist/src/features/base-feature.js +93 -40
  95. package/dist/src/features/base-feature.js.map +1 -1
  96. package/dist/src/features/feature-manager.d.ts +27 -15
  97. package/dist/src/features/feature-manager.d.ts.map +1 -1
  98. package/dist/src/features/feature-manager.js +27 -24
  99. package/dist/src/features/feature-manager.js.map +1 -1
  100. package/dist/src/features/index.d.ts +1 -0
  101. package/dist/src/features/index.d.ts.map +1 -1
  102. package/dist/src/features/index.js +1 -0
  103. package/dist/src/features/index.js.map +1 -1
  104. package/dist/src/features/modes/auto-fan-mode.feature.d.ts +16 -10
  105. package/dist/src/features/modes/auto-fan-mode.feature.d.ts.map +1 -1
  106. package/dist/src/features/modes/auto-fan-mode.feature.js +16 -40
  107. package/dist/src/features/modes/auto-fan-mode.feature.js.map +1 -1
  108. package/dist/src/features/modes/dry-operation-mode.feature.d.ts +12 -9
  109. package/dist/src/features/modes/dry-operation-mode.feature.d.ts.map +1 -1
  110. package/dist/src/features/modes/dry-operation-mode.feature.js +11 -30
  111. package/dist/src/features/modes/dry-operation-mode.feature.js.map +1 -1
  112. package/dist/src/features/modes/econo-mode.feature.d.ts +12 -9
  113. package/dist/src/features/modes/econo-mode.feature.d.ts.map +1 -1
  114. package/dist/src/features/modes/econo-mode.feature.js +11 -31
  115. package/dist/src/features/modes/econo-mode.feature.js.map +1 -1
  116. package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts +12 -9
  117. package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts.map +1 -1
  118. package/dist/src/features/modes/fan-only-operation-mode.feature.js +11 -30
  119. package/dist/src/features/modes/fan-only-operation-mode.feature.js.map +1 -1
  120. package/dist/src/features/modes/firmware-update.feature.d.ts +7 -6
  121. package/dist/src/features/modes/firmware-update.feature.d.ts.map +1 -1
  122. package/dist/src/features/modes/firmware-update.feature.js +15 -22
  123. package/dist/src/features/modes/firmware-update.feature.js.map +1 -1
  124. package/dist/src/features/modes/holiday-mode.feature.d.ts +2 -1
  125. package/dist/src/features/modes/holiday-mode.feature.d.ts.map +1 -1
  126. package/dist/src/features/modes/holiday-mode.feature.js +5 -15
  127. package/dist/src/features/modes/holiday-mode.feature.js.map +1 -1
  128. package/dist/src/features/modes/indoor-silent-mode.feature.d.ts +15 -12
  129. package/dist/src/features/modes/indoor-silent-mode.feature.d.ts.map +1 -1
  130. package/dist/src/features/modes/indoor-silent-mode.feature.js +15 -39
  131. package/dist/src/features/modes/indoor-silent-mode.feature.js.map +1 -1
  132. package/dist/src/features/modes/oscillation-mode.feature.d.ts +5 -6
  133. package/dist/src/features/modes/oscillation-mode.feature.d.ts.map +1 -1
  134. package/dist/src/features/modes/oscillation-mode.feature.js +14 -36
  135. package/dist/src/features/modes/oscillation-mode.feature.js.map +1 -1
  136. package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts +12 -9
  137. package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts.map +1 -1
  138. package/dist/src/features/modes/outdoor-silent-mode.feature.js +11 -31
  139. package/dist/src/features/modes/outdoor-silent-mode.feature.js.map +1 -1
  140. package/dist/src/features/modes/powerful-mode.feature.d.ts +14 -10
  141. package/dist/src/features/modes/powerful-mode.feature.d.ts.map +1 -1
  142. package/dist/src/features/modes/powerful-mode.feature.js +13 -32
  143. package/dist/src/features/modes/powerful-mode.feature.js.map +1 -1
  144. package/dist/src/features/modes/streamer-mode.feature.d.ts +12 -9
  145. package/dist/src/features/modes/streamer-mode.feature.d.ts.map +1 -1
  146. package/dist/src/features/modes/streamer-mode.feature.js +11 -31
  147. package/dist/src/features/modes/streamer-mode.feature.js.map +1 -1
  148. package/dist/src/features/on-off-data-point-feature.d.ts +43 -0
  149. package/dist/src/features/on-off-data-point-feature.d.ts.map +1 -0
  150. package/dist/src/features/on-off-data-point-feature.js +49 -0
  151. package/dist/src/features/on-off-data-point-feature.js.map +1 -0
  152. package/dist/src/platform.d.ts +56 -9
  153. package/dist/src/platform.d.ts.map +1 -1
  154. package/dist/src/platform.js +248 -128
  155. package/dist/src/platform.js.map +1 -1
  156. package/dist/src/services/climate-control/fan-speed.d.ts +45 -0
  157. package/dist/src/services/climate-control/fan-speed.d.ts.map +1 -0
  158. package/dist/src/services/climate-control/fan-speed.js +104 -0
  159. package/dist/src/services/climate-control/fan-speed.js.map +1 -0
  160. package/dist/src/services/climate-control/separate-fan.service.d.ts +45 -0
  161. package/dist/src/services/climate-control/separate-fan.service.d.ts.map +1 -0
  162. package/dist/src/services/climate-control/separate-fan.service.js +82 -0
  163. package/dist/src/services/climate-control/separate-fan.service.js.map +1 -0
  164. package/dist/src/services/climate-control/setpoint-resolver.d.ts +68 -0
  165. package/dist/src/services/climate-control/setpoint-resolver.d.ts.map +1 -0
  166. package/dist/src/services/climate-control/setpoint-resolver.js +170 -0
  167. package/dist/src/services/climate-control/setpoint-resolver.js.map +1 -0
  168. package/dist/src/services/climate-control/swing-controller.d.ts +28 -0
  169. package/dist/src/services/climate-control/swing-controller.d.ts.map +1 -0
  170. package/dist/src/services/climate-control/swing-controller.js +65 -0
  171. package/dist/src/services/climate-control/swing-controller.js.map +1 -0
  172. package/dist/src/services/climate-control.service.d.ts +39 -48
  173. package/dist/src/services/climate-control.service.d.ts.map +1 -1
  174. package/dist/src/services/climate-control.service.js +223 -554
  175. package/dist/src/services/climate-control.service.js.map +1 -1
  176. package/dist/src/services/hot-water-tank.service.d.ts +17 -8
  177. package/dist/src/services/hot-water-tank.service.d.ts.map +1 -1
  178. package/dist/src/services/hot-water-tank.service.js +102 -157
  179. package/dist/src/services/hot-water-tank.service.js.map +1 -1
  180. package/dist/src/types/daikin-enums.d.ts +0 -5
  181. package/dist/src/types/daikin-enums.d.ts.map +1 -1
  182. package/dist/src/types/daikin-enums.js +1 -7
  183. package/dist/src/types/daikin-enums.js.map +1 -1
  184. package/dist/src/types/device-capabilities.d.ts +1 -0
  185. package/dist/src/types/device-capabilities.d.ts.map +1 -1
  186. package/dist/src/utils/errors.d.ts +9 -0
  187. package/dist/src/utils/errors.d.ts.map +1 -0
  188. package/dist/src/utils/errors.js +25 -0
  189. package/dist/src/utils/errors.js.map +1 -0
  190. package/dist/src/utils/hap-write.d.ts +22 -0
  191. package/dist/src/utils/hap-write.d.ts.map +1 -0
  192. package/dist/src/utils/hap-write.js +33 -0
  193. package/dist/src/utils/hap-write.js.map +1 -0
  194. package/dist/src/utils/sleep.d.ts +5 -0
  195. package/dist/src/utils/sleep.d.ts.map +1 -0
  196. package/dist/src/utils/sleep.js +10 -0
  197. package/dist/src/utils/sleep.js.map +1 -0
  198. package/homebridge-ui/README.md +25 -2
  199. package/homebridge-ui/public/index.html +19 -17
  200. package/homebridge-ui/public/script.js +95 -32
  201. package/homebridge-ui/public/styles.css +109 -0
  202. package/homebridge-ui/server.js +321 -125
  203. package/package.json +2 -3
  204. package/dist/src/utils/log-context.d.ts +0 -105
  205. package/dist/src/utils/log-context.d.ts.map +0 -1
  206. package/dist/src/utils/log-context.js +0 -206
  207. package/dist/src/utils/log-context.js.map +0 -1
  208. package/dist/src/utils/update-mapper.d.ts +0 -59
  209. package/dist/src/utils/update-mapper.d.ts.map +0 -1
  210. package/dist/src/utils/update-mapper.js +0 -192
  211. package/dist/src/utils/update-mapper.js.map +0 -1
@@ -11,6 +11,7 @@ const daikin_types_1 = require("./daikin-types");
11
11
  const daikin_schemas_1 = require("./daikin-schemas");
12
12
  const http_transport_1 = require("./http-transport");
13
13
  const constants_1 = require("../constants");
14
+ const sleep_1 = require("../utils/sleep");
14
15
  class RateLimitedError extends Error {
15
16
  retryAfter;
16
17
  constructor(message, retryAfter) {
@@ -39,6 +40,9 @@ class DaikinApi {
39
40
  // Per-device write queues: serializes PATCH requests for each device independently,
40
41
  // so multiple devices can write in parallel while each device's writes are ordered.
41
42
  writeQueues = new Map();
43
+ // Writes queued but not yet sent, keyed by device/management point/data point/path.
44
+ // A newer write for the same key replaces the queued value (last write wins).
45
+ pendingWrites = new Map();
42
46
  constructor(oauth, onRateLimitStatus) {
43
47
  this.oauth = oauth;
44
48
  this.onRateLimitStatus = onRateLimitStatus;
@@ -94,10 +98,14 @@ class DaikinApi {
94
98
  // Instance methods
95
99
  // =========================================================================
96
100
  /**
97
- * Get all gateway devices with runtime validation
101
+ * Get all gateway devices with runtime validation.
102
+ *
103
+ * Gateway errors (5xx) are not retried by default: for periodic polling the
104
+ * next poll is the retry. Pass `retryGatewayErrors: true` for one-off reads
105
+ * (e.g. initial discovery) where a transient failure would be costly.
98
106
  */
99
- async getDevices() {
100
- const rawDevices = await this.request('/v1/gateway-devices');
107
+ async getDevices(options = {}) {
108
+ const rawDevices = await this.request('/v1/gateway-devices', 'GET', undefined, 0, options);
101
109
  return zod_1.z.array(daikin_schemas_1.GatewayDeviceSchema).parse(rawDevices);
102
110
  }
103
111
  /**
@@ -110,9 +118,24 @@ class DaikinApi {
110
118
  * @param dataPath - Optional path within the data point (e.g., '/operationModes/heating/setpoints/roomTemperature')
111
119
  */
112
120
  async updateDevice(deviceId, embeddedId, dataPoint, value, dataPath) {
113
- const urlPath = `/v1/gateway-devices/${deviceId}/management-points/${embeddedId}/characteristics/${dataPoint}`;
121
+ const urlPath = `${this.managementPointPath(deviceId, embeddedId)}/characteristics/${encodeURIComponent(dataPoint)}`;
114
122
  const body = dataPath ? { value, path: dataPath } : { value };
115
- await this.enqueueWriteForDevice(deviceId, () => this.request(urlPath, 'PATCH', body));
123
+ const key = `${deviceId}|${embeddedId}|${dataPoint}|${dataPath ?? ''}`;
124
+ // Coalesce: a queued-but-unsent write to the same target just takes the new value,
125
+ // and both callers share the outcome of the single request that is sent.
126
+ const pending = this.pendingWrites.get(key);
127
+ if (pending?.promise) {
128
+ pending.body = body;
129
+ return pending.promise;
130
+ }
131
+ const entry = { body };
132
+ this.pendingWrites.set(key, entry);
133
+ entry.promise = this.enqueueWriteForDevice(deviceId, () => {
134
+ // Once the request starts, later writes must queue behind it instead of merging.
135
+ this.pendingWrites.delete(key);
136
+ return this.request(urlPath, 'PATCH', entry.body);
137
+ });
138
+ return entry.promise;
116
139
  }
117
140
  /**
118
141
  * Enable or disable holiday (away) mode on a management point.
@@ -127,7 +150,7 @@ class DaikinApi {
127
150
  * @param body - The holiday mode payload
128
151
  */
129
152
  async setHolidayMode(deviceId, embeddedId, body) {
130
- const urlPath = `/v1/gateway-devices/${deviceId}/management-points/${embeddedId}/holiday-mode`;
153
+ const urlPath = `${this.managementPointPath(deviceId, embeddedId)}/holiday-mode`;
131
154
  await this.enqueueWriteForDevice(deviceId, () => this.request(urlPath, 'POST', body));
132
155
  }
133
156
  /**
@@ -143,9 +166,16 @@ class DaikinApi {
143
166
  * @param firmwareId - The staged update's id from firmwareUpdate.value.id
144
167
  */
145
168
  async triggerFirmwareUpdate(deviceId, embeddedId, firmwareId) {
146
- const urlPath = `/v1/gateway-devices/${deviceId}/management-points/${embeddedId}/firmware/${firmwareId}`;
169
+ const urlPath = `${this.managementPointPath(deviceId, embeddedId)}/firmware/${encodeURIComponent(firmwareId)}`;
147
170
  await this.enqueueWriteForDevice(deviceId, () => this.request(urlPath, 'PUT'));
148
171
  }
172
+ /**
173
+ * Base path of a management point. IDs come from cloud responses and are
174
+ * encoded so a '/' or '?' in them cannot change which endpoint is hit.
175
+ */
176
+ managementPointPath(deviceId, embeddedId) {
177
+ return `/v1/gateway-devices/${encodeURIComponent(deviceId)}/management-points/${encodeURIComponent(embeddedId)}`;
178
+ }
149
179
  /**
150
180
  * Serializes write requests per device through a queue with a fixed inter-request delay.
151
181
  * Each device has its own queue so writes for different devices run in parallel,
@@ -157,10 +187,10 @@ class DaikinApi {
157
187
  .catch(() => { })
158
188
  .then(() => fn())
159
189
  .then(async (val) => {
160
- await this.sleep(constants_1.WRITE_INTER_REQUEST_DELAY_MS);
190
+ await (0, sleep_1.sleep)(constants_1.WRITE_INTER_REQUEST_DELAY_MS);
161
191
  return val;
162
192
  }, async (err) => {
163
- await this.sleep(constants_1.WRITE_INTER_REQUEST_DELAY_MS);
193
+ await (0, sleep_1.sleep)(constants_1.WRITE_INTER_REQUEST_DELAY_MS);
164
194
  throw err;
165
195
  });
166
196
  this.writeQueues.set(deviceId, queued.catch(() => { }));
@@ -186,12 +216,6 @@ class DaikinApi {
186
216
  const jitter = Math.random() * constants_1.RETRY_BASE_DELAY_MS;
187
217
  return Math.min(exponentialDelay + jitter, constants_1.RETRY_MAX_DELAY_MS);
188
218
  }
189
- /**
190
- * Sleep for a specified duration
191
- */
192
- sleep(ms) {
193
- return new Promise(resolve => setTimeout(resolve, ms));
194
- }
195
219
  /**
196
220
  * Get human-readable name for gateway error status codes
197
221
  */
@@ -228,7 +252,7 @@ class DaikinApi {
228
252
  /**
229
253
  * Make an authenticated API request
230
254
  */
231
- async request(path, method = 'GET', body, retryCount = 0) {
255
+ async request(path, method = 'GET', body, retryCount = 0, options = {}) {
232
256
  // Check rate limit
233
257
  if (this.isRateLimited()) {
234
258
  const retryAfter = this.getRateLimitRetryAfter();
@@ -244,7 +268,8 @@ class DaikinApi {
244
268
  limitDay: this.parseHeader(response.headers['x-ratelimit-limit-day']),
245
269
  remainingDay: this.parseHeader(response.headers['x-ratelimit-remaining-day']),
246
270
  };
247
- if (this.onRateLimitStatus) {
271
+ // Only report when the response actually carried rate-limit headers
272
+ if (this.onRateLimitStatus && Object.values(rateLimit).some(v => v !== undefined)) {
248
273
  this.onRateLimitStatus(rateLimit);
249
274
  }
250
275
  // Handle response codes
@@ -272,8 +297,8 @@ class DaikinApi {
272
297
  await this.refreshPromise;
273
298
  // Apply exponential backoff delay before retry
274
299
  const delay = this.getRetryDelay(retryCount);
275
- await this.sleep(delay);
276
- return this.request(path, method, body, retryCount + 1);
300
+ await (0, sleep_1.sleep)(delay);
301
+ return this.request(path, method, body, retryCount + 1, options);
277
302
  }
278
303
  catch {
279
304
  throw new Error(`Unauthorized (${constants_1.HTTP_STATUS.UNAUTHORIZED}): Token refresh failed. Please re-authenticate.`);
@@ -294,14 +319,15 @@ class DaikinApi {
294
319
  case constants_1.HTTP_STATUS.SERVICE_UNAVAILABLE:
295
320
  case constants_1.HTTP_STATUS.GATEWAY_TIMEOUT: {
296
321
  const errorName = this.getGatewayErrorName(response.statusCode);
297
- // If we've exhausted retries, throw ApiTimeoutError
298
- if (retryCount >= constants_1.MAX_RETRY_ATTEMPTS) {
322
+ const retryGatewayErrors = options.retryGatewayErrors ?? method !== 'GET';
323
+ // If retries are disabled or exhausted, throw ApiTimeoutError
324
+ if (!retryGatewayErrors || retryCount >= constants_1.MAX_RETRY_ATTEMPTS) {
299
325
  throw new ApiTimeoutError(`${errorName} (${response.statusCode}): The Daikin API is temporarily unavailable after ${retryCount + 1} attempts.`, response.statusCode, retryCount + 1);
300
326
  }
301
327
  // Retry with exponential backoff
302
328
  const delay = this.getRetryDelay(retryCount);
303
- await this.sleep(delay);
304
- return this.request(path, method, body, retryCount + 1);
329
+ await (0, sleep_1.sleep)(delay);
330
+ return this.request(path, method, body, retryCount + 1, options);
305
331
  }
306
332
  default:
307
333
  throw new Error(`Unexpected API error (${response.statusCode}): ${response.body}`);
@@ -1 +1 @@
1
- {"version":3,"file":"daikin-api.js","sourceRoot":"","sources":["../../../src/api/daikin-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daikin-api.js","sourceRoot":"","sources":["../../../src/api/daikin-api.ts"],"names":[],"mappings":"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"}
@@ -7,21 +7,14 @@
7
7
  import { EventEmitter } from 'node:events';
8
8
  import type { DaikinClientConfig, DaikinControllerConfig, TokenSet } from './daikin-types';
9
9
  import { DaikinCloudDevice } from './daikin-device';
10
- import type { WebSocketState } from './daikin-websocket';
11
10
  export declare class DaikinCloudController extends EventEmitter {
12
11
  private readonly oauth;
13
12
  private readonly mobileOAuth?;
14
- private readonly devPortalOAuth?;
15
13
  private readonly api;
16
14
  private readonly websocket;
17
15
  private readonly authMode;
18
16
  private devices;
19
- private websocketEnabled;
20
17
  constructor(config: DaikinControllerConfig | DaikinClientConfig);
21
- /**
22
- * Get the authentication mode
23
- */
24
- getAuthMode(): 'developer_portal' | 'mobile_app';
25
18
  /**
26
19
  * Authenticate with mobile app credentials (only for mobile_app mode)
27
20
  * Must be called before using the API when using mobile_app mode without existing tokens.
@@ -40,44 +33,15 @@ export declare class DaikinCloudController extends EventEmitter {
40
33
  */
41
34
  isAuthenticated(): boolean;
42
35
  /**
43
- * Get token expiration date
44
- */
45
- getTokenExpiration(): Date | null;
46
- /**
47
- * Get current token set
48
- */
49
- getTokenSet(): TokenSet | null;
50
- /**
51
- * Build authorization URL (Developer Portal mode only)
52
- */
53
- buildAuthUrl(state?: string): {
54
- url: string;
55
- state: string;
56
- };
57
- /**
58
- * Exchange authorization code for tokens (Developer Portal mode only)
59
- */
60
- exchangeCode(code: string): Promise<TokenSet>;
61
- /**
62
- * Revoke authentication
63
- */
64
- revokeAuth(): Promise<void>;
65
- /**
66
- * Get all cloud devices
36
+ * Get all cloud devices (initial discovery: transient gateway errors are retried)
67
37
  */
68
38
  getCloudDevices(): Promise<DaikinCloudDevice[]>;
69
39
  /**
70
- * Update all device data from the cloud
40
+ * Update all device data from the cloud (periodic polling: no gateway-error
41
+ * retries, the next poll is the retry)
71
42
  */
72
43
  updateAllDeviceData(): Promise<void>;
73
- /**
74
- * Check if rate limited
75
- */
76
- isRateLimited(): boolean;
77
- /**
78
- * Get rate limit retry time
79
- */
80
- getRateLimitRetryAfter(): number;
44
+ private fetchDevices;
81
45
  /**
82
46
  * Enable and connect WebSocket for real-time updates
83
47
  */
@@ -86,17 +50,9 @@ export declare class DaikinCloudController extends EventEmitter {
86
50
  * Disable and disconnect WebSocket
87
51
  */
88
52
  disableWebSocket(): void;
89
- /**
90
- * Check if WebSocket is enabled
91
- */
92
- isWebSocketEnabled(): boolean;
93
53
  /**
94
54
  * Check if WebSocket is connected
95
55
  */
96
56
  isWebSocketConnected(): boolean;
97
- /**
98
- * Get WebSocket connection state
99
- */
100
- getWebSocketState(): WebSocketState;
101
57
  }
102
58
  //# sourceMappingURL=daikin-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"daikin-controller.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-controller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAGtB,QAAQ,EAET,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwF;IAC9G,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,sBAAsB,GAAG,kBAAkB;IAqD/D;;SAEK;IACL,WAAW,IAAI,kBAAkB,GAAG,YAAY;IAIhD;;;SAGK;IACC,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAO7C;;SAEK;IACL,OAAO,CAAC,sBAAsB;IAkB9B;;SAEK;IACL,OAAO,CAAC,2BAA2B;IAYnC;;SAEK;IACL,eAAe,IAAI,OAAO;IAI1B;;SAEK;IACL,kBAAkB,IAAI,IAAI,GAAG,IAAI;IAIjC;;SAEK;IACL,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B;;SAEK;IACL,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAO5D;;SAEK;IACC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAOnD;;SAEK;IACC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;SAEK;IACC,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAoBrD;;SAEK;IACC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;SAEK;IACL,aAAa,IAAI,OAAO;IAIxB;;SAEK;IACL,sBAAsB,IAAI,MAAM;IAQhC;;SAEK;IACC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC;;SAEK;IACL,gBAAgB,IAAI,IAAI;IAKxB;;SAEK;IACL,kBAAkB,IAAI,OAAO;IAI7B;;SAEK;IACL,oBAAoB,IAAI,OAAO;IAI/B;;SAEK;IACL,iBAAiB,IAAI,cAAc;CAGpC"}
1
+ {"version":3,"file":"daikin-controller.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-controller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAGtB,QAAQ,EAET,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,OAAO,CAA2B;gBAE9B,MAAM,EAAE,sBAAsB,GAAG,kBAAkB;IAkD/D;;;SAGK;IACC,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAO7C;;SAEK;IACL,OAAO,CAAC,sBAAsB;IAkB9B;;SAEK;IACL,OAAO,CAAC,2BAA2B;IAYnC;;SAEK;IACL,eAAe,IAAI,OAAO;IAI1B;;SAEK;IACC,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIrD;;;SAGK;IACC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;YAI5B,YAAY;IAwB1B;;SAEK;IACC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtC;;SAEK;IACL,gBAAgB,IAAI,IAAI;IAIxB;;SAEK;IACL,oBAAoB,IAAI,OAAO;CAIhC"}
@@ -8,6 +8,7 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.DaikinCloudController = void 0;
10
10
  const node_events_1 = require("node:events");
11
+ const constants_1 = require("../constants");
11
12
  const daikin_oauth_1 = require("./daikin-oauth");
12
13
  const daikin_mobile_oauth_1 = require("./daikin-mobile-oauth");
13
14
  const daikin_api_1 = require("./daikin-api");
@@ -16,12 +17,10 @@ const daikin_websocket_1 = require("./daikin-websocket");
16
17
  class DaikinCloudController extends node_events_1.EventEmitter {
17
18
  oauth;
18
19
  mobileOAuth;
19
- devPortalOAuth;
20
20
  api;
21
21
  websocket;
22
22
  authMode;
23
23
  devices = [];
24
- websocketEnabled = false;
25
24
  constructor(config) {
26
25
  super();
27
26
  // Determine auth mode (default to developer_portal for backwards compatibility)
@@ -42,23 +41,17 @@ class DaikinCloudController extends node_events_1.EventEmitter {
42
41
  clientId: config.clientId,
43
42
  clientSecret: config.clientSecret,
44
43
  callbackServerExternalAddress: config.callbackServerExternalAddress,
45
- callbackServerPort: config.callbackServerPort || 8582,
44
+ callbackServerPort: config.callbackServerPort || constants_1.DEFAULT_CALLBACK_PORT,
46
45
  oidcCallbackServerBindAddr: config.oidcCallbackServerBindAddr,
47
46
  tokenFilePath: config.tokenFilePath,
48
47
  };
49
- this.devPortalOAuth = new daikin_oauth_1.DaikinOAuth(devConfig, (tokenSet) => this.emit('token_update', tokenSet), (error) => this.emit('error', error.message));
50
- this.oauth = this.devPortalOAuth;
48
+ this.oauth = new daikin_oauth_1.DaikinOAuth(devConfig, (tokenSet) => this.emit('token_update', tokenSet), (error) => this.emit('error', error.message));
51
49
  }
52
50
  this.api = new daikin_api_1.DaikinApi(this.oauth, (status) => this.emit('rate_limit_status', status));
53
- this.websocket = new daikin_websocket_1.DaikinWebSocket(this.oauth, (error) => this.emit('error', `WebSocket: ${error.message}`));
51
+ // Errors are forwarded once, via the 'error' listener in setupWebSocketHandlers
52
+ this.websocket = new daikin_websocket_1.DaikinWebSocket(this.oauth);
54
53
  this.setupWebSocketHandlers();
55
54
  }
56
- /**
57
- * Get the authentication mode
58
- */
59
- getAuthMode() {
60
- return this.authMode;
61
- }
62
55
  /**
63
56
  * Authenticate with mobile app credentials (only for mobile_app mode)
64
57
  * Must be called before using the API when using mobile_app mode without existing tokens.
@@ -106,54 +99,23 @@ class DaikinCloudController extends node_events_1.EventEmitter {
106
99
  return this.oauth.isAuthenticated();
107
100
  }
108
101
  /**
109
- * Get token expiration date
110
- */
111
- getTokenExpiration() {
112
- return this.oauth.getTokenExpiration();
113
- }
114
- /**
115
- * Get current token set
102
+ * Get all cloud devices (initial discovery: transient gateway errors are retried)
116
103
  */
117
- getTokenSet() {
118
- return this.oauth.getTokenSet();
119
- }
120
- /**
121
- * Build authorization URL (Developer Portal mode only)
122
- */
123
- buildAuthUrl(state) {
124
- if (!this.devPortalOAuth) {
125
- throw new Error('buildAuthUrl is only available in developer_portal mode');
126
- }
127
- return this.devPortalOAuth.buildAuthUrl(state);
128
- }
129
- /**
130
- * Exchange authorization code for tokens (Developer Portal mode only)
131
- */
132
- async exchangeCode(code) {
133
- if (!this.devPortalOAuth) {
134
- throw new Error('exchangeCode is only available in developer_portal mode');
135
- }
136
- return this.devPortalOAuth.exchangeCode(code);
104
+ async getCloudDevices() {
105
+ return this.fetchDevices(true);
137
106
  }
138
107
  /**
139
- * Revoke authentication
108
+ * Update all device data from the cloud (periodic polling: no gateway-error
109
+ * retries, the next poll is the retry)
140
110
  */
141
- async revokeAuth() {
142
- if (this.devPortalOAuth) {
143
- return this.devPortalOAuth.revokeToken();
144
- }
145
- else if (this.mobileOAuth) {
146
- this.mobileOAuth.clearTokens();
147
- }
111
+ async updateAllDeviceData() {
112
+ await this.fetchDevices(false);
148
113
  }
149
- /**
150
- * Get all cloud devices
151
- */
152
- async getCloudDevices() {
114
+ async fetchDevices(retryGatewayErrors) {
153
115
  if (!this.oauth.isAuthenticated()) {
154
116
  throw new Error('Not authenticated. Please authenticate first.');
155
117
  }
156
- const rawDevices = await this.api.getDevices();
118
+ const rawDevices = await this.api.getDevices({ retryGatewayErrors });
157
119
  // Create or update DaikinCloudDevice instances
158
120
  this.devices = rawDevices.map(rawDevice => {
159
121
  const existingDevice = this.devices.find(d => d.getId() === rawDevice.id);
@@ -165,24 +127,6 @@ class DaikinCloudController extends node_events_1.EventEmitter {
165
127
  });
166
128
  return this.devices;
167
129
  }
168
- /**
169
- * Update all device data from the cloud
170
- */
171
- async updateAllDeviceData() {
172
- await this.getCloudDevices();
173
- }
174
- /**
175
- * Check if rate limited
176
- */
177
- isRateLimited() {
178
- return this.api.isRateLimited();
179
- }
180
- /**
181
- * Get rate limit retry time
182
- */
183
- getRateLimitRetryAfter() {
184
- return this.api.getRateLimitRetryAfter();
185
- }
186
130
  // =========================================================================
187
131
  // WebSocket methods
188
132
  // =========================================================================
@@ -193,34 +137,20 @@ class DaikinCloudController extends node_events_1.EventEmitter {
193
137
  if (!this.oauth.isAuthenticated()) {
194
138
  throw new Error('Cannot enable WebSocket: not authenticated');
195
139
  }
196
- this.websocketEnabled = true;
197
140
  await this.websocket.connect();
198
141
  }
199
142
  /**
200
143
  * Disable and disconnect WebSocket
201
144
  */
202
145
  disableWebSocket() {
203
- this.websocketEnabled = false;
204
146
  this.websocket.disconnect();
205
147
  }
206
- /**
207
- * Check if WebSocket is enabled
208
- */
209
- isWebSocketEnabled() {
210
- return this.websocketEnabled;
211
- }
212
148
  /**
213
149
  * Check if WebSocket is connected
214
150
  */
215
151
  isWebSocketConnected() {
216
152
  return this.websocket.isConnected();
217
153
  }
218
- /**
219
- * Get WebSocket connection state
220
- */
221
- getWebSocketState() {
222
- return this.websocket.getState();
223
- }
224
154
  }
225
155
  exports.DaikinCloudController = DaikinCloudController;
226
156
  //# sourceMappingURL=daikin-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daikin-controller.js","sourceRoot":"","sources":["../../../src/api/daikin-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daikin-controller.js","sourceRoot":"","sources":["../../../src/api/daikin-controller.ts"],"names":[],"mappings":"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"}
@@ -8,45 +8,18 @@
8
8
  * - Automatic token refresh
9
9
  */
10
10
  import type { TokenSet, MobileClientConfig } from './daikin-types';
11
- export declare class DaikinMobileOAuth {
11
+ import { TokenClient } from './token-client';
12
+ export declare class DaikinMobileOAuth extends TokenClient {
12
13
  private readonly config;
13
- private readonly onTokenUpdate?;
14
- private readonly onError?;
15
14
  private readonly onLog?;
16
- private tokenSet;
17
- private refreshPromise;
18
15
  private cookies;
19
- constructor(config: MobileClientConfig, onTokenUpdate?: ((tokenSet: TokenSet) => void) | undefined, onError?: ((error: Error) => void) | undefined, onLog?: ((message: string) => void) | undefined);
16
+ constructor(config: MobileClientConfig, onTokenUpdate?: (tokenSet: TokenSet) => void, onError?: (error: Error) => void, onLog?: ((message: string) => void) | undefined);
20
17
  /**
21
18
  * Authenticate with email and password using mobile app flow.
22
19
  * Returns tokens with WebSocket access and 5000/day rate limit.
23
20
  */
24
21
  authenticate(): Promise<TokenSet>;
25
- /**
26
- * Refresh the access token
27
- */
28
- refreshToken(): Promise<TokenSet>;
29
- private performRefresh;
30
- /**
31
- * Get a valid access token, refreshing if necessary
32
- */
33
- getAccessToken(): Promise<string>;
34
- /**
35
- * Check if we have a valid token
36
- */
37
- isAuthenticated(): boolean;
38
- /**
39
- * Get token expiration date
40
- */
41
- getTokenExpiration(): Date | null;
42
- /**
43
- * Get current token set (for status display)
44
- */
45
- getTokenSet(): TokenSet | null;
46
- /**
47
- * Clear stored tokens
48
- */
49
- clearTokens(): void;
22
+ protected requestTokenRefresh(refreshToken: string): Promise<TokenSet>;
50
23
  private get gigyaPostHeaders();
51
24
  private get gigyaSdkParams();
52
25
  private extractLoginToken;
@@ -58,10 +31,10 @@ export declare class DaikinMobileOAuth {
58
31
  private completePendingRegistration;
59
32
  private authorizeWithToken;
60
33
  private exchangeCodeForTokens;
61
- private setTokenSet;
62
- private loadFromFile;
63
- private saveToFile;
64
- private deleteFile;
34
+ /**
35
+ * POST a grant to the IDP token endpoint (client authenticates with HTTP Basic)
36
+ */
37
+ private requestIdpToken;
65
38
  /**
66
39
  * Network-level failures where no HTTP response was ever received. These are
67
40
  * worth retrying: a silently dropped packet, a host that is still booting its
@@ -69,18 +42,16 @@ export declare class DaikinMobileOAuth {
69
42
  */
70
43
  private static readonly RETRYABLE_ERROR_CODES;
71
44
  /**
72
- * Parse a JSON response body, reporting the endpoint and status instead of a
73
- * bare "Unexpected end of JSON input" when a proxy/WAF answers with HTML or
74
- * with nothing at all.
45
+ * Parse and validate a Gigya response. Non-JSON bodies (proxy/WAF pages)
46
+ * and unexpected shapes become readable errors instead of a SyntaxError.
75
47
  */
76
- private parseJsonResponse;
48
+ private parseGigyaResponse;
77
49
  private isRetryableNetworkError;
78
50
  /**
79
51
  * Turn a bare socket error into something a user can act on. The generic
80
52
  * "timed out after 30000ms" gave no hint about which host was unreachable.
81
53
  */
82
54
  private describeNetworkError;
83
- private sleep;
84
55
  /**
85
56
  * Perform a request, retrying transient network failures with exponential backoff.
86
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"daikin-mobile-oauth.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-mobile-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA2BnE,qBAAa,iBAAiB;IAMtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAR7B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,OAAO,CAAM;gBAGE,MAAM,EAAE,kBAAkB,EAC1B,aAAa,CAAC,GAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,aAAA,EAC5C,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,aAAA,EAChC,KAAK,CAAC,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,aAAA;IAKxD;;;SAGK;IACC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;IAsBvC;;SAEK;IACC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;YAqBzB,cAAc;IAiC5B;;SAEK;IACC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAmBvC;;SAEK;IACL,eAAe,IAAI,OAAO;IAI1B;;SAEK;IACL,kBAAkB,IAAI,IAAI,GAAG,IAAI;IAOjC;;SAEK;IACL,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B;;SAEK;IACL,WAAW,IAAI,IAAI;IASnB,OAAO,KAAK,gBAAgB,GAO3B;IAED,OAAO,KAAK,cAAc,GAYzB;IAED,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,YAAY;YAMN,cAAc;YA2Bd,YAAY;IAwC1B,OAAO,CAAC,mBAAmB;YAqBb,UAAU;YAmCV,2BAA2B;YA0D3B,kBAAkB;YAmClB,qBAAqB;IAuCnC,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,UAAU;IAQlB;;;;SAIK;IACL,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAU1C;IAEH;;;;SAIK;IACL,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,uBAAuB;IAI/B;;;SAGK;IACL,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,KAAK;IAIb;;SAEK;YACS,YAAY;IAuB1B,OAAO,CAAC,mBAAmB;CAO5B"}
1
+ {"version":3,"file":"daikin-mobile-oauth.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-mobile-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AASnE,OAAO,EAAE,WAAW,EAAqC,MAAM,gBAAgB,CAAC;AAUhF,qBAAa,iBAAkB,SAAQ,WAAW;IAI1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAGvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAN7B,OAAO,CAAC,OAAO,CAAM;gBAGE,MAAM,EAAE,kBAAkB,EAC3C,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,EAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EACf,KAAK,CAAC,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,aAAA;IAKxD;;;SAGK;IACC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;cAqBvB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAY5E,OAAO,KAAK,gBAAgB,GAO3B;IAED,OAAO,KAAK,cAAc,GAYzB;IAED,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,YAAY;YAMN,cAAc;YA2Bd,YAAY;IAwC1B,OAAO,CAAC,mBAAmB;YAqBb,UAAU;YAiCV,2BAA2B;YA0D3B,kBAAkB;YAmClB,qBAAqB;IAUnC;;SAEK;YACS,eAAe;IAwB7B;;;;SAIK;IACL,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAU1C;IAEH;;;SAGK;IACL,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,uBAAuB;IAI/B;;;SAGK;IACL,OAAO,CAAC,oBAAoB;IAgB5B;;SAEK;YACS,YAAY;IAuB1B,OAAO,CAAC,mBAAmB;CAO5B"}