@mp-consulting/homebridge-daikin-cloud 1.5.2 → 1.6.1
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.
- package/README.md +40 -27
- package/config.schema.json +66 -12
- package/dist/src/accessories/air-conditioning-accessory.js +1 -1
- package/dist/src/accessories/air-conditioning-accessory.js.map +1 -1
- package/dist/src/accessories/altherma-accessory.js +1 -1
- package/dist/src/accessories/altherma-accessory.js.map +1 -1
- package/dist/src/accessories/base-accessory.d.ts +5 -4
- package/dist/src/accessories/base-accessory.d.ts.map +1 -1
- package/dist/src/accessories/base-accessory.js +9 -10
- package/dist/src/accessories/base-accessory.js.map +1 -1
- package/dist/src/api/daikin-api.d.ts +22 -6
- package/dist/src/api/daikin-api.d.ts.map +1 -1
- package/dist/src/api/daikin-api.js +49 -23
- package/dist/src/api/daikin-api.js.map +1 -1
- package/dist/src/api/daikin-controller.d.ts +4 -48
- package/dist/src/api/daikin-controller.d.ts.map +1 -1
- package/dist/src/api/daikin-controller.js +14 -84
- package/dist/src/api/daikin-controller.js.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.d.ts +11 -40
- package/dist/src/api/daikin-mobile-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.js +36 -160
- package/dist/src/api/daikin-mobile-oauth.js.map +1 -1
- package/dist/src/api/daikin-oauth.d.ts +10 -37
- package/dist/src/api/daikin-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-oauth.js +36 -166
- package/dist/src/api/daikin-oauth.js.map +1 -1
- package/dist/src/api/daikin-schemas.d.ts +20 -22
- package/dist/src/api/daikin-schemas.d.ts.map +1 -1
- package/dist/src/api/daikin-schemas.js +17 -49
- package/dist/src/api/daikin-schemas.js.map +1 -1
- package/dist/src/api/daikin-types.d.ts +11 -23
- package/dist/src/api/daikin-types.d.ts.map +1 -1
- package/dist/src/api/daikin-types.js.map +1 -1
- package/dist/src/api/daikin-websocket.d.ts +4 -5
- package/dist/src/api/daikin-websocket.d.ts.map +1 -1
- package/dist/src/api/daikin-websocket.js +62 -34
- package/dist/src/api/daikin-websocket.js.map +1 -1
- package/dist/src/api/http-defaults.d.ts +3 -2
- package/dist/src/api/http-defaults.d.ts.map +1 -1
- package/dist/src/api/http-defaults.js.map +1 -1
- package/dist/src/api/http-transport.d.ts +14 -2
- package/dist/src/api/http-transport.d.ts.map +1 -1
- package/dist/src/api/http-transport.js +32 -9
- package/dist/src/api/http-transport.js.map +1 -1
- package/dist/src/api/token-client.d.ts +82 -0
- package/dist/src/api/token-client.d.ts.map +1 -0
- package/dist/src/api/token-client.js +188 -0
- package/dist/src/api/token-client.js.map +1 -0
- package/dist/src/api/token-storage.d.ts +6 -0
- package/dist/src/api/token-storage.d.ts.map +1 -1
- package/dist/src/api/token-storage.js +27 -1
- package/dist/src/api/token-storage.js.map +1 -1
- package/dist/src/config/config-manager.d.ts +69 -125
- package/dist/src/config/config-manager.d.ts.map +1 -1
- package/dist/src/config/config-manager.js +288 -225
- package/dist/src/config/config-manager.js.map +1 -1
- package/dist/src/constants/api.constants.d.ts +6 -0
- package/dist/src/constants/api.constants.d.ts.map +1 -1
- package/dist/src/constants/api.constants.js +7 -1
- package/dist/src/constants/api.constants.js.map +1 -1
- package/dist/src/constants/auth.constants.d.ts +11 -0
- package/dist/src/constants/auth.constants.d.ts.map +1 -1
- package/dist/src/constants/auth.constants.js +12 -1
- package/dist/src/constants/auth.constants.js.map +1 -1
- package/dist/src/constants/device.constants.d.ts +1 -7
- package/dist/src/constants/device.constants.d.ts.map +1 -1
- package/dist/src/constants/device.constants.js +2 -11
- package/dist/src/constants/device.constants.js.map +1 -1
- package/dist/src/constants/time.constants.d.ts +0 -2
- package/dist/src/constants/time.constants.d.ts.map +1 -1
- package/dist/src/constants/time.constants.js +1 -3
- package/dist/src/constants/time.constants.js.map +1 -1
- package/dist/src/device/accessory-factory.d.ts +0 -5
- package/dist/src/device/accessory-factory.d.ts.map +1 -1
- package/dist/src/device/accessory-factory.js +0 -7
- package/dist/src/device/accessory-factory.js.map +1 -1
- package/dist/src/device/capability-detector.d.ts +9 -1
- package/dist/src/device/capability-detector.d.ts.map +1 -1
- package/dist/src/device/capability-detector.js +32 -28
- package/dist/src/device/capability-detector.js.map +1 -1
- package/dist/src/device/capability-docs.d.ts.map +1 -1
- package/dist/src/device/capability-docs.js +3 -0
- package/dist/src/device/capability-docs.js.map +1 -1
- package/dist/src/device/data-paths.d.ts +18 -0
- package/dist/src/device/data-paths.d.ts.map +1 -0
- package/dist/src/device/data-paths.js +20 -0
- package/dist/src/device/data-paths.js.map +1 -0
- package/dist/src/device/profiles/device-profile.d.ts +0 -5
- package/dist/src/device/profiles/device-profile.d.ts.map +1 -1
- package/dist/src/device/profiles/device-profile.js +0 -21
- package/dist/src/device/profiles/device-profile.js.map +1 -1
- package/dist/src/features/base-feature.d.ts +53 -9
- package/dist/src/features/base-feature.d.ts.map +1 -1
- package/dist/src/features/base-feature.js +93 -40
- package/dist/src/features/base-feature.js.map +1 -1
- package/dist/src/features/feature-manager.d.ts +27 -15
- package/dist/src/features/feature-manager.d.ts.map +1 -1
- package/dist/src/features/feature-manager.js +27 -24
- package/dist/src/features/feature-manager.js.map +1 -1
- package/dist/src/features/index.d.ts +1 -0
- package/dist/src/features/index.d.ts.map +1 -1
- package/dist/src/features/index.js +1 -0
- package/dist/src/features/index.js.map +1 -1
- package/dist/src/features/modes/auto-fan-mode.feature.d.ts +16 -10
- package/dist/src/features/modes/auto-fan-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/auto-fan-mode.feature.js +16 -40
- package/dist/src/features/modes/auto-fan-mode.feature.js.map +1 -1
- package/dist/src/features/modes/dry-operation-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/dry-operation-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/dry-operation-mode.feature.js +11 -30
- package/dist/src/features/modes/dry-operation-mode.feature.js.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/econo-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.js +11 -31
- package/dist/src/features/modes/econo-mode.feature.js.map +1 -1
- package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/fan-only-operation-mode.feature.js +11 -30
- package/dist/src/features/modes/fan-only-operation-mode.feature.js.map +1 -1
- package/dist/src/features/modes/firmware-update.feature.d.ts +7 -6
- package/dist/src/features/modes/firmware-update.feature.d.ts.map +1 -1
- package/dist/src/features/modes/firmware-update.feature.js +15 -22
- package/dist/src/features/modes/firmware-update.feature.js.map +1 -1
- package/dist/src/features/modes/holiday-mode.feature.d.ts +2 -1
- package/dist/src/features/modes/holiday-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/holiday-mode.feature.js +5 -15
- package/dist/src/features/modes/holiday-mode.feature.js.map +1 -1
- package/dist/src/features/modes/indoor-silent-mode.feature.d.ts +15 -12
- package/dist/src/features/modes/indoor-silent-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/indoor-silent-mode.feature.js +15 -39
- package/dist/src/features/modes/indoor-silent-mode.feature.js.map +1 -1
- package/dist/src/features/modes/oscillation-mode.feature.d.ts +5 -6
- package/dist/src/features/modes/oscillation-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/oscillation-mode.feature.js +14 -36
- package/dist/src/features/modes/oscillation-mode.feature.js.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.js +11 -31
- package/dist/src/features/modes/outdoor-silent-mode.feature.js.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.d.ts +14 -10
- package/dist/src/features/modes/powerful-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.js +13 -32
- package/dist/src/features/modes/powerful-mode.feature.js.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/streamer-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.js +11 -31
- package/dist/src/features/modes/streamer-mode.feature.js.map +1 -1
- package/dist/src/features/on-off-data-point-feature.d.ts +43 -0
- package/dist/src/features/on-off-data-point-feature.d.ts.map +1 -0
- package/dist/src/features/on-off-data-point-feature.js +49 -0
- package/dist/src/features/on-off-data-point-feature.js.map +1 -0
- package/dist/src/platform.d.ts +56 -9
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/platform.js +248 -128
- package/dist/src/platform.js.map +1 -1
- package/dist/src/services/climate-control/fan-speed.d.ts +45 -0
- package/dist/src/services/climate-control/fan-speed.d.ts.map +1 -0
- package/dist/src/services/climate-control/fan-speed.js +104 -0
- package/dist/src/services/climate-control/fan-speed.js.map +1 -0
- package/dist/src/services/climate-control/separate-fan.service.d.ts +45 -0
- package/dist/src/services/climate-control/separate-fan.service.d.ts.map +1 -0
- package/dist/src/services/climate-control/separate-fan.service.js +82 -0
- package/dist/src/services/climate-control/separate-fan.service.js.map +1 -0
- package/dist/src/services/climate-control/setpoint-resolver.d.ts +68 -0
- package/dist/src/services/climate-control/setpoint-resolver.d.ts.map +1 -0
- package/dist/src/services/climate-control/setpoint-resolver.js +170 -0
- package/dist/src/services/climate-control/setpoint-resolver.js.map +1 -0
- package/dist/src/services/climate-control/swing-controller.d.ts +28 -0
- package/dist/src/services/climate-control/swing-controller.d.ts.map +1 -0
- package/dist/src/services/climate-control/swing-controller.js +65 -0
- package/dist/src/services/climate-control/swing-controller.js.map +1 -0
- package/dist/src/services/climate-control.service.d.ts +39 -48
- package/dist/src/services/climate-control.service.d.ts.map +1 -1
- package/dist/src/services/climate-control.service.js +223 -554
- package/dist/src/services/climate-control.service.js.map +1 -1
- package/dist/src/services/hot-water-tank.service.d.ts +17 -8
- package/dist/src/services/hot-water-tank.service.d.ts.map +1 -1
- package/dist/src/services/hot-water-tank.service.js +102 -157
- package/dist/src/services/hot-water-tank.service.js.map +1 -1
- package/dist/src/types/daikin-enums.d.ts +0 -5
- package/dist/src/types/daikin-enums.d.ts.map +1 -1
- package/dist/src/types/daikin-enums.js +1 -7
- package/dist/src/types/daikin-enums.js.map +1 -1
- package/dist/src/types/device-capabilities.d.ts +1 -0
- package/dist/src/types/device-capabilities.d.ts.map +1 -1
- package/dist/src/utils/errors.d.ts +9 -0
- package/dist/src/utils/errors.d.ts.map +1 -0
- package/dist/src/utils/errors.js +25 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/hap-write.d.ts +22 -0
- package/dist/src/utils/hap-write.d.ts.map +1 -0
- package/dist/src/utils/hap-write.js +33 -0
- package/dist/src/utils/hap-write.js.map +1 -0
- package/dist/src/utils/sleep.d.ts +5 -0
- package/dist/src/utils/sleep.d.ts.map +1 -0
- package/dist/src/utils/sleep.js +10 -0
- package/dist/src/utils/sleep.js.map +1 -0
- package/homebridge-ui/README.md +25 -2
- package/homebridge-ui/public/index.html +19 -17
- package/homebridge-ui/public/script.js +95 -32
- package/homebridge-ui/public/styles.css +109 -0
- package/homebridge-ui/server.js +687 -453
- package/package.json +3 -3
- package/dist/src/utils/log-context.d.ts +0 -105
- package/dist/src/utils/log-context.d.ts.map +0 -1
- package/dist/src/utils/log-context.js +0 -206
- package/dist/src/utils/log-context.js.map +0 -1
- package/dist/src/utils/update-mapper.d.ts +0 -59
- package/dist/src/utils/update-mapper.d.ts.map +0 -1
- package/dist/src/utils/update-mapper.js +0 -192
- package/dist/src/utils/update-mapper.js.map +0 -1
|
@@ -41,19 +41,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
41
41
|
exports.DaikinOAuth = void 0;
|
|
42
42
|
const crypto = __importStar(require("node:crypto"));
|
|
43
43
|
const daikin_types_1 = require("./daikin-types");
|
|
44
|
-
const token_storage_1 = require("./token-storage");
|
|
45
44
|
const http_transport_1 = require("./http-transport");
|
|
46
|
-
|
|
45
|
+
const token_client_1 = require("./token-client");
|
|
46
|
+
class DaikinOAuth extends token_client_1.TokenClient {
|
|
47
47
|
config;
|
|
48
|
-
onTokenUpdate;
|
|
49
|
-
onError;
|
|
50
|
-
tokenSet = null;
|
|
51
|
-
refreshPromise = null;
|
|
52
48
|
constructor(config, onTokenUpdate, onError) {
|
|
49
|
+
super(config.tokenFilePath, onTokenUpdate, onError);
|
|
53
50
|
this.config = config;
|
|
54
|
-
this.onTokenUpdate = onTokenUpdate;
|
|
55
|
-
this.onError = onError;
|
|
56
|
-
this.loadFromFile();
|
|
57
51
|
}
|
|
58
52
|
// =========================================================================
|
|
59
53
|
// Static utility methods (for use by homebridge-ui)
|
|
@@ -74,52 +68,44 @@ class DaikinOAuth {
|
|
|
74
68
|
* Exchange authorization code for tokens (static version)
|
|
75
69
|
*/
|
|
76
70
|
static async exchangeCodeStatic(code, clientId, clientSecret, redirectUri) {
|
|
77
|
-
const tokenSet = await DaikinOAuth.
|
|
71
|
+
const tokenSet = await DaikinOAuth.requestToken({
|
|
78
72
|
grant_type: 'authorization_code',
|
|
79
73
|
code,
|
|
80
74
|
redirect_uri: redirectUri,
|
|
81
75
|
client_id: clientId,
|
|
82
76
|
client_secret: clientSecret,
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
if (tokenSet.expires_in && !tokenSet.expires_at) {
|
|
86
|
-
tokenSet.expires_at = Math.floor(Date.now() / 1000) + tokenSet.expires_in;
|
|
87
|
-
}
|
|
88
|
-
return tokenSet;
|
|
77
|
+
}, 'Authorization code exchange failed');
|
|
78
|
+
return (0, token_client_1.withExpiresAt)(tokenSet);
|
|
89
79
|
}
|
|
90
80
|
/**
|
|
91
81
|
* Revoke token (static version)
|
|
92
82
|
*/
|
|
93
83
|
static async revokeTokenStatic(refreshToken, clientId, clientSecret) {
|
|
94
|
-
await DaikinOAuth.
|
|
84
|
+
const response = await DaikinOAuth.postForm(daikin_types_1.DAIKIN_OIDC_CONFIG.revokeEndpoint, {
|
|
95
85
|
token: refreshToken,
|
|
96
86
|
token_type_hint: 'refresh_token',
|
|
97
87
|
client_id: clientId,
|
|
98
88
|
client_secret: clientSecret,
|
|
99
89
|
});
|
|
90
|
+
if (response.statusCode < 200 || response.statusCode >= 300) {
|
|
91
|
+
throw new Error(`Token revocation failed: HTTP ${response.statusCode}`);
|
|
92
|
+
}
|
|
100
93
|
}
|
|
101
94
|
/**
|
|
102
|
-
*
|
|
95
|
+
* POST to the token endpoint and validate the token response
|
|
103
96
|
*/
|
|
104
|
-
static async
|
|
105
|
-
const response = await DaikinOAuth.
|
|
106
|
-
|
|
107
|
-
if (tokenSet.error) {
|
|
108
|
-
const errorResponse = tokenSet;
|
|
109
|
-
throw new Error(errorResponse.error_description || errorResponse.error);
|
|
110
|
-
}
|
|
111
|
-
return tokenSet;
|
|
97
|
+
static async requestToken(params, context) {
|
|
98
|
+
const response = await DaikinOAuth.postForm(daikin_types_1.DAIKIN_OIDC_CONFIG.tokenEndpoint, params);
|
|
99
|
+
return (0, token_client_1.parseTokenResponse)(response, daikin_types_1.DAIKIN_OIDC_CONFIG.tokenEndpoint, context);
|
|
112
100
|
}
|
|
113
101
|
/**
|
|
114
|
-
*
|
|
102
|
+
* POST a form-encoded body
|
|
115
103
|
*/
|
|
116
|
-
static
|
|
117
|
-
|
|
118
|
-
const response = await (0, http_transport_1.httpRequest)(url, {
|
|
104
|
+
static postForm(url, params) {
|
|
105
|
+
return (0, http_transport_1.httpRequest)(url, {
|
|
119
106
|
method: 'POST',
|
|
120
107
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
121
|
-
},
|
|
122
|
-
return response.body;
|
|
108
|
+
}, new URLSearchParams(params).toString());
|
|
123
109
|
}
|
|
124
110
|
// =========================================================================
|
|
125
111
|
// Instance methods
|
|
@@ -147,155 +133,39 @@ class DaikinOAuth {
|
|
|
147
133
|
* Exchange authorization code for tokens
|
|
148
134
|
*/
|
|
149
135
|
async exchangeCode(code) {
|
|
150
|
-
const tokenSet = await
|
|
136
|
+
const tokenSet = await DaikinOAuth.requestToken({
|
|
151
137
|
grant_type: 'authorization_code',
|
|
152
138
|
code,
|
|
153
139
|
redirect_uri: this.getRedirectUri(),
|
|
154
140
|
client_id: this.config.clientId,
|
|
155
141
|
client_secret: this.config.clientSecret,
|
|
156
|
-
});
|
|
157
|
-
this.setTokenSet(tokenSet);
|
|
158
|
-
return tokenSet;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Refresh the access token
|
|
162
|
-
*/
|
|
163
|
-
async refreshToken() {
|
|
164
|
-
if (!this.tokenSet?.refresh_token) {
|
|
165
|
-
throw new Error('No refresh token available');
|
|
166
|
-
}
|
|
167
|
-
// Prevent concurrent refresh requests
|
|
168
|
-
if (this.refreshPromise) {
|
|
169
|
-
return this.refreshPromise;
|
|
170
|
-
}
|
|
171
|
-
this.refreshPromise = this.makeTokenRequest({
|
|
172
|
-
grant_type: 'refresh_token',
|
|
173
|
-
refresh_token: this.tokenSet.refresh_token,
|
|
174
|
-
client_id: this.config.clientId,
|
|
175
|
-
client_secret: this.config.clientSecret,
|
|
176
|
-
});
|
|
177
|
-
try {
|
|
178
|
-
const tokenSet = await this.refreshPromise;
|
|
179
|
-
this.setTokenSet(tokenSet);
|
|
180
|
-
return tokenSet;
|
|
181
|
-
}
|
|
182
|
-
finally {
|
|
183
|
-
this.refreshPromise = null;
|
|
184
|
-
}
|
|
142
|
+
}, 'Authorization code exchange failed');
|
|
143
|
+
return this.setTokenSet(tokenSet);
|
|
185
144
|
}
|
|
186
145
|
/**
|
|
187
|
-
* Revoke the current token
|
|
146
|
+
* Revoke the current token. The local token file is deleted even when the
|
|
147
|
+
* revocation request fails.
|
|
188
148
|
*/
|
|
189
149
|
async revokeToken() {
|
|
190
|
-
|
|
150
|
+
const refreshToken = this.tokenSet?.refresh_token;
|
|
151
|
+
if (!refreshToken) {
|
|
191
152
|
return;
|
|
192
153
|
}
|
|
193
154
|
try {
|
|
194
|
-
await
|
|
195
|
-
token: this.tokenSet.refresh_token,
|
|
196
|
-
token_type_hint: 'refresh_token',
|
|
197
|
-
client_id: this.config.clientId,
|
|
198
|
-
client_secret: this.config.clientSecret,
|
|
199
|
-
});
|
|
155
|
+
await DaikinOAuth.revokeTokenStatic(refreshToken, this.config.clientId, this.config.clientSecret);
|
|
200
156
|
}
|
|
201
|
-
catch
|
|
202
|
-
// Ignore revocation errors
|
|
157
|
+
catch {
|
|
158
|
+
// Ignore revocation errors: the local logout must still happen
|
|
203
159
|
}
|
|
204
|
-
this.
|
|
205
|
-
this.tokenSet = null;
|
|
160
|
+
this.clearTokens();
|
|
206
161
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
// Check if token is expired or about to expire (10 second buffer)
|
|
215
|
-
const now = Math.floor(Date.now() / 1000);
|
|
216
|
-
const expiresAt = this.tokenSet.expires_at || 0;
|
|
217
|
-
if (expiresAt < now + 10) {
|
|
218
|
-
if (!this.tokenSet.refresh_token) {
|
|
219
|
-
throw new Error('Token expired and no refresh token available. Please re-authenticate.');
|
|
220
|
-
}
|
|
221
|
-
await this.refreshToken();
|
|
222
|
-
}
|
|
223
|
-
return this.tokenSet.access_token;
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Check if we have a valid token
|
|
227
|
-
*/
|
|
228
|
-
isAuthenticated() {
|
|
229
|
-
return this.tokenSet !== null && !!this.tokenSet.access_token;
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Get token expiration date
|
|
233
|
-
*/
|
|
234
|
-
getTokenExpiration() {
|
|
235
|
-
if (!this.tokenSet?.expires_at) {
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
return new Date(this.tokenSet.expires_at * 1000);
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Get current token set (for status display)
|
|
242
|
-
*/
|
|
243
|
-
getTokenSet() {
|
|
244
|
-
return this.tokenSet;
|
|
245
|
-
}
|
|
246
|
-
// Private methods
|
|
247
|
-
setTokenSet(tokenSet) {
|
|
248
|
-
// Calculate expires_at if not present
|
|
249
|
-
if (tokenSet.expires_in && !tokenSet.expires_at) {
|
|
250
|
-
tokenSet.expires_at = Math.floor(Date.now() / 1000) + tokenSet.expires_in;
|
|
251
|
-
}
|
|
252
|
-
this.tokenSet = tokenSet;
|
|
253
|
-
this.saveToFile();
|
|
254
|
-
if (this.onTokenUpdate) {
|
|
255
|
-
this.onTokenUpdate(tokenSet);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
loadFromFile() {
|
|
259
|
-
try {
|
|
260
|
-
this.tokenSet = (0, token_storage_1.loadTokenFromFile)(this.config.tokenFilePath);
|
|
261
|
-
}
|
|
262
|
-
catch (error) {
|
|
263
|
-
if (this.onError) {
|
|
264
|
-
this.onError(new Error(`Failed to load token file: ${error.message}`));
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
saveToFile() {
|
|
269
|
-
try {
|
|
270
|
-
if (this.tokenSet) {
|
|
271
|
-
(0, token_storage_1.saveTokenToFile)(this.config.tokenFilePath, this.tokenSet);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
catch (error) {
|
|
275
|
-
if (this.onError) {
|
|
276
|
-
this.onError(new Error(`Failed to save token file: ${error.message}`));
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
deleteFile() {
|
|
281
|
-
(0, token_storage_1.deleteTokenFile)(this.config.tokenFilePath);
|
|
282
|
-
}
|
|
283
|
-
async makeTokenRequest(params) {
|
|
284
|
-
const response = await this.makeRequest(daikin_types_1.DAIKIN_OIDC_CONFIG.tokenEndpoint, params);
|
|
285
|
-
const tokenSet = JSON.parse(response);
|
|
286
|
-
if (tokenSet.error) {
|
|
287
|
-
const errorResponse = tokenSet;
|
|
288
|
-
throw new Error(errorResponse.error_description || errorResponse.error);
|
|
289
|
-
}
|
|
290
|
-
return tokenSet;
|
|
291
|
-
}
|
|
292
|
-
async makeRequest(url, params) {
|
|
293
|
-
const postData = new URLSearchParams(params).toString();
|
|
294
|
-
const response = await (0, http_transport_1.httpRequest)(url, {
|
|
295
|
-
method: 'POST',
|
|
296
|
-
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
297
|
-
}, postData);
|
|
298
|
-
return response.body;
|
|
162
|
+
requestTokenRefresh(refreshToken) {
|
|
163
|
+
return DaikinOAuth.requestToken({
|
|
164
|
+
grant_type: 'refresh_token',
|
|
165
|
+
refresh_token: refreshToken,
|
|
166
|
+
client_id: this.config.clientId,
|
|
167
|
+
client_secret: this.config.clientSecret,
|
|
168
|
+
}, 'Token refresh failed');
|
|
299
169
|
}
|
|
300
170
|
}
|
|
301
171
|
exports.DaikinOAuth = DaikinOAuth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-oauth.js","sourceRoot":"","sources":["../../../src/api/daikin-oauth.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,iDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"daikin-oauth.js","sourceRoot":"","sources":["../../../src/api/daikin-oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,26 @@ export declare const TokenSetSchema: z.ZodObject<{
|
|
|
11
11
|
expires_at: z.ZodOptional<z.ZodNumber>;
|
|
12
12
|
scope: z.ZodOptional<z.ZodString>;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
|
+
export declare const OAuthErrorSchema: z.ZodObject<{
|
|
15
|
+
error: z.ZodString;
|
|
16
|
+
error_description: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export declare const GigyaLoginResultSchema: z.ZodObject<{
|
|
19
|
+
errorCode: z.ZodNumber;
|
|
20
|
+
errorMessage: z.ZodOptional<z.ZodString>;
|
|
21
|
+
errorDetails: z.ZodOptional<z.ZodString>;
|
|
22
|
+
regToken: z.ZodOptional<z.ZodString>;
|
|
23
|
+
data: z.ZodOptional<z.ZodObject<{
|
|
24
|
+
profile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
25
|
+
}, z.core.$loose>>;
|
|
26
|
+
profile: z.ZodOptional<z.ZodObject<{
|
|
27
|
+
firstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
28
|
+
lastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
29
|
+
}, z.core.$loose>>;
|
|
30
|
+
sessionInfo: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
login_token: z.ZodString;
|
|
32
|
+
}, z.core.$loose>>;
|
|
33
|
+
}, z.core.$loose>;
|
|
14
34
|
export declare const ManagementPointSchema: z.ZodObject<{
|
|
15
35
|
embeddedId: z.ZodString;
|
|
16
36
|
managementPointType: z.ZodString;
|
|
@@ -205,26 +225,4 @@ export declare const GatewayDeviceSchema: z.ZodObject<{
|
|
|
205
225
|
}, z.core.$loose>>;
|
|
206
226
|
}, z.core.$loose>>;
|
|
207
227
|
}, z.core.$loose>;
|
|
208
|
-
export declare const DaikinControllerConfigSchema: z.ZodObject<{
|
|
209
|
-
authMode: z.ZodEnum<{
|
|
210
|
-
developer_portal: "developer_portal";
|
|
211
|
-
mobile_app: "mobile_app";
|
|
212
|
-
}>;
|
|
213
|
-
tokenFilePath: z.ZodString;
|
|
214
|
-
clientId: z.ZodOptional<z.ZodString>;
|
|
215
|
-
clientSecret: z.ZodOptional<z.ZodString>;
|
|
216
|
-
callbackServerExternalAddress: z.ZodOptional<z.ZodString>;
|
|
217
|
-
callbackServerPort: z.ZodOptional<z.ZodNumber>;
|
|
218
|
-
oidcCallbackServerBindAddr: z.ZodOptional<z.ZodString>;
|
|
219
|
-
email: z.ZodOptional<z.ZodString>;
|
|
220
|
-
password: z.ZodOptional<z.ZodString>;
|
|
221
|
-
}, z.core.$strip>;
|
|
222
|
-
export declare function validateData<T>(schema: z.ZodSchema<T>, data: unknown, context?: string): T;
|
|
223
|
-
export declare function safeValidateData<T>(schema: z.ZodSchema<T>, data: unknown): {
|
|
224
|
-
success: true;
|
|
225
|
-
data: T;
|
|
226
|
-
} | {
|
|
227
|
-
success: false;
|
|
228
|
-
error: string;
|
|
229
|
-
};
|
|
230
228
|
//# sourceMappingURL=daikin-schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-schemas.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;iBAOzB,CAAC;
|
|
1
|
+
{"version":3,"file":"daikin-schemas.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;iBAOzB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAIH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAQzB,CAAC;AAaX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwEhC,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAC"}
|
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
* Provides runtime type validation and better error handling
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
exports.validateData = validateData;
|
|
9
|
-
exports.safeValidateData = safeValidateData;
|
|
7
|
+
exports.GatewayDeviceSchema = exports.ManagementPointSchema = exports.GigyaLoginResultSchema = exports.OAuthErrorSchema = exports.TokenSetSchema = void 0;
|
|
10
8
|
const zod_1 = require("zod");
|
|
11
9
|
// Token Set Schema
|
|
12
10
|
exports.TokenSetSchema = zod_1.z.object({
|
|
@@ -17,6 +15,22 @@ exports.TokenSetSchema = zod_1.z.object({
|
|
|
17
15
|
expires_at: zod_1.z.number().optional(),
|
|
18
16
|
scope: zod_1.z.string().optional(),
|
|
19
17
|
});
|
|
18
|
+
// OAuth 2.0 error body (RFC 6749 section 5.2)
|
|
19
|
+
exports.OAuthErrorSchema = zod_1.z.object({
|
|
20
|
+
error: zod_1.z.string(),
|
|
21
|
+
error_description: zod_1.z.string().optional(),
|
|
22
|
+
});
|
|
23
|
+
// Gigya (SAP CDC) accounts.login / accounts.register response. Gigya answers
|
|
24
|
+
// HTTP 200 for most failures and reports them through errorCode instead.
|
|
25
|
+
exports.GigyaLoginResultSchema = zod_1.z.object({
|
|
26
|
+
errorCode: zod_1.z.number(),
|
|
27
|
+
errorMessage: zod_1.z.string().optional(),
|
|
28
|
+
errorDetails: zod_1.z.string().optional(),
|
|
29
|
+
regToken: zod_1.z.string().optional(),
|
|
30
|
+
data: zod_1.z.object({ profile: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional() }).loose().optional(),
|
|
31
|
+
profile: zod_1.z.object({ firstName: zod_1.z.string().nullish(), lastName: zod_1.z.string().nullish() }).loose().optional(),
|
|
32
|
+
sessionInfo: zod_1.z.object({ login_token: zod_1.z.string() }).loose().optional(),
|
|
33
|
+
}).loose();
|
|
20
34
|
// Daikin "characteristic" objects always carry extra metadata Zod would
|
|
21
35
|
// otherwise strip: ref, settable, values, minValue/maxValue/stepValue, unit,
|
|
22
36
|
// maxLength… Several of these are read at runtime (e.g. setProps ranges for
|
|
@@ -108,50 +122,4 @@ exports.GatewayDeviceSchema = chr({
|
|
|
108
122
|
isCloudConnectionUp: chr({ value: zod_1.z.boolean() }).optional(),
|
|
109
123
|
managementPoints: zod_1.z.array(exports.ManagementPointSchema),
|
|
110
124
|
});
|
|
111
|
-
// Configuration Validation Schema
|
|
112
|
-
exports.DaikinControllerConfigSchema = zod_1.z.object({
|
|
113
|
-
authMode: zod_1.z.enum(['developer_portal', 'mobile_app']),
|
|
114
|
-
tokenFilePath: zod_1.z.string().min(1),
|
|
115
|
-
// Developer Portal fields
|
|
116
|
-
clientId: zod_1.z.string().optional(),
|
|
117
|
-
clientSecret: zod_1.z.string().optional(),
|
|
118
|
-
callbackServerExternalAddress: zod_1.z.string().optional(),
|
|
119
|
-
callbackServerPort: zod_1.z.number().int().min(1).max(65535).optional(),
|
|
120
|
-
oidcCallbackServerBindAddr: zod_1.z.string().optional(),
|
|
121
|
-
// Mobile App fields
|
|
122
|
-
email: zod_1.z.string().email().optional(),
|
|
123
|
-
password: zod_1.z.string().optional(),
|
|
124
|
-
}).refine((data) => {
|
|
125
|
-
if (data.authMode === 'developer_portal') {
|
|
126
|
-
return !!(data.clientId && data.clientSecret && data.callbackServerExternalAddress && data.callbackServerPort);
|
|
127
|
-
}
|
|
128
|
-
if (data.authMode === 'mobile_app') {
|
|
129
|
-
return !!(data.email && data.password);
|
|
130
|
-
}
|
|
131
|
-
return false;
|
|
132
|
-
}, {
|
|
133
|
-
message: 'Missing required configuration for the selected authentication mode',
|
|
134
|
-
});
|
|
135
|
-
// Helper function to validate and parse data
|
|
136
|
-
function validateData(schema, data, context) {
|
|
137
|
-
try {
|
|
138
|
-
return schema.parse(data);
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
if (error instanceof zod_1.z.ZodError) {
|
|
142
|
-
const errorMessages = error.issues.map(err => `${err.path.join('.')}: ${err.message}`).join(', ');
|
|
143
|
-
throw new Error(`Validation failed${context ? ` for ${context}` : ''}: ${errorMessages}`, { cause: error });
|
|
144
|
-
}
|
|
145
|
-
throw error;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Helper function to safely validate without throwing
|
|
149
|
-
function safeValidateData(schema, data) {
|
|
150
|
-
const result = schema.safeParse(data);
|
|
151
|
-
if (result.success) {
|
|
152
|
-
return { success: true, data: result.data };
|
|
153
|
-
}
|
|
154
|
-
const errorMessages = result.error.issues.map(err => `${err.path.join('.')}: ${err.message}`).join(', ');
|
|
155
|
-
return { success: false, error: errorMessages };
|
|
156
|
-
}
|
|
157
125
|
//# sourceMappingURL=daikin-schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-schemas.js","sourceRoot":"","sources":["../../../src/api/daikin-schemas.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"daikin-schemas.js","sourceRoot":"","sources":["../../../src/api/daikin-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Daikin Cloud API Types
|
|
3
3
|
*/
|
|
4
|
+
import type { z } from 'zod';
|
|
5
|
+
import type { GatewayDeviceSchema, TokenSetSchema } from './daikin-schemas';
|
|
4
6
|
export declare const DAIKIN_OIDC_CONFIG: {
|
|
5
7
|
authorizationEndpoint: string;
|
|
6
8
|
tokenEndpoint: string;
|
|
@@ -19,24 +21,13 @@ export declare const DAIKIN_MOBILE_CONFIG: {
|
|
|
19
21
|
apiBaseUrl: string;
|
|
20
22
|
websocketUrl: string;
|
|
21
23
|
};
|
|
22
|
-
export
|
|
23
|
-
access_token: string;
|
|
24
|
-
refresh_token?: string;
|
|
25
|
-
token_type: string;
|
|
26
|
-
expires_in?: number;
|
|
27
|
-
expires_at?: number;
|
|
28
|
-
scope?: string;
|
|
29
|
-
}
|
|
24
|
+
export type TokenSet = z.infer<typeof TokenSetSchema>;
|
|
30
25
|
export interface RateLimitStatus {
|
|
31
26
|
limitMinute?: number;
|
|
32
27
|
remainingMinute?: number;
|
|
33
28
|
limitDay?: number;
|
|
34
29
|
remainingDay?: number;
|
|
35
30
|
}
|
|
36
|
-
export interface ApiResponse<T> {
|
|
37
|
-
data: T;
|
|
38
|
-
rateLimit: RateLimitStatus;
|
|
39
|
-
}
|
|
40
31
|
export interface ManagementPoint {
|
|
41
32
|
embeddedId: string;
|
|
42
33
|
managementPointType: string;
|
|
@@ -133,16 +124,7 @@ export interface ManagementPoint {
|
|
|
133
124
|
};
|
|
134
125
|
[key: string]: unknown;
|
|
135
126
|
}
|
|
136
|
-
export
|
|
137
|
-
id: string;
|
|
138
|
-
deviceModel?: string;
|
|
139
|
-
type?: string;
|
|
140
|
-
isCloudConnectionUp?: {
|
|
141
|
-
value: boolean;
|
|
142
|
-
};
|
|
143
|
-
managementPoints: ManagementPoint[];
|
|
144
|
-
[key: string]: unknown;
|
|
145
|
-
}
|
|
127
|
+
export type GatewayDevice = z.infer<typeof GatewayDeviceSchema>;
|
|
146
128
|
export type AuthMode = 'developer_portal' | 'mobile_app';
|
|
147
129
|
export interface DaikinClientConfig {
|
|
148
130
|
clientId: string;
|
|
@@ -173,7 +155,6 @@ export interface OAuthProvider {
|
|
|
173
155
|
isAuthenticated(): boolean;
|
|
174
156
|
refreshToken(): Promise<TokenSet>;
|
|
175
157
|
}
|
|
176
|
-
export type DaikinEventType = 'token_update' | 'rate_limit_status' | 'error' | 'websocket_connected' | 'websocket_disconnected' | 'websocket_device_update';
|
|
177
158
|
export interface WebSocketDeviceUpdate {
|
|
178
159
|
deviceId: string;
|
|
179
160
|
embeddedId: string;
|
|
@@ -190,4 +171,11 @@ export interface WebSocketDeviceUpdate {
|
|
|
190
171
|
stepValue?: number;
|
|
191
172
|
};
|
|
192
173
|
}
|
|
174
|
+
/** Shape of RATE_LIMIT_STATUS_FILE */
|
|
175
|
+
export interface RateLimitStatusFile extends RateLimitStatus {
|
|
176
|
+
/** Auth mode the headers were observed under */
|
|
177
|
+
mode: 'developer_portal' | 'mobile_app';
|
|
178
|
+
/** ISO timestamp of when the headers were observed */
|
|
179
|
+
updatedAt: string;
|
|
180
|
+
}
|
|
193
181
|
//# sourceMappingURL=daikin-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-types.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"daikin-types.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-types.js","sourceRoot":"","sources":["../../../src/api/daikin-types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"daikin-types.js","sourceRoot":"","sources":["../../../src/api/daikin-types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH,wCAAwC;AAC3B,QAAA,kBAAkB,GAAG;IAChC,qBAAqB,EAAE,uDAAuD;IAC9E,aAAa,EAAE,mDAAmD;IAClE,cAAc,EAAE,oDAAoD;IACpE,UAAU,EAAE,qCAAqC;IACjD,KAAK,EAAE,iCAAiC;CACzC,CAAC;AAEF,+CAA+C;AAC/C,mFAAmF;AACtE,QAAA,oBAAoB,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,oEAAoE;IAC1G,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,0BAA0B;IACpE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,wFAAwF;IAC1I,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,sBAAsB;IACtE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,uBAAuB;IAC1E,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,mDAAmD;IAC9G,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,iDAAiD;IACpF,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,qCAAqC;IACpF,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,qCAAqC;CACxF,CAAC"}
|
|
@@ -46,10 +46,6 @@ export interface GroupCharacteristicEvent {
|
|
|
46
46
|
stepValue?: number;
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Union type for all WebSocket events
|
|
51
|
-
*/
|
|
52
|
-
export type DaikinWebSocketEvent = GatewayCharacteristicEvent | GroupCharacteristicEvent;
|
|
53
49
|
/**
|
|
54
50
|
* WebSocket connection state
|
|
55
51
|
*/
|
|
@@ -74,6 +70,7 @@ export declare class DaikinWebSocket extends EventEmitter {
|
|
|
74
70
|
private pongTimeout;
|
|
75
71
|
private shouldReconnect;
|
|
76
72
|
private connectionAttempts;
|
|
73
|
+
private stableConnectionTimeout;
|
|
77
74
|
constructor(oauth: OAuthProvider, onError?: ((error: Error) => void) | undefined);
|
|
78
75
|
/**
|
|
79
76
|
* Get current connection state
|
|
@@ -100,7 +97,8 @@ export declare class DaikinWebSocket extends EventEmitter {
|
|
|
100
97
|
*/
|
|
101
98
|
private setupEventHandlers;
|
|
102
99
|
/**
|
|
103
|
-
* Handle incoming WebSocket messages
|
|
100
|
+
* Handle incoming WebSocket messages. Anything that is not valid JSON or does
|
|
101
|
+
* not have the minimal expected shape is ignored.
|
|
104
102
|
*/
|
|
105
103
|
private handleMessage;
|
|
106
104
|
/**
|
|
@@ -131,6 +129,7 @@ export declare class DaikinWebSocket extends EventEmitter {
|
|
|
131
129
|
* Clear pong timeout
|
|
132
130
|
*/
|
|
133
131
|
private clearPongTimeout;
|
|
132
|
+
private clearStableConnectionTimeout;
|
|
134
133
|
/**
|
|
135
134
|
* Clean up resources
|
|
136
135
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-websocket.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-websocket.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"daikin-websocket.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-websocket.ts"],"names":[],"mappings":"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"}
|