@mp-consulting/homebridge-daikin-cloud 1.3.5 → 1.3.7
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/LICENSE +39 -1
- package/README.md +5 -3
- package/dist/src/accessories/air-conditioning-accessory.d.ts +2 -2
- package/dist/src/accessories/air-conditioning-accessory.d.ts.map +1 -1
- package/dist/src/accessories/air-conditioning-accessory.js.map +1 -1
- package/dist/src/accessories/altherma-accessory.d.ts +2 -2
- package/dist/src/accessories/altherma-accessory.d.ts.map +1 -1
- package/dist/src/accessories/altherma-accessory.js.map +1 -1
- package/dist/src/accessories/base-accessory.d.ts +6 -6
- package/dist/src/accessories/base-accessory.d.ts.map +1 -1
- package/dist/src/accessories/base-accessory.js +15 -15
- package/dist/src/accessories/base-accessory.js.map +1 -1
- package/dist/src/api/daikin-api.d.ts +26 -26
- package/dist/src/api/daikin-api.d.ts.map +1 -1
- package/dist/src/api/daikin-api.js +68 -42
- package/dist/src/api/daikin-api.js.map +1 -1
- package/dist/src/api/daikin-cloud.repository.d.ts.map +1 -1
- package/dist/src/api/daikin-cloud.repository.js +22 -14
- package/dist/src/api/daikin-cloud.repository.js.map +1 -1
- package/dist/src/api/daikin-controller.d.ts +41 -47
- package/dist/src/api/daikin-controller.d.ts.map +1 -1
- package/dist/src/api/daikin-controller.js +40 -64
- package/dist/src/api/daikin-controller.js.map +1 -1
- package/dist/src/api/daikin-device.d.ts +36 -31
- package/dist/src/api/daikin-device.d.ts.map +1 -1
- package/dist/src/api/daikin-device.js +45 -31
- package/dist/src/api/daikin-device.js.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.d.ts +20 -20
- package/dist/src/api/daikin-mobile-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.js +49 -44
- package/dist/src/api/daikin-mobile-oauth.js.map +1 -1
- package/dist/src/api/daikin-oauth.d.ts +32 -32
- package/dist/src/api/daikin-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-oauth.js +64 -56
- package/dist/src/api/daikin-oauth.js.map +1 -1
- package/dist/src/api/daikin-schemas.d.ts +476 -351
- package/dist/src/api/daikin-schemas.d.ts.map +1 -1
- package/dist/src/api/daikin-schemas.js +11 -42
- package/dist/src/api/daikin-schemas.js.map +1 -1
- package/dist/src/api/daikin-types.d.ts +5 -1
- 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 +31 -32
- package/dist/src/api/daikin-websocket.d.ts.map +1 -1
- package/dist/src/api/daikin-websocket.js +55 -35
- package/dist/src/api/daikin-websocket.js.map +1 -1
- package/dist/src/api/index.d.ts +2 -1
- package/dist/src/api/index.d.ts.map +1 -1
- package/dist/src/api/index.js +3 -1
- package/dist/src/api/index.js.map +1 -1
- package/dist/src/api/token-storage.d.ts +21 -0
- package/dist/src/api/token-storage.d.ts.map +1 -0
- package/dist/src/api/token-storage.js +90 -0
- package/dist/src/api/token-storage.js.map +1 -0
- package/dist/src/config/config-manager.d.ts +33 -33
- package/dist/src/config/config-manager.d.ts.map +1 -1
- package/dist/src/config/config-manager.js +33 -33
- package/dist/src/config/config-manager.js.map +1 -1
- package/dist/src/constants/api.constants.d.ts +4 -0
- package/dist/src/constants/api.constants.d.ts.map +1 -1
- package/dist/src/constants/api.constants.js +5 -1
- package/dist/src/constants/api.constants.js.map +1 -1
- package/dist/src/constants/device.constants.d.ts +4 -0
- package/dist/src/constants/device.constants.d.ts.map +1 -1
- package/dist/src/constants/device.constants.js +5 -1
- package/dist/src/constants/device.constants.js.map +1 -1
- package/dist/src/device/accessory-factory.d.ts +10 -10
- package/dist/src/device/accessory-factory.d.ts.map +1 -1
- package/dist/src/device/accessory-factory.js +7 -7
- package/dist/src/device/accessory-factory.js.map +1 -1
- package/dist/src/device/capability-detector.d.ts +8 -8
- package/dist/src/device/capability-detector.d.ts.map +1 -1
- package/dist/src/device/capability-detector.js +6 -6
- package/dist/src/device/capability-detector.js.map +1 -1
- package/dist/src/device/capability-docs.d.ts +1 -9
- package/dist/src/device/capability-docs.d.ts.map +1 -1
- package/dist/src/device/capability-docs.js +19 -73
- package/dist/src/device/capability-docs.js.map +1 -1
- package/dist/src/device/profiles/device-profile.d.ts +1 -1
- package/dist/src/device/profiles/device-profile.d.ts.map +1 -1
- package/dist/src/device/profiles/device-profile.js +4 -4
- package/dist/src/device/profiles/device-profile.js.map +1 -1
- package/dist/src/features/base-feature.d.ts +2 -2
- package/dist/src/features/base-feature.d.ts.map +1 -1
- package/dist/src/features/base-feature.js +2 -3
- package/dist/src/features/base-feature.js.map +1 -1
- package/dist/src/features/feature-manager.d.ts +8 -16
- package/dist/src/features/feature-manager.d.ts.map +1 -1
- package/dist/src/features/feature-manager.js +5 -17
- package/dist/src/features/feature-manager.js.map +1 -1
- package/dist/src/features/modes/dry-operation-mode.feature.d.ts +1 -1
- package/dist/src/features/modes/dry-operation-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/dry-operation-mode.feature.js.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.d.ts +1 -1
- package/dist/src/features/modes/econo-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.js.map +1 -1
- package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts +1 -1
- 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.map +1 -1
- package/dist/src/features/modes/indoor-silent-mode.feature.d.ts +1 -1
- package/dist/src/features/modes/indoor-silent-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/indoor-silent-mode.feature.js.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.js.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.d.ts +1 -1
- package/dist/src/features/modes/powerful-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.js.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.d.ts +1 -1
- package/dist/src/features/modes/streamer-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/platform.d.ts +11 -8
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/platform.js +64 -15
- package/dist/src/platform.js.map +1 -1
- package/dist/src/services/climate-control.service.d.ts +8 -2
- package/dist/src/services/climate-control.service.d.ts.map +1 -1
- package/dist/src/services/climate-control.service.js +59 -58
- package/dist/src/services/climate-control.service.js.map +1 -1
- package/dist/src/services/hot-water-tank.service.d.ts +6 -2
- package/dist/src/services/hot-water-tank.service.d.ts.map +1 -1
- package/dist/src/services/hot-water-tank.service.js +33 -31
- package/dist/src/services/hot-water-tank.service.js.map +1 -1
- package/dist/src/types/daikin-enums.js +12 -12
- package/dist/src/types/daikin-enums.js.map +1 -1
- package/dist/src/types/device-capabilities.d.ts +1 -1
- package/dist/src/types/device-capabilities.d.ts.map +1 -1
- package/dist/src/utils/log-context.d.ts +23 -23
- package/dist/src/utils/log-context.d.ts.map +1 -1
- package/dist/src/utils/log-context.js +28 -28
- package/dist/src/utils/log-context.js.map +1 -1
- package/dist/src/utils/strings.d.ts.map +1 -1
- package/dist/src/utils/strings.js.map +1 -1
- package/dist/src/utils/update-mapper.d.ts +16 -16
- package/dist/src/utils/update-mapper.d.ts.map +1 -1
- package/dist/src/utils/update-mapper.js +14 -14
- package/dist/src/utils/update-mapper.js.map +1 -1
- package/homebridge-ui/public/index.html +2 -2
- package/homebridge-ui/public/script.js +957 -898
- package/homebridge-ui/server.js +746 -678
- package/package.json +29 -27
- package/.claude/settings.json +0 -3
- package/.claude/settings.local.json +0 -29
- package/CHANGELOG.md +0 -103
- package/CLAUDE.md +0 -269
- package/config.md +0 -2
- package/dist/src/api/daikin-device-tracker.d.ts +0 -97
- package/dist/src/api/daikin-device-tracker.d.ts.map +0 -1
- package/dist/src/api/daikin-device-tracker.js +0 -136
- package/dist/src/api/daikin-device-tracker.js.map +0 -1
- package/dist/src/api/http-interceptor.d.ts +0 -99
- package/dist/src/api/http-interceptor.d.ts.map +0 -1
- package/dist/src/api/http-interceptor.js +0 -177
- package/dist/src/api/http-interceptor.js.map +0 -1
- package/dist/src/di/service-container.d.ts +0 -92
- package/dist/src/di/service-container.d.ts.map +0 -1
- package/dist/src/di/service-container.js +0 -156
- package/dist/src/di/service-container.js.map +0 -1
- package/dist/src/features/feature-registry.d.ts +0 -100
- package/dist/src/features/feature-registry.d.ts.map +0 -1
- package/dist/src/features/feature-registry.js +0 -142
- package/dist/src/features/feature-registry.js.map +0 -1
- package/dist/src/services/service-factory.d.ts +0 -46
- package/dist/src/services/service-factory.d.ts.map +0 -1
- package/dist/src/services/service-factory.js +0 -72
- package/dist/src/services/service-factory.js.map +0 -1
- package/dist/src/utils/error-handler.d.ts +0 -101
- package/dist/src/utils/error-handler.d.ts.map +0 -1
- package/dist/src/utils/error-handler.js +0 -251
- package/dist/src/utils/error-handler.js.map +0 -1
- package/dist/src/utils/retry.d.ts +0 -42
- package/dist/src/utils/retry.d.ts.map +0 -1
- package/dist/src/utils/retry.js +0 -70
- package/dist/src/utils/retry.js.map +0 -1
- package/docs/ARCHITECTURE.md +0 -645
- package/docs/IMPLEMENTATION_GUIDE.md +0 -899
- package/docs/IMPROVEMENTS_SUMMARY.md +0 -415
- package/docs/NEXT_STEPS.md +0 -368
- package/docs/Screenshot 2024-07-04 at 18.41.28.png +0 -0
- package/docs/TROUBLESHOOTING.md +0 -475
- package/docs/api-response-for-BRP069A8x.json +0 -520
- package/docs/api-response-for-BRP069C4x-2.json +0 -881
- package/docs/api-response-for-BRP069C4x.json +0 -916
- package/docs/api-response-for-altherma.json +0 -759
- package/docs/api-response-for-altherma2.json +0 -2735
- package/docs/api-response-with-multiple-devices-incl-heatpump.json +0 -2544
- package/docs/cr-insance-altherma-id-0.json +0 -834
- package/docs/mock-air-to-air-dx23.json +0 -759
- package/docs/mock-air-to-air-dx4.json +0 -1134
- package/docs/mock-airpurifier-with-humidifier.json +0 -732
- package/docs/mock-airpurifier.json +0 -450
- package/docs/mock-altherma-air-to-water-lan.json +0 -845
- package/docs/mock-altherma-air-to-water-wlan.json +0 -845
- package/docs/mock-d2cnd-gas-boiler.json +0 -649
- package/docs/setpointmode-vs-controlmode-vs-setpoints-vs-sensorydata.txt +0 -6
- package/images/fan-speed.jpeg +0 -0
- package/images/homekit-controls.jpeg +0 -0
- package/images/homekit-settings.jpeg +0 -0
- package/images/swing-mode.png +0 -0
- package/jest.config.ts +0 -13
- package/test/fixtures/altherma-crSense-2.ts +0 -834
- package/test/fixtures/altherma-fraction.ts +0 -718
- package/test/fixtures/altherma-heat-pump-2.ts +0 -479
- package/test/fixtures/altherma-heat-pump.ts +0 -757
- package/test/fixtures/altherma-miladcerkic-off.ts +0 -524
- package/test/fixtures/altherma-miladcerkic.ts +0 -524
- package/test/fixtures/altherma-v1ckoeln.ts +0 -644
- package/test/fixtures/altherma-with-embedded-id-zero.ts +0 -834
- package/test/fixtures/dx23-airco-2.ts +0 -343
- package/test/fixtures/dx23-airco.ts +0 -518
- package/test/fixtures/dx4-airco.ts +0 -914
- package/test/fixtures/unknown-jan.ts +0 -488
- package/test/fixtures/unknown-kitchen-guests.ts +0 -488
- package/test/helpers/test-isolation.ts +0 -228
- package/test/integration/air-conditioning.test.ts +0 -410
- package/test/integration/altherma.test.ts +0 -289
- package/test/integration/platform.test.ts +0 -118
- package/test/mocks/index.ts +0 -27
- package/test/test-gigya-auth.js +0 -443
- package/test/test-mobile-oauth.js +0 -175
- package/test/test-websocket-mobile.js +0 -123
- package/test/test-websocket.js +0 -116
- package/test/unit/api/__snapshots__/daikinCloud.test.ts.snap +0 -1320
- package/test/unit/api/daikin-api.test.ts +0 -384
- package/test/unit/api/daikin-oauth.test.ts +0 -214
- package/test/unit/api/daikinCloud.test.ts +0 -12
- package/test/unit/config/config-manager.test.ts +0 -271
- package/test/unit/device/daikin-device.test.ts +0 -79
- package/test/unit/services/hot-water-tank.service.test.ts +0 -123
- package/test/unit/utils/error-handler.test.ts +0 -274
- package/test/unit/utils/log-context.test.ts +0 -271
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-cloud.repository.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-cloud.repository.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"daikin-cloud.repository.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-cloud.repository.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IAE1B,MAAM,CAAC,4BAA4B,CAAC,kBAAkB,EAAE,GAAG;CAgC5D"}
|
|
@@ -2,29 +2,37 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DaikinCloudRepo = void 0;
|
|
4
4
|
class DaikinCloudRepo {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
6
|
static maskSensitiveCloudDeviceData(cloudDeviceDetails) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const cloned = JSON.parse(JSON.stringify(cloudDeviceDetails));
|
|
8
|
+
if (cloned.managementPoints) {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
cloned.managementPoints = cloned.managementPoints.map((managementPoint) => {
|
|
11
|
+
if (managementPoint.ipAddress) {
|
|
9
12
|
managementPoint.ipAddress.value = 'REDACTED';
|
|
10
|
-
|
|
13
|
+
}
|
|
14
|
+
if (managementPoint.macAddress) {
|
|
11
15
|
managementPoint.macAddress.value = 'REDACTED';
|
|
12
|
-
|
|
16
|
+
}
|
|
17
|
+
if (managementPoint.ssid) {
|
|
13
18
|
managementPoint.ssid.value = 'REDACTED';
|
|
14
|
-
|
|
19
|
+
}
|
|
20
|
+
if (managementPoint.serialNumber) {
|
|
15
21
|
managementPoint.serialNumber.value = 'REDACTED';
|
|
16
|
-
|
|
22
|
+
}
|
|
23
|
+
if (managementPoint.wifiConnectionSSID) {
|
|
17
24
|
managementPoint.wifiConnectionSSID.value = 'REDACTED';
|
|
18
|
-
|
|
25
|
+
}
|
|
26
|
+
if (managementPoint.consumptionData) {
|
|
19
27
|
managementPoint.consumptionData = 'REDACTED';
|
|
20
|
-
|
|
28
|
+
}
|
|
29
|
+
if (managementPoint.schedule) {
|
|
21
30
|
managementPoint.schedule = 'REDACTED';
|
|
22
|
-
|
|
23
|
-
managementPoint.consumptionData = 'REDACTED';
|
|
31
|
+
}
|
|
24
32
|
return managementPoint;
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return cloned;
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
38
|
exports.DaikinCloudRepo = DaikinCloudRepo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-cloud.repository.js","sourceRoot":"","sources":["../../../src/api/daikin-cloud.repository.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"daikin-cloud.repository.js","sourceRoot":"","sources":["../../../src/api/daikin-cloud.repository.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,4BAA4B,CAAC,kBAAuB;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAoB,EAAE,EAAE;gBAC7E,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;oBAC9B,eAAe,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC/C,CAAC;gBACD,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC;oBAC/B,eAAe,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;gBAChD,CAAC;gBACD,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;oBACzB,eAAe,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC1C,CAAC;gBACD,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;oBACjC,eAAe,CAAC,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;gBAClD,CAAC;gBACD,IAAI,eAAe,CAAC,kBAAkB,EAAE,CAAC;oBACvC,eAAe,CAAC,kBAAkB,CAAC,KAAK,GAAG,UAAU,CAAC;gBACxD,CAAC;gBACD,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;oBACpC,eAAe,CAAC,eAAe,GAAG,UAAU,CAAC;gBAC/C,CAAC;gBACD,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;oBAC7B,eAAe,CAAC,QAAQ,GAAG,UAAU,CAAC;gBACxC,CAAC;gBAED,OAAO,eAAe,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAlCD,0CAkCC"}
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
* Main controller that ties together OAuth, API, WebSocket, and device management.
|
|
5
5
|
* Supports both Developer Portal and Mobile App authentication methods.
|
|
6
6
|
*/
|
|
7
|
-
/// <reference types="node" />
|
|
8
7
|
import { EventEmitter } from 'node:events';
|
|
9
|
-
import { DaikinClientConfig, DaikinControllerConfig, TokenSet } from './daikin-types';
|
|
8
|
+
import type { DaikinClientConfig, DaikinControllerConfig, TokenSet } from './daikin-types';
|
|
10
9
|
import { DaikinCloudDevice } from './daikin-device';
|
|
11
|
-
import { WebSocketState } from './daikin-websocket';
|
|
10
|
+
import type { WebSocketState } from './daikin-websocket';
|
|
12
11
|
export declare class DaikinCloudController extends EventEmitter {
|
|
13
12
|
private readonly oauth;
|
|
14
13
|
private readonly mobileOAuth?;
|
|
@@ -20,89 +19,84 @@ export declare class DaikinCloudController extends EventEmitter {
|
|
|
20
19
|
private websocketEnabled;
|
|
21
20
|
constructor(config: DaikinControllerConfig | DaikinClientConfig);
|
|
22
21
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
* Get the authentication mode
|
|
23
|
+
*/
|
|
25
24
|
getAuthMode(): 'developer_portal' | 'mobile_app';
|
|
26
25
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
* Authenticate with mobile app credentials (only for mobile_app mode)
|
|
27
|
+
* Must be called before using the API when using mobile_app mode without existing tokens.
|
|
28
|
+
*/
|
|
30
29
|
authenticateMobile(): Promise<TokenSet>;
|
|
31
30
|
/**
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
* Set up WebSocket event handlers
|
|
32
|
+
*/
|
|
34
33
|
private setupWebSocketHandlers;
|
|
35
34
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
* Handle device updates from WebSocket
|
|
36
|
+
*/
|
|
38
37
|
private handleWebSocketDeviceUpdate;
|
|
39
38
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
* Check if authenticated
|
|
40
|
+
*/
|
|
42
41
|
isAuthenticated(): boolean;
|
|
43
42
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
* Get token expiration date
|
|
44
|
+
*/
|
|
46
45
|
getTokenExpiration(): Date | null;
|
|
47
46
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
* Get current token set
|
|
48
|
+
*/
|
|
50
49
|
getTokenSet(): TokenSet | null;
|
|
51
50
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
* Build authorization URL (Developer Portal mode only)
|
|
52
|
+
*/
|
|
54
53
|
buildAuthUrl(state?: string): {
|
|
55
54
|
url: string;
|
|
56
55
|
state: string;
|
|
57
56
|
};
|
|
58
57
|
/**
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
* Exchange authorization code for tokens (Developer Portal mode only)
|
|
59
|
+
*/
|
|
61
60
|
exchangeCode(code: string): Promise<TokenSet>;
|
|
62
61
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
* Revoke authentication
|
|
63
|
+
*/
|
|
65
64
|
revokeAuth(): Promise<void>;
|
|
66
65
|
/**
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
* Get all cloud devices
|
|
67
|
+
*/
|
|
69
68
|
getCloudDevices(): Promise<DaikinCloudDevice[]>;
|
|
70
69
|
/**
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
* Update all device data from the cloud
|
|
71
|
+
*/
|
|
73
72
|
updateAllDeviceData(): Promise<void>;
|
|
74
73
|
/**
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
* Check if rate limited
|
|
75
|
+
*/
|
|
77
76
|
isRateLimited(): boolean;
|
|
78
77
|
/**
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
* Get rate limit retry time
|
|
79
|
+
*/
|
|
81
80
|
getRateLimitRetryAfter(): number;
|
|
82
81
|
/**
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
* Enable and connect WebSocket for real-time updates
|
|
83
|
+
*/
|
|
85
84
|
enableWebSocket(): Promise<void>;
|
|
86
85
|
/**
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
* Disable and disconnect WebSocket
|
|
87
|
+
*/
|
|
89
88
|
disableWebSocket(): void;
|
|
90
89
|
/**
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
* Check if WebSocket is enabled
|
|
91
|
+
*/
|
|
93
92
|
isWebSocketEnabled(): boolean;
|
|
94
93
|
/**
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
* Check if WebSocket is connected
|
|
95
|
+
*/
|
|
97
96
|
isWebSocketConnected(): boolean;
|
|
98
97
|
/**
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
* Get WebSocket connection state
|
|
99
|
+
*/
|
|
101
100
|
getWebSocketState(): WebSocketState;
|
|
102
101
|
}
|
|
103
|
-
export { DaikinCloudDevice } from './daikin-device';
|
|
104
|
-
export { RateLimitedError } from './daikin-api';
|
|
105
|
-
export { DaikinOAuth } from './daikin-oauth';
|
|
106
|
-
export { DaikinApi } from './daikin-api';
|
|
107
|
-
export * from './daikin-types';
|
|
108
102
|
//# 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
|
|
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;IAoD/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"}
|
|
@@ -5,22 +5,8 @@
|
|
|
5
5
|
* Main controller that ties together OAuth, API, WebSocket, and device management.
|
|
6
6
|
* Supports both Developer Portal and Mobile App authentication methods.
|
|
7
7
|
*/
|
|
8
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
-
if (k2 === undefined) k2 = k;
|
|
10
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(o, k2, desc);
|
|
15
|
-
}) : (function(o, m, k, k2) {
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
o[k2] = m[k];
|
|
18
|
-
}));
|
|
19
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
-
};
|
|
22
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.
|
|
9
|
+
exports.DaikinCloudController = void 0;
|
|
24
10
|
const node_events_1 = require("node:events");
|
|
25
11
|
const daikin_oauth_1 = require("./daikin-oauth");
|
|
26
12
|
const daikin_mobile_oauth_1 = require("./daikin-mobile-oauth");
|
|
@@ -68,15 +54,15 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
68
54
|
this.setupWebSocketHandlers();
|
|
69
55
|
}
|
|
70
56
|
/**
|
|
71
|
-
|
|
72
|
-
|
|
57
|
+
* Get the authentication mode
|
|
58
|
+
*/
|
|
73
59
|
getAuthMode() {
|
|
74
60
|
return this.authMode;
|
|
75
61
|
}
|
|
76
62
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
63
|
+
* Authenticate with mobile app credentials (only for mobile_app mode)
|
|
64
|
+
* Must be called before using the API when using mobile_app mode without existing tokens.
|
|
65
|
+
*/
|
|
80
66
|
async authenticateMobile() {
|
|
81
67
|
if (this.authMode !== 'mobile_app' || !this.mobileOAuth) {
|
|
82
68
|
throw new Error('Mobile authentication is only available in mobile_app mode');
|
|
@@ -84,8 +70,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
84
70
|
return this.mobileOAuth.authenticate();
|
|
85
71
|
}
|
|
86
72
|
/**
|
|
87
|
-
|
|
88
|
-
|
|
73
|
+
* Set up WebSocket event handlers
|
|
74
|
+
*/
|
|
89
75
|
setupWebSocketHandlers() {
|
|
90
76
|
this.websocket.on('connected', () => {
|
|
91
77
|
this.emit('websocket_connected');
|
|
@@ -101,8 +87,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
101
87
|
});
|
|
102
88
|
}
|
|
103
89
|
/**
|
|
104
|
-
|
|
105
|
-
|
|
90
|
+
* Handle device updates from WebSocket
|
|
91
|
+
*/
|
|
106
92
|
handleWebSocketDeviceUpdate(update) {
|
|
107
93
|
const device = this.devices.find(d => d.getId() === update.deviceId);
|
|
108
94
|
if (device) {
|
|
@@ -114,26 +100,26 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
114
100
|
}
|
|
115
101
|
}
|
|
116
102
|
/**
|
|
117
|
-
|
|
118
|
-
|
|
103
|
+
* Check if authenticated
|
|
104
|
+
*/
|
|
119
105
|
isAuthenticated() {
|
|
120
106
|
return this.oauth.isAuthenticated();
|
|
121
107
|
}
|
|
122
108
|
/**
|
|
123
|
-
|
|
124
|
-
|
|
109
|
+
* Get token expiration date
|
|
110
|
+
*/
|
|
125
111
|
getTokenExpiration() {
|
|
126
112
|
return this.oauth.getTokenExpiration();
|
|
127
113
|
}
|
|
128
114
|
/**
|
|
129
|
-
|
|
130
|
-
|
|
115
|
+
* Get current token set
|
|
116
|
+
*/
|
|
131
117
|
getTokenSet() {
|
|
132
118
|
return this.oauth.getTokenSet();
|
|
133
119
|
}
|
|
134
120
|
/**
|
|
135
|
-
|
|
136
|
-
|
|
121
|
+
* Build authorization URL (Developer Portal mode only)
|
|
122
|
+
*/
|
|
137
123
|
buildAuthUrl(state) {
|
|
138
124
|
if (!this.devPortalOAuth) {
|
|
139
125
|
throw new Error('buildAuthUrl is only available in developer_portal mode');
|
|
@@ -141,8 +127,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
141
127
|
return this.devPortalOAuth.buildAuthUrl(state);
|
|
142
128
|
}
|
|
143
129
|
/**
|
|
144
|
-
|
|
145
|
-
|
|
130
|
+
* Exchange authorization code for tokens (Developer Portal mode only)
|
|
131
|
+
*/
|
|
146
132
|
async exchangeCode(code) {
|
|
147
133
|
if (!this.devPortalOAuth) {
|
|
148
134
|
throw new Error('exchangeCode is only available in developer_portal mode');
|
|
@@ -150,8 +136,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
150
136
|
return this.devPortalOAuth.exchangeCode(code);
|
|
151
137
|
}
|
|
152
138
|
/**
|
|
153
|
-
|
|
154
|
-
|
|
139
|
+
* Revoke authentication
|
|
140
|
+
*/
|
|
155
141
|
async revokeAuth() {
|
|
156
142
|
if (this.devPortalOAuth) {
|
|
157
143
|
return this.devPortalOAuth.revokeToken();
|
|
@@ -161,8 +147,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
161
147
|
}
|
|
162
148
|
}
|
|
163
149
|
/**
|
|
164
|
-
|
|
165
|
-
|
|
150
|
+
* Get all cloud devices
|
|
151
|
+
*/
|
|
166
152
|
async getCloudDevices() {
|
|
167
153
|
if (!this.oauth.isAuthenticated()) {
|
|
168
154
|
throw new Error('Not authenticated. Please authenticate first.');
|
|
@@ -180,20 +166,20 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
180
166
|
return this.devices;
|
|
181
167
|
}
|
|
182
168
|
/**
|
|
183
|
-
|
|
184
|
-
|
|
169
|
+
* Update all device data from the cloud
|
|
170
|
+
*/
|
|
185
171
|
async updateAllDeviceData() {
|
|
186
172
|
await this.getCloudDevices();
|
|
187
173
|
}
|
|
188
174
|
/**
|
|
189
|
-
|
|
190
|
-
|
|
175
|
+
* Check if rate limited
|
|
176
|
+
*/
|
|
191
177
|
isRateLimited() {
|
|
192
178
|
return this.api.isRateLimited();
|
|
193
179
|
}
|
|
194
180
|
/**
|
|
195
|
-
|
|
196
|
-
|
|
181
|
+
* Get rate limit retry time
|
|
182
|
+
*/
|
|
197
183
|
getRateLimitRetryAfter() {
|
|
198
184
|
return this.api.getRateLimitRetryAfter();
|
|
199
185
|
}
|
|
@@ -201,8 +187,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
201
187
|
// WebSocket methods
|
|
202
188
|
// =========================================================================
|
|
203
189
|
/**
|
|
204
|
-
|
|
205
|
-
|
|
190
|
+
* Enable and connect WebSocket for real-time updates
|
|
191
|
+
*/
|
|
206
192
|
async enableWebSocket() {
|
|
207
193
|
if (!this.oauth.isAuthenticated()) {
|
|
208
194
|
throw new Error('Cannot enable WebSocket: not authenticated');
|
|
@@ -211,40 +197,30 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
211
197
|
await this.websocket.connect();
|
|
212
198
|
}
|
|
213
199
|
/**
|
|
214
|
-
|
|
215
|
-
|
|
200
|
+
* Disable and disconnect WebSocket
|
|
201
|
+
*/
|
|
216
202
|
disableWebSocket() {
|
|
217
203
|
this.websocketEnabled = false;
|
|
218
204
|
this.websocket.disconnect();
|
|
219
205
|
}
|
|
220
206
|
/**
|
|
221
|
-
|
|
222
|
-
|
|
207
|
+
* Check if WebSocket is enabled
|
|
208
|
+
*/
|
|
223
209
|
isWebSocketEnabled() {
|
|
224
210
|
return this.websocketEnabled;
|
|
225
211
|
}
|
|
226
212
|
/**
|
|
227
|
-
|
|
228
|
-
|
|
213
|
+
* Check if WebSocket is connected
|
|
214
|
+
*/
|
|
229
215
|
isWebSocketConnected() {
|
|
230
216
|
return this.websocket.isConnected();
|
|
231
217
|
}
|
|
232
218
|
/**
|
|
233
|
-
|
|
234
|
-
|
|
219
|
+
* Get WebSocket connection state
|
|
220
|
+
*/
|
|
235
221
|
getWebSocketState() {
|
|
236
222
|
return this.websocket.getState();
|
|
237
223
|
}
|
|
238
224
|
}
|
|
239
225
|
exports.DaikinCloudController = DaikinCloudController;
|
|
240
|
-
// Re-export types and errors
|
|
241
|
-
var daikin_device_2 = require("./daikin-device");
|
|
242
|
-
Object.defineProperty(exports, "DaikinCloudDevice", { enumerable: true, get: function () { return daikin_device_2.DaikinCloudDevice; } });
|
|
243
|
-
var daikin_api_2 = require("./daikin-api");
|
|
244
|
-
Object.defineProperty(exports, "RateLimitedError", { enumerable: true, get: function () { return daikin_api_2.RateLimitedError; } });
|
|
245
|
-
var daikin_oauth_2 = require("./daikin-oauth");
|
|
246
|
-
Object.defineProperty(exports, "DaikinOAuth", { enumerable: true, get: function () { return daikin_oauth_2.DaikinOAuth; } });
|
|
247
|
-
var daikin_api_3 = require("./daikin-api");
|
|
248
|
-
Object.defineProperty(exports, "DaikinApi", { enumerable: true, get: function () { return daikin_api_3.DaikinApi; } });
|
|
249
|
-
__exportStar(require("./daikin-types"), exports);
|
|
250
226
|
//# sourceMappingURL=daikin-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-controller.js","sourceRoot":"","sources":["../../../src/api/daikin-controller.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"daikin-controller.js","sourceRoot":"","sources":["../../../src/api/daikin-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
* Represents a Daikin device from the cloud API.
|
|
5
5
|
* Provides methods to get and set device data.
|
|
6
6
|
*/
|
|
7
|
-
/// <reference types="node" />
|
|
8
7
|
import { EventEmitter } from 'node:events';
|
|
9
|
-
import { GatewayDevice, WebSocketDeviceUpdate } from './daikin-types';
|
|
10
|
-
import { DaikinApi } from './daikin-api';
|
|
8
|
+
import type { GatewayDevice, WebSocketDeviceUpdate } from './daikin-types';
|
|
9
|
+
import type { DaikinApi } from './daikin-api';
|
|
10
|
+
export declare class DeviceOfflineError extends Error {
|
|
11
|
+
constructor(deviceId: string);
|
|
12
|
+
}
|
|
11
13
|
export interface DeviceDataPoint {
|
|
12
14
|
value: unknown;
|
|
13
15
|
values?: string[];
|
|
@@ -17,54 +19,57 @@ export interface DeviceDataPoint {
|
|
|
17
19
|
settable?: boolean;
|
|
18
20
|
}
|
|
19
21
|
export declare class DaikinCloudDevice extends EventEmitter {
|
|
20
|
-
private
|
|
22
|
+
private rawData;
|
|
21
23
|
private readonly api;
|
|
22
|
-
readonly desc: GatewayDevice;
|
|
23
24
|
private lastUpdated;
|
|
24
25
|
constructor(rawData: GatewayDevice, api: DaikinApi);
|
|
25
26
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
* Get the raw device data (replaces the old `desc` property)
|
|
28
|
+
*/
|
|
29
|
+
get desc(): GatewayDevice;
|
|
30
|
+
/**
|
|
31
|
+
* Get the device ID
|
|
32
|
+
*/
|
|
28
33
|
getId(): string;
|
|
29
34
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
* Get the device description
|
|
36
|
+
*/
|
|
32
37
|
getDescription(): {
|
|
33
38
|
deviceModel: string;
|
|
34
39
|
};
|
|
35
40
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
* Get the last update timestamp
|
|
42
|
+
*/
|
|
38
43
|
getLastUpdated(): Date;
|
|
39
44
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
* Update the last updated timestamp
|
|
46
|
+
*/
|
|
42
47
|
updateTimestamp(): void;
|
|
43
48
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
* Get data from a management point
|
|
50
|
+
*
|
|
51
|
+
* @param managementPointId - The embedded ID of the management point (e.g., 'climateControl')
|
|
52
|
+
* @param dataPoint - The data point name (e.g., 'operationMode', 'temperatureControl')
|
|
53
|
+
* @param path - Optional path within the data point (e.g., '/operationModes/cooling/setpoints/roomTemperature')
|
|
54
|
+
*/
|
|
50
55
|
getData(managementPointId: string, dataPoint: string, path: string | undefined): DeviceDataPoint;
|
|
51
56
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
* Set data on a management point
|
|
58
|
+
*
|
|
59
|
+
* @param managementPointId - The embedded ID of the management point
|
|
60
|
+
* @param dataPoint - The data point name
|
|
61
|
+
* @param pathOrValue - Either the path within the data point, or the value if no path
|
|
62
|
+
* @param valueOrUndefined - The value to set, or undefined if pathOrValue is the value
|
|
63
|
+
*/
|
|
59
64
|
setData(managementPointId: string, dataPoint: string, pathOrValue: string | unknown, valueOrUndefined: unknown): Promise<void>;
|
|
60
65
|
/**
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
* Update the raw device data (after refresh from API)
|
|
67
|
+
*/
|
|
63
68
|
updateRawData(newData: GatewayDevice): void;
|
|
64
69
|
/**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
* Apply a WebSocket update to the device's raw data
|
|
71
|
+
* This updates the in-memory data without making an API call
|
|
72
|
+
*/
|
|
68
73
|
applyWebSocketUpdate(update: WebSocketDeviceUpdate): void;
|
|
69
74
|
private getManagementPoint;
|
|
70
75
|
private navigatePath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-device.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":"AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"daikin-device.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAmB,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,iBAAkB,SAAQ,YAAY;IAI3C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJ1B,OAAO,CAAC,WAAW,CAAoB;gBAGzB,OAAO,EAAE,aAAa,EACb,GAAG,EAAE,SAAS;IAKrC;;SAEK;IACL,IAAI,IAAI,IAAI,aAAa,CAExB;IAED;;SAEK;IACL,KAAK,IAAI,MAAM;IAIf;;SAEK;IACL,cAAc,IAAI;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;IAMzC;;SAEK;IACL,cAAc,IAAI,IAAI;IAItB;;SAEK;IACL,eAAe,IAAI,IAAI;IAIvB;;;;;;SAMK;IACL,OAAO,CACL,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,eAAe;IAoBlB;;;;;;;SAOK;IACC,OAAO,CACX,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,OAAO,EAC7B,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;SAEK;IACL,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAK3C;;;SAGK;IACL,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IA8CzD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,YAAY;CAiCrB"}
|