@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
@@ -14,11 +14,16 @@ const ws_1 = __importDefault(require("ws"));
14
14
  const node_events_1 = require("node:events");
15
15
  const constants_1 = require("../constants");
16
16
  const http_defaults_1 = require("./http-defaults");
17
+ const errors_1 = require("../utils/errors");
17
18
  // Reconnection settings
18
19
  const INITIAL_RECONNECT_DELAY = 1000; // 1 second
19
20
  const MAX_RECONNECT_DELAY = 300000; // 5 minutes
20
21
  const RECONNECT_BACKOFF_MULTIPLIER = 2;
21
22
  const MAX_RECONNECT_ATTEMPTS = 50; // Give up after 50 consecutive failures
23
+ const RECONNECT_JITTER_RATIO = 0.25; // ±25% randomisation so many clients don't reconnect in lockstep
24
+ // A connection must stay open this long before the backoff is reset; a server that accepts
25
+ // and immediately drops the socket must not cause a tight reconnect loop.
26
+ const STABLE_CONNECTION_MS = 60000;
22
27
  // Heartbeat settings
23
28
  const PING_INTERVAL = 30000; // 30 seconds
24
29
  const PONG_TIMEOUT = 10000; // 10 seconds to receive pong
@@ -44,6 +49,7 @@ class DaikinWebSocket extends node_events_1.EventEmitter {
44
49
  pongTimeout = null;
45
50
  shouldReconnect = true;
46
51
  connectionAttempts = 0;
52
+ stableConnectionTimeout = null;
47
53
  constructor(oauth, onError) {
48
54
  super();
49
55
  this.oauth = oauth;
@@ -97,7 +103,7 @@ class DaikinWebSocket extends node_events_1.EventEmitter {
97
103
  this.setupEventHandlers();
98
104
  }
99
105
  catch (error) {
100
- this.handleError(error);
106
+ this.handleError(error instanceof Error ? error : new Error((0, errors_1.toMessage)(error)));
101
107
  this.scheduleReconnect();
102
108
  }
103
109
  }
@@ -110,8 +116,12 @@ class DaikinWebSocket extends node_events_1.EventEmitter {
110
116
  }
111
117
  this.ws.on('open', () => {
112
118
  this.state = 'connected';
113
- this.reconnectDelay = INITIAL_RECONNECT_DELAY;
114
- this.connectionAttempts = 0;
119
+ this.clearStableConnectionTimeout();
120
+ this.stableConnectionTimeout = setTimeout(() => {
121
+ this.stableConnectionTimeout = null;
122
+ this.reconnectDelay = INITIAL_RECONNECT_DELAY;
123
+ this.connectionAttempts = 0;
124
+ }, STABLE_CONNECTION_MS);
115
125
  this.startHeartbeat();
116
126
  this.emit('connected');
117
127
  });
@@ -129,40 +139,41 @@ class DaikinWebSocket extends node_events_1.EventEmitter {
129
139
  });
130
140
  }
131
141
  /**
132
- * Handle incoming WebSocket messages
142
+ * Handle incoming WebSocket messages. Anything that is not valid JSON or does
143
+ * not have the minimal expected shape is ignored.
133
144
  */
134
145
  handleMessage(data) {
146
+ let message;
135
147
  try {
136
- const message = JSON.parse(data.toString());
137
- // Check for error messages
138
- if (message.message === 'Internal server error') {
139
- // Ignore internal server errors for invalid message formats
148
+ message = JSON.parse(data.toString());
149
+ }
150
+ catch {
151
+ return;
152
+ }
153
+ if (!isRecord(message) || !isRecord(message.data) || typeof message.data.name !== 'string') {
154
+ return;
155
+ }
156
+ if (message.event === 'gateway:managementpoint:characteristic') {
157
+ if (typeof message.gatewayDeviceId !== 'string' || typeof message.embeddedId !== 'string') {
140
158
  return;
141
159
  }
142
- // Handle gateway device characteristic updates
143
- if (message.event === 'gateway:managementpoint:characteristic') {
144
- const event = message;
145
- this.emit('device_update', {
146
- deviceId: event.gatewayDeviceId,
147
- embeddedId: event.embeddedId,
148
- managementPointId: event.managementPointId,
149
- characteristicName: event.data.name,
150
- data: event.data,
151
- });
152
- }
153
- // Handle group characteristic updates (alternative event format)
154
- if (message.event === 'group:characteristic') {
155
- const event = message;
156
- this.emit('group_update', {
157
- groupId: event.groupId,
158
- siteId: event.siteId,
159
- characteristicName: event.data.name,
160
- data: event.data,
161
- });
162
- }
160
+ const event = message;
161
+ this.emit('device_update', {
162
+ deviceId: event.gatewayDeviceId,
163
+ embeddedId: event.embeddedId,
164
+ managementPointId: event.managementPointId,
165
+ characteristicName: event.data.name,
166
+ data: event.data,
167
+ });
163
168
  }
164
- catch (error) {
165
- // Ignore parse errors for non-JSON messages
169
+ else if (message.event === 'group:characteristic') {
170
+ const event = message;
171
+ this.emit('group_update', {
172
+ groupId: event.groupId,
173
+ siteId: event.siteId,
174
+ characteristicName: event.data.name,
175
+ data: event.data,
176
+ });
166
177
  }
167
178
  }
168
179
  /**
@@ -204,16 +215,17 @@ class DaikinWebSocket extends node_events_1.EventEmitter {
204
215
  this.emit('disconnected', { reconnecting: false });
205
216
  return;
206
217
  }
218
+ const jitter = 1 + (Math.random() * 2 - 1) * RECONNECT_JITTER_RATIO;
207
219
  this.reconnectTimeout = setTimeout(async () => {
208
220
  this.reconnectTimeout = null;
209
221
  try {
210
222
  await this.establishConnection();
211
223
  }
212
224
  catch (error) {
213
- this.handleError(error);
225
+ this.handleError(error instanceof Error ? error : new Error((0, errors_1.toMessage)(error)));
214
226
  this.scheduleReconnect();
215
227
  }
216
- }, this.reconnectDelay);
228
+ }, Math.round(this.reconnectDelay * jitter));
217
229
  // Exponential backoff with max delay
218
230
  this.reconnectDelay = Math.min(this.reconnectDelay * RECONNECT_BACKOFF_MULTIPLIER, MAX_RECONNECT_DELAY);
219
231
  }
@@ -260,18 +272,31 @@ class DaikinWebSocket extends node_events_1.EventEmitter {
260
272
  this.pongTimeout = null;
261
273
  }
262
274
  }
275
+ clearStableConnectionTimeout() {
276
+ if (this.stableConnectionTimeout) {
277
+ clearTimeout(this.stableConnectionTimeout);
278
+ this.stableConnectionTimeout = null;
279
+ }
280
+ }
263
281
  /**
264
282
  * Clean up resources
265
283
  */
266
284
  cleanup() {
267
285
  this.stopHeartbeat();
286
+ this.clearStableConnectionTimeout();
268
287
  if (this.reconnectTimeout) {
269
288
  clearTimeout(this.reconnectTimeout);
270
289
  this.reconnectTimeout = null;
271
290
  }
272
291
  if (this.ws) {
273
292
  this.ws.removeAllListeners();
274
- if (this.ws.readyState === ws_1.default.OPEN || this.ws.readyState === ws_1.default.CONNECTING) {
293
+ // Closing a CONNECTING socket aborts the handshake and emits 'error' asynchronously;
294
+ // without a listener that would be an uncaught exception.
295
+ this.ws.on('error', () => { });
296
+ if (this.ws.readyState === ws_1.default.CONNECTING) {
297
+ this.ws.terminate();
298
+ }
299
+ else if (this.ws.readyState === ws_1.default.OPEN) {
275
300
  this.ws.close();
276
301
  }
277
302
  this.ws = null;
@@ -279,4 +304,7 @@ class DaikinWebSocket extends node_events_1.EventEmitter {
279
304
  }
280
305
  }
281
306
  exports.DaikinWebSocket = DaikinWebSocket;
307
+ function isRecord(value) {
308
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
309
+ }
282
310
  //# sourceMappingURL=daikin-websocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daikin-websocket.js","sourceRoot":"","sources":["../../../src/api/daikin-websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daikin-websocket.js","sourceRoot":"","sources":["../../../src/api/daikin-websocket.ts"],"names":[],"mappings":"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"}
@@ -22,9 +22,10 @@ export declare const DAIKIN_TLS_CIPHERS: string;
22
22
  * Apply the shared User-Agent and TLS fingerprint defaults to the options of
23
23
  * an https.request (or ws) call. Explicit options and headers win.
24
24
  */
25
- export declare function withHttpDefaults<T extends {
25
+ export declare function withHttpDefaults<T extends object>(options: T & {
26
26
  headers?: OutgoingHttpHeaders;
27
- }>(options: T): T & {
27
+ }): T & {
28
+ headers: OutgoingHttpHeaders;
28
29
  autoSelectFamily: boolean;
29
30
  ciphers: string;
30
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"http-defaults.d.ts","sourceRoot":"","sources":["../../../src/api/http-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAGhD,eAAO,MAAM,iBAAiB,QAAmD,CAAC;AAClF,eAAO,MAAM,kBAAkB,QAA8C,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,EAC1E,OAAO,EAAE,CAAC,GACT,CAAC,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAYpD"}
1
+ {"version":3,"file":"http-defaults.d.ts","sourceRoot":"","sources":["../../../src/api/http-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAGhD,eAAO,MAAM,iBAAiB,QAAmD,CAAC;AAClF,eAAO,MAAM,kBAAkB,QAA8C,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,GAC7C,CAAC,GAAG;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAYlF"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-defaults.js","sourceRoot":"","sources":["../../../src/api/http-defaults.ts"],"names":[],"mappings":";;;AA2BA,4CAcC;AAtBD,0EAA0E;AAC7D,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,eAAe,CAAC;AACrE,QAAA,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;AAE9E;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,OAAU;IAEV,OAAO;QACL,mEAAmE;QACnE,2DAA2D;QAC3D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,0BAAkB;QAC3B,GAAG,OAAO;QACV,OAAO,EAAE;YACP,YAAY,EAAE,yBAAiB;YAC/B,GAAG,OAAO,CAAC,OAAO;SACnB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"http-defaults.js","sourceRoot":"","sources":["../../../src/api/http-defaults.ts"],"names":[],"mappings":";;;AA2BA,4CAcC;AAtBD,0EAA0E;AAC7D,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,eAAe,CAAC;AACrE,QAAA,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;AAE9E;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,OAA8C;IAE9C,OAAO;QACL,mEAAmE;QACnE,2DAA2D;QAC3D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,0BAAkB;QAC3B,GAAG,OAAO;QACV,OAAO,EAAE;YACP,YAAY,EAAE,yBAAiB;YAC/B,GAAG,OAAO,CAAC,OAAO;SACnB;KACF,CAAC;AACJ,CAAC"}
@@ -12,8 +12,10 @@
12
12
  *
13
13
  * The curl transport keeps secrets off the command line: URL, headers and
14
14
  * body travel via a 0600 config file in a private temp dir (argv is visible
15
- * to every process on the host via ps). curl exit codes are mapped onto
16
- * Node-style error codes so the callers' retry logic works unchanged.
15
+ * to every process on the host via ps). curl runs with -q so the user's
16
+ * ~/.curlrc cannot inject options, and with proto "=https" so it can never
17
+ * fall back to plain HTTP. curl exit codes are mapped onto Node-style error
18
+ * codes so the callers' retry logic works unchanged.
17
19
  */
18
20
  export type HttpTransportMode = 'node' | 'curl';
19
21
  export interface TransportOptions {
@@ -32,6 +34,16 @@ export declare function getHttpTransportMode(): HttpTransportMode;
32
34
  * Perform an HTTPS request through the configured transport.
33
35
  */
34
36
  export declare function httpRequest(url: string, options: TransportOptions, postData?: string): Promise<TransportResponse>;
37
+ /**
38
+ * Escape a value for a double-quoted curl config entry.
39
+ *
40
+ * A config entry ends at the line break, so a CR/LF in a value (e.g. from a
41
+ * cloud-supplied id interpolated into a URL or header) would let it inject
42
+ * arbitrary curl options such as `output` or `upload-file`. NUL truncates the
43
+ * entry. Such values are never legitimate in a URL or header, so reject them.
44
+ */
45
+ export declare function curlQuote(value: string): string;
46
+ export declare function buildCurlConfig(url: string, options: TransportOptions, bodyFile: string | undefined): string;
35
47
  /**
36
48
  * Parse `curl --include` output: one or more header blocks (interim 1xx or
37
49
  * proxy CONNECT responses precede the final one) followed by the body.
@@ -1 +1 @@
1
- {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/api/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;CAChB;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAMhF;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAK5B;AAiJD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAgBhE"}
1
+ {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/api/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;CAChB;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAMhF;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAK5B;AAgED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,CAsBR;AA0DD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAgBhE"}
@@ -13,8 +13,10 @@
13
13
  *
14
14
  * The curl transport keeps secrets off the command line: URL, headers and
15
15
  * body travel via a 0600 config file in a private temp dir (argv is visible
16
- * to every process on the host via ps). curl exit codes are mapped onto
17
- * Node-style error codes so the callers' retry logic works unchanged.
16
+ * to every process on the host via ps). curl runs with -q so the user's
17
+ * ~/.curlrc cannot inject options, and with proto "=https" so it can never
18
+ * fall back to plain HTTP. curl exit codes are mapped onto Node-style error
19
+ * codes so the callers' retry logic works unchanged.
18
20
  */
19
21
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
22
  if (k2 === undefined) k2 = k;
@@ -53,6 +55,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
53
55
  exports.configureHttpTransport = configureHttpTransport;
54
56
  exports.getHttpTransportMode = getHttpTransportMode;
55
57
  exports.httpRequest = httpRequest;
58
+ exports.curlQuote = curlQuote;
59
+ exports.buildCurlConfig = buildCurlConfig;
56
60
  exports.parseCurlResponse = parseCurlResponse;
57
61
  const https = __importStar(require("node:https"));
58
62
  const fs = __importStar(require("node:fs"));
@@ -135,13 +139,25 @@ const CURL_EXIT_CODES = {
135
139
  55: 'EPIPE', // send failure
136
140
  56: 'ECONNRESET', // receive failure
137
141
  };
138
- /** Escape a value for a double-quoted curl config entry. */
142
+ /**
143
+ * Escape a value for a double-quoted curl config entry.
144
+ *
145
+ * A config entry ends at the line break, so a CR/LF in a value (e.g. from a
146
+ * cloud-supplied id interpolated into a URL or header) would let it inject
147
+ * arbitrary curl options such as `output` or `upload-file`. NUL truncates the
148
+ * entry. Such values are never legitimate in a URL or header, so reject them.
149
+ */
139
150
  function curlQuote(value) {
151
+ if (/[\r\n\0]/.test(value)) {
152
+ throw new Error('Refusing to pass a value containing CR, LF or NUL to curl');
153
+ }
140
154
  return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
141
155
  }
142
156
  function buildCurlConfig(url, options, bodyFile) {
143
157
  const timeoutSecs = Math.ceil((options.timeoutMs ?? constants_1.HTTP_REQUEST_TIMEOUT_MS) / 1000);
144
158
  const lines = [
159
+ // Only ever speak HTTPS, whatever the URL or a redirect says
160
+ 'proto = "=https"',
145
161
  `url = ${curlQuote(url)}`,
146
162
  `request = ${curlQuote(options.method)}`,
147
163
  `max-time = ${timeoutSecs}`,
@@ -163,15 +179,22 @@ function buildCurlConfig(url, options, bodyFile) {
163
179
  function curlRequest(url, options, postData) {
164
180
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'daikin-curl-'));
165
181
  const configFile = path.join(tempDir, 'request.conf');
166
- let bodyFile;
167
- if (postData !== undefined) {
168
- bodyFile = path.join(tempDir, 'body');
169
- fs.writeFileSync(bodyFile, postData, { mode: 0o600 });
182
+ try {
183
+ let bodyFile;
184
+ if (postData !== undefined) {
185
+ bodyFile = path.join(tempDir, 'body');
186
+ fs.writeFileSync(bodyFile, postData, { mode: 0o600 });
187
+ }
188
+ fs.writeFileSync(configFile, buildCurlConfig(url, options, bodyFile), { mode: 0o600 });
189
+ }
190
+ catch (error) {
191
+ fs.rmSync(tempDir, { recursive: true, force: true });
192
+ return Promise.reject(error);
170
193
  }
171
- fs.writeFileSync(configFile, buildCurlConfig(url, options, bodyFile), { mode: 0o600 });
172
194
  const timeoutMs = (options.timeoutMs ?? constants_1.HTTP_REQUEST_TIMEOUT_MS) + 5000;
173
195
  return new Promise((resolve, reject) => {
174
- (0, node_child_process_1.execFile)('curl', ['--config', configFile], { timeout: timeoutMs, maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => {
196
+ // -q must come first: it stops curl from reading ~/.curlrc
197
+ (0, node_child_process_1.execFile)('curl', ['-q', '--config', configFile], { timeout: timeoutMs, maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => {
175
198
  if (error) {
176
199
  reject(describeCurlError(error, stderr));
177
200
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/api/http-transport.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,wDAMC;AAED,oDAEC;AAKD,kCASC;AAsJD,8CAgBC;AAzND,kDAAoC;AACpC,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAClC,2DAA8C;AAC9C,mDAAmD;AACnD,4CAAuD;AAgBvD,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAsD,CAAC;AACpF,IAAI,cAAc,GAAsB,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAE9E,SAAgB,sBAAsB,CAAC,IAAmC;IACxE,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/C,cAAc,GAAG,QAAQ,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,GAAW,EACX,OAAyB,EACzB,QAAiB;IAEjB,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,WAAW,CAClB,GAAW,EACX,OAAyB,EACzB,QAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,mCAAuB,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAA,gCAAgB,EAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM;YACrC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,OAAO;gBAClB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClF;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5C,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YACzC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;gBAC1B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC;gBAC/B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;YAC7B,MAAM,YAAY,GAA0B,IAAI,KAAK,CAAC,qBAAqB,SAAS,IAAI,CAAC,CAAC;YAC1F,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,iFAAiF;AACjF,MAAM,eAAe,GAA2B;IAC9C,CAAC,EAAE,WAAW,EAAK,yBAAyB;IAC5C,CAAC,EAAE,cAAc,EAAE,oBAAoB;IACvC,EAAE,EAAE,WAAW,EAAI,sBAAsB;IACzC,EAAE,EAAE,YAAY,EAAG,oBAAoB;IACvC,EAAE,EAAE,YAAY,EAAG,0BAA0B;IAC7C,EAAE,EAAE,OAAO,EAAQ,eAAe;IAClC,EAAE,EAAE,YAAY,EAAG,kBAAkB;CACtC,CAAC;AAEF,4DAA4D;AAC5D,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,eAAe,CACtB,GAAW,EACX,OAAyB,EACzB,QAA4B;IAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,mCAAuB,CAAC,GAAG,IAAI,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG;QACZ,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE;QACzB,aAAa,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxC,cAAc,WAAW,EAAE;QAC3B,QAAQ;QACR,YAAY;QACZ,SAAS;KACV,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAA,gCAAgB,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACxG,4EAA4E;QAC5E,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,gBAAgB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,YAAY,SAAS,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAClB,GAAW,EACX,OAAyB,EACzB,QAAiB;IAEjB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAE,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,QAA4B,CAAC;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvF,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,mCAAuB,CAAC,GAAG,IAAI,CAAC;IACxE,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxD,IAAA,6BAAQ,EAAC,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAC5F,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,iBAAiB,CAAC,KAA2D,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/F,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,CAAC,UAAU,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAyD,EACzD,MAAc;IAEd,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAClB,IAAI,KAAK,CAAC,kFAAkF,CAAC,EAC7F,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,GAAG,GAA0B,IAAI,KAAK,CAC1C,cAAc,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CACvG,CAAC;IACF,GAAG,CAAC,IAAI,GAAG,MAAM,IAAI,OAAO,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,SAAS,CAAC;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACjF,SAAS,CAAC,mDAAmD;QAC/D,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,OAAO,GAAkD,EAAE,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxD,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/api/http-transport.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,wDAMC;AAED,oDAEC;AAKD,kCASC;AAwED,8BAKC;AAED,0CA0BC;AA+DD,8CAgBC;AA3OD,kDAAoC;AACpC,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAClC,2DAA8C;AAC9C,mDAAmD;AACnD,4CAAuD;AAgBvD,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAsD,CAAC;AACpF,IAAI,cAAc,GAAsB,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAE9E,SAAgB,sBAAsB,CAAC,IAAmC;IACxE,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/C,cAAc,GAAG,QAAQ,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,GAAW,EACX,OAAyB,EACzB,QAAiB;IAEjB,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,WAAW,CAClB,GAAW,EACX,OAAyB,EACzB,QAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,mCAAuB,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAA,gCAAgB,EAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM;YACrC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,OAAO;gBAClB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClF;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5C,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YACzC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;gBAC1B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC;gBAC/B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;YAC7B,MAAM,YAAY,GAA0B,IAAI,KAAK,CAAC,qBAAqB,SAAS,IAAI,CAAC,CAAC;YAC1F,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,iFAAiF;AACjF,MAAM,eAAe,GAA2B;IAC9C,CAAC,EAAE,WAAW,EAAK,yBAAyB;IAC5C,CAAC,EAAE,cAAc,EAAE,oBAAoB;IACvC,EAAE,EAAE,WAAW,EAAI,sBAAsB;IACzC,EAAE,EAAE,YAAY,EAAG,oBAAoB;IACvC,EAAE,EAAE,YAAY,EAAG,0BAA0B;IAC7C,EAAE,EAAE,OAAO,EAAQ,eAAe;IAClC,EAAE,EAAE,YAAY,EAAG,kBAAkB;CACtC,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AAED,SAAgB,eAAe,CAC7B,GAAW,EACX,OAAyB,EACzB,QAA4B;IAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,mCAAuB,CAAC,GAAG,IAAI,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG;QACZ,6DAA6D;QAC7D,kBAAkB;QAClB,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE;QACzB,aAAa,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxC,cAAc,WAAW,EAAE;QAC3B,QAAQ;QACR,YAAY;QACZ,SAAS;KACV,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAA,gCAAgB,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACxG,4EAA4E;QAC5E,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,gBAAgB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,YAAY,SAAS,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAClB,GAAW,EACX,OAAyB,EACzB,QAAiB;IAEjB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,IAAI,QAA4B,CAAC;QACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,mCAAuB,CAAC,GAAG,IAAI,CAAC;IACxE,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxD,2DAA2D;QAC3D,IAAA,6BAAQ,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAClG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,iBAAiB,CAAC,KAA2D,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/F,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,CAAC,UAAU,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAyD,EACzD,MAAc;IAEd,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAClB,IAAI,KAAK,CAAC,kFAAkF,CAAC,EAC7F,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,GAAG,GAA0B,IAAI,KAAK,CAC1C,cAAc,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CACvG,CAAC;IACF,GAAG,CAAC,IAAI,GAAG,MAAM,IAAI,OAAO,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,SAAS,CAAC;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACjF,SAAS,CAAC,mDAAmD;QAC/D,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,OAAO,GAAkD,EAAE,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxD,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Token Client
3
+ *
4
+ * Token lifecycle shared by both OAuth flows (Developer Portal and Mobile
5
+ * App): persistence to the token file, expiry checks with a refresh buffer,
6
+ * single-flight refresh, and strict parsing of token endpoint responses.
7
+ */
8
+ import type { OAuthProvider, TokenSet } from './daikin-types';
9
+ import type { TransportResponse } from './http-transport';
10
+ type ResponseLike = Pick<TransportResponse, 'statusCode' | 'body'>;
11
+ /**
12
+ * Return a copy of the token set with `expires_at` derived from `expires_in`
13
+ * when the server only sent the relative lifetime.
14
+ */
15
+ export declare function withExpiresAt(tokenSet: TokenSet): TokenSet;
16
+ /**
17
+ * Whether the token is expired or expires within TOKEN_EXPIRY_BUFFER_SECONDS.
18
+ * A token without `expires_at` is treated as expired.
19
+ */
20
+ export declare function isTokenExpiring(tokenSet: TokenSet): boolean;
21
+ /**
22
+ * Parse a JSON response body, reporting the endpoint and status instead of a
23
+ * bare "Unexpected token <" when a proxy/WAF answers with HTML or nothing.
24
+ */
25
+ export declare function parseJsonBody(response: ResponseLike, url: string, context: string): unknown;
26
+ /**
27
+ * Validate a token endpoint response: OAuth error bodies, non-2xx statuses and
28
+ * malformed token sets all become errors with a readable message. The message
29
+ * keeps the OAuth error code (e.g. `invalid_grant`), which callers match on.
30
+ * Token values are never included.
31
+ */
32
+ export declare function parseTokenResponse(response: ResponseLike, url: string, context: string): TokenSet;
33
+ /**
34
+ * Base class holding the current token set and its refresh logic. Subclasses
35
+ * implement only the grant-specific refresh request.
36
+ */
37
+ export declare abstract class TokenClient implements OAuthProvider {
38
+ private readonly tokenFilePath;
39
+ private readonly onTokenUpdate?;
40
+ private readonly onError?;
41
+ protected tokenSet: TokenSet | null;
42
+ private refreshPromise;
43
+ protected constructor(tokenFilePath: string, onTokenUpdate?: ((tokenSet: TokenSet) => void) | undefined, onError?: ((error: Error) => void) | undefined);
44
+ /**
45
+ * Exchange a refresh token for a new token set at the provider.
46
+ */
47
+ protected abstract requestTokenRefresh(refreshToken: string): Promise<TokenSet>;
48
+ /**
49
+ * Refresh the access token. Concurrent callers share one in-flight request;
50
+ * a failed refresh is not cached, so the next call retries.
51
+ */
52
+ refreshToken(): Promise<TokenSet>;
53
+ /**
54
+ * Get a valid access token, refreshing if necessary
55
+ */
56
+ getAccessToken(): Promise<string>;
57
+ /**
58
+ * Check if we have a token (it may still need a refresh)
59
+ */
60
+ isAuthenticated(): boolean;
61
+ /**
62
+ * Get token expiration date
63
+ */
64
+ getTokenExpiration(): Date | null;
65
+ /**
66
+ * Get current token set (for status display)
67
+ */
68
+ getTokenSet(): TokenSet | null;
69
+ /**
70
+ * Forget the current tokens and delete the token file
71
+ */
72
+ clearTokens(): void;
73
+ /**
74
+ * Store a new token set (in memory and on disk) and notify listeners.
75
+ * Returns the stored set, with `expires_at` filled in.
76
+ */
77
+ protected setTokenSet(tokenSet: TokenSet): TokenSet;
78
+ private loadFromFile;
79
+ private saveToFile;
80
+ }
81
+ export {};
82
+ //# sourceMappingURL=token-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-client.d.ts","sourceRoot":"","sources":["../../../src/api/token-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,KAAK,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC;AAMnE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAK1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAW3F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAwBjG;AAED;;;GAGG;AACH,8BAAsB,WAAY,YAAW,aAAa;IAKtD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAN3B,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAC3C,OAAO,CAAC,cAAc,CAAkC;IAExD,SAAS,aACU,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,GAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,aAAA,EAC5C,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,aAAA;IAKnD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE/E;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;IAkBjC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBvC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,kBAAkB,IAAI,IAAI,GAAG,IAAI;IAOjC;;OAEG;IACH,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IAQnD,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,UAAU;CAOnB"}