@mp-consulting/homebridge-daikin-cloud 1.3.6 → 1.3.8
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 +3 -1
- 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 +5 -5
- package/dist/src/accessories/base-accessory.d.ts.map +1 -1
- package/dist/src/accessories/base-accessory.js +7 -4
- package/dist/src/accessories/base-accessory.js.map +1 -1
- package/dist/src/api/daikin-api.d.ts +25 -25
- package/dist/src/api/daikin-api.d.ts.map +1 -1
- package/dist/src/api/daikin-api.js +41 -31
- 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.map +1 -1
- package/dist/src/api/daikin-controller.d.ts +41 -42
- package/dist/src/api/daikin-controller.d.ts.map +1 -1
- package/dist/src/api/daikin-controller.js +39 -39
- package/dist/src/api/daikin-controller.js.map +1 -1
- package/dist/src/api/daikin-device.d.ts +33 -31
- package/dist/src/api/daikin-device.d.ts.map +1 -1
- package/dist/src/api/daikin-device.js +40 -29
- package/dist/src/api/daikin-device.js.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.d.ts +16 -16
- package/dist/src/api/daikin-mobile-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.js +32 -22
- package/dist/src/api/daikin-mobile-oauth.js.map +1 -1
- package/dist/src/api/daikin-oauth.d.ts +29 -29
- package/dist/src/api/daikin-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-oauth.js +45 -35
- package/dist/src/api/daikin-oauth.js.map +1 -1
- package/dist/src/api/daikin-schemas.d.ts +4 -4
- package/dist/src/api/daikin-schemas.js +3 -3
- package/dist/src/api/daikin-schemas.js.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 +30 -30
- package/dist/src/api/daikin-websocket.js.map +1 -1
- package/dist/src/api/index.d.ts +1 -1
- package/dist/src/api/index.d.ts.map +1 -1
- package/dist/src/api/index.js +2 -1
- package/dist/src/api/index.js.map +1 -1
- package/dist/src/api/token-storage.d.ts +1 -1
- package/dist/src/api/token-storage.d.ts.map +1 -1
- package/dist/src/api/token-storage.js +20 -11
- package/dist/src/api/token-storage.js.map +1 -1
- 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.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 +6 -6
- 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 -1
- package/dist/src/device/capability-docs.d.ts.map +1 -1
- package/dist/src/device/capability-docs.js +1 -2
- 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 -8
- package/dist/src/features/feature-manager.d.ts.map +1 -1
- package/dist/src/features/feature-manager.js +5 -5
- 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 +6 -5
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/platform.js +2 -2
- 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 +53 -59
- 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 +31 -34
- 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 +24 -24
- package/homebridge-ui/public/lib/kit.css +253 -0
- package/homebridge-ui/public/lib/kit.js +133 -0
- package/homebridge-ui/public/script.js +957 -898
- package/homebridge-ui/public/styles.css +0 -1
- package/homebridge-ui/server.js +739 -695
- package/package.json +30 -25
- package/.claude/settings.json +0 -3
- package/.claude/settings.local.json +0 -24
- package/CHANGELOG.md +0 -114
- package/CLAUDE.md +0 -269
- package/config.md +0 -2
- 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 -21
- 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/hbConfig/.daikin-mobile-tokenset +0 -8
- package/test/hbConfig/.uix-dashboard.json +0 -1
- package/test/hbConfig/.uix-secrets +0 -1
- package/test/hbConfig/accessories/.cachedAccessories.bak +0 -1
- package/test/hbConfig/accessories/cachedAccessories +0 -1
- package/test/hbConfig/accessories/uiAccessoriesLayout.json +0 -1
- package/test/hbConfig/auth.json +0 -10
- package/test/hbConfig/backups/config-backups/config.json.1767953686461 +0 -25
- package/test/hbConfig/backups/config-backups/config.json.1767953695236 +0 -29
- package/test/hbConfig/backups/config-backups/config.json.1767953814763 +0 -29
- package/test/hbConfig/backups/config-backups/config.json.1767953823101 +0 -29
- package/test/hbConfig/backups/config-backups/config.json.1767954822835 +0 -29
- package/test/hbConfig/backups/config-backups/config.json.1767954859218 +0 -29
- package/test/hbConfig/backups/config-backups/config.json.1767960145503 +0 -33
- package/test/hbConfig/backups/config-backups/config.json.1767960168068 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960170333 +0 -46
- package/test/hbConfig/backups/config-backups/config.json.1767960172731 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960179323 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960182114 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960189302 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960195194 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960197301 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960199151 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960199667 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960329839 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960334503 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960336208 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767960338537 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767963223953 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767963241753 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767963252785 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767963463944 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767963834475 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767963838474 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767963843066 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767965217715 +0 -44
- package/test/hbConfig/backups/config-backups/config.json.1767965419624 +0 -25
- package/test/hbConfig/backups/config-backups/config.json.1767965870934 +0 -32
- package/test/hbConfig/backups/config-backups/config.json.1767977675045 +0 -32
- package/test/hbConfig/backups/config-backups/config.json.1767977677222 +0 -33
- package/test/hbConfig/backups/config-backups/config.json.1767977710226 +0 -33
- package/test/hbConfig/backups/config-backups/config.json.1767977741397 +0 -33
- package/test/hbConfig/backups/config-backups/config.json.1767977977093 +0 -35
- package/test/hbConfig/backups/config-backups/config.json.1767977981773 +0 -35
- package/test/hbConfig/backups/config-backups/config.json.1767977986514 +0 -35
- package/test/hbConfig/backups/config-backups/config.json.1767977991174 +0 -35
- package/test/hbConfig/backups/config-backups/config.json.1767979424487 +0 -35
- package/test/hbConfig/backups/config-backups/config.json.1767979424987 +0 -35
- package/test/hbConfig/backups/config-backups/config.json.1767979432646 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979433150 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979436933 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979437438 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979441676 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979442180 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979466735 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979903636 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979904135 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979906606 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767979907108 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988702341 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988702837 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988713159 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988713664 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988918139 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988918639 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988921120 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988921624 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988930307 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988935070 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767988935574 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767989710262 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767989710760 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767989729668 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767990295225 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767990479921 +0 -47
- package/test/hbConfig/backups/config-backups/config.json.1767990481702 +0 -49
- package/test/hbConfig/backups/instance-backups/homebridge-backup-1E4A432551BA.1768010187391.tar.gz +0 -0
- package/test/hbConfig/backups/instance-backups/homebridge-backup-1E4A432551BA.1768096587387.tar.gz +0 -0
- package/test/hbConfig/backups/instance-backups/homebridge-backup-1E4A432551BA.1768182987404.tar.gz +0 -0
- package/test/hbConfig/config.json +0 -47
- package/test/hbConfig/daikin-cloud-certs/server.crt +0 -22
- package/test/hbConfig/daikin-cloud-certs/server.key +0 -28
- package/test/hbConfig/persist/AccessoryInfo.1E4A432551BA.json +0 -1
- package/test/hbConfig/persist/IdentifierCache.1E4A432551BA.json +0 -1
- package/test/hbConfig/tmp/daikin_request/api.onecta.daikineurope.com_01-09-2026-23-29-52/request_14758 +0 -1
- package/test/hbConfig/tmp/daikin_request/api.onecta.daikineurope.com_01-09-2026-23-29-52/request_14759 +0 -1
- package/test/hbConfig/tmp/daikin_request/api.onecta.daikineurope.com_01-09-2026-23-29-52/request_14760 +0 -1
- package/test/hbConfig/tmp/daikin_request/api.onecta.daikineurope.com_01-09-2026-23-29-52/request_14761 +0 -1
- package/test/hbConfig/tmp/daikin_request/api.onecta.daikineurope.com_01-09-2026-23-29-52/request_14762 +0 -1
- package/test/hbConfig/tmp/daikin_request/api.onecta.daikineurope.com_01-09-2026-23-29-52/request_14764 +0 -1
- package/test/helpers/test-isolation.ts +0 -228
- package/test/integration/air-conditioning.test.ts +0 -396
- package/test/integration/altherma.test.ts +0 -279
- package/test/integration/platform.test.ts +0 -118
- package/test/mobile-tokens.json +0 -8
- 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 -442
- package/test/unit/api/daikin-cloud-repository.test.ts +0 -107
- package/test/unit/api/daikin-oauth.test.ts +0 -214
- package/test/unit/api/daikinCloud.test.ts +0 -12
- package/test/unit/api/token-storage.test.ts +0 -90
- package/test/unit/config/config-manager.test.ts +0 -271
- package/test/unit/device/daikin-device.test.ts +0 -73
- package/test/unit/services/hot-water-tank.service.test.ts +0 -123
- package/test/unit/utils/log-context.test.ts +0 -271
- package/test/unit/utils/update-mapper.test.ts +0 -404
|
@@ -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"}
|
|
@@ -54,15 +54,15 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
54
54
|
this.setupWebSocketHandlers();
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
* Get the authentication mode
|
|
58
|
+
*/
|
|
59
59
|
getAuthMode() {
|
|
60
60
|
return this.authMode;
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
+
*/
|
|
66
66
|
async authenticateMobile() {
|
|
67
67
|
if (this.authMode !== 'mobile_app' || !this.mobileOAuth) {
|
|
68
68
|
throw new Error('Mobile authentication is only available in mobile_app mode');
|
|
@@ -70,8 +70,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
70
70
|
return this.mobileOAuth.authenticate();
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
* Set up WebSocket event handlers
|
|
74
|
+
*/
|
|
75
75
|
setupWebSocketHandlers() {
|
|
76
76
|
this.websocket.on('connected', () => {
|
|
77
77
|
this.emit('websocket_connected');
|
|
@@ -87,8 +87,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
* Handle device updates from WebSocket
|
|
91
|
+
*/
|
|
92
92
|
handleWebSocketDeviceUpdate(update) {
|
|
93
93
|
const device = this.devices.find(d => d.getId() === update.deviceId);
|
|
94
94
|
if (device) {
|
|
@@ -100,26 +100,26 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
* Check if authenticated
|
|
104
|
+
*/
|
|
105
105
|
isAuthenticated() {
|
|
106
106
|
return this.oauth.isAuthenticated();
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
* Get token expiration date
|
|
110
|
+
*/
|
|
111
111
|
getTokenExpiration() {
|
|
112
112
|
return this.oauth.getTokenExpiration();
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
* Get current token set
|
|
116
|
+
*/
|
|
117
117
|
getTokenSet() {
|
|
118
118
|
return this.oauth.getTokenSet();
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
* Build authorization URL (Developer Portal mode only)
|
|
122
|
+
*/
|
|
123
123
|
buildAuthUrl(state) {
|
|
124
124
|
if (!this.devPortalOAuth) {
|
|
125
125
|
throw new Error('buildAuthUrl is only available in developer_portal mode');
|
|
@@ -127,8 +127,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
127
127
|
return this.devPortalOAuth.buildAuthUrl(state);
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
* Exchange authorization code for tokens (Developer Portal mode only)
|
|
131
|
+
*/
|
|
132
132
|
async exchangeCode(code) {
|
|
133
133
|
if (!this.devPortalOAuth) {
|
|
134
134
|
throw new Error('exchangeCode is only available in developer_portal mode');
|
|
@@ -136,8 +136,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
136
136
|
return this.devPortalOAuth.exchangeCode(code);
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
* Revoke authentication
|
|
140
|
+
*/
|
|
141
141
|
async revokeAuth() {
|
|
142
142
|
if (this.devPortalOAuth) {
|
|
143
143
|
return this.devPortalOAuth.revokeToken();
|
|
@@ -147,8 +147,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
/**
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
* Get all cloud devices
|
|
151
|
+
*/
|
|
152
152
|
async getCloudDevices() {
|
|
153
153
|
if (!this.oauth.isAuthenticated()) {
|
|
154
154
|
throw new Error('Not authenticated. Please authenticate first.');
|
|
@@ -166,20 +166,20 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
166
166
|
return this.devices;
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
* Update all device data from the cloud
|
|
170
|
+
*/
|
|
171
171
|
async updateAllDeviceData() {
|
|
172
172
|
await this.getCloudDevices();
|
|
173
173
|
}
|
|
174
174
|
/**
|
|
175
|
-
|
|
176
|
-
|
|
175
|
+
* Check if rate limited
|
|
176
|
+
*/
|
|
177
177
|
isRateLimited() {
|
|
178
178
|
return this.api.isRateLimited();
|
|
179
179
|
}
|
|
180
180
|
/**
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
* Get rate limit retry time
|
|
182
|
+
*/
|
|
183
183
|
getRateLimitRetryAfter() {
|
|
184
184
|
return this.api.getRateLimitRetryAfter();
|
|
185
185
|
}
|
|
@@ -187,8 +187,8 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
187
187
|
// WebSocket methods
|
|
188
188
|
// =========================================================================
|
|
189
189
|
/**
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
* Enable and connect WebSocket for real-time updates
|
|
191
|
+
*/
|
|
192
192
|
async enableWebSocket() {
|
|
193
193
|
if (!this.oauth.isAuthenticated()) {
|
|
194
194
|
throw new Error('Cannot enable WebSocket: not authenticated');
|
|
@@ -197,27 +197,27 @@ class DaikinCloudController extends node_events_1.EventEmitter {
|
|
|
197
197
|
await this.websocket.connect();
|
|
198
198
|
}
|
|
199
199
|
/**
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
* Disable and disconnect WebSocket
|
|
201
|
+
*/
|
|
202
202
|
disableWebSocket() {
|
|
203
203
|
this.websocketEnabled = false;
|
|
204
204
|
this.websocket.disconnect();
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
207
|
-
|
|
208
|
-
|
|
207
|
+
* Check if WebSocket is enabled
|
|
208
|
+
*/
|
|
209
209
|
isWebSocketEnabled() {
|
|
210
210
|
return this.websocketEnabled;
|
|
211
211
|
}
|
|
212
212
|
/**
|
|
213
|
-
|
|
214
|
-
|
|
213
|
+
* Check if WebSocket is connected
|
|
214
|
+
*/
|
|
215
215
|
isWebSocketConnected() {
|
|
216
216
|
return this.websocket.isConnected();
|
|
217
217
|
}
|
|
218
218
|
/**
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
* Get WebSocket connection state
|
|
220
|
+
*/
|
|
221
221
|
getWebSocketState() {
|
|
222
222
|
return this.websocket.getState();
|
|
223
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-controller.js","sourceRoot":"","sources":["../../../src/api/daikin-controller.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,
|
|
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[];
|
|
@@ -22,52 +24,52 @@ export declare class DaikinCloudDevice extends EventEmitter {
|
|
|
22
24
|
private lastUpdated;
|
|
23
25
|
constructor(rawData: GatewayDevice, api: DaikinApi);
|
|
24
26
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
* Get the raw device data (replaces the old `desc` property)
|
|
28
|
+
*/
|
|
27
29
|
get desc(): GatewayDevice;
|
|
28
30
|
/**
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
* Get the device ID
|
|
32
|
+
*/
|
|
31
33
|
getId(): string;
|
|
32
34
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
* Get the device description
|
|
36
|
+
*/
|
|
35
37
|
getDescription(): {
|
|
36
38
|
deviceModel: string;
|
|
37
39
|
};
|
|
38
40
|
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
* Get the last update timestamp
|
|
42
|
+
*/
|
|
41
43
|
getLastUpdated(): Date;
|
|
42
44
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
* Update the last updated timestamp
|
|
46
|
+
*/
|
|
45
47
|
updateTimestamp(): void;
|
|
46
48
|
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
+
*/
|
|
53
55
|
getData(managementPointId: string, dataPoint: string, path: string | undefined): DeviceDataPoint;
|
|
54
56
|
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
+
*/
|
|
62
64
|
setData(managementPointId: string, dataPoint: string, pathOrValue: string | unknown, valueOrUndefined: unknown): Promise<void>;
|
|
63
65
|
/**
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
* Update the raw device data (after refresh from API)
|
|
67
|
+
*/
|
|
66
68
|
updateRawData(newData: GatewayDevice): void;
|
|
67
69
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
* Apply a WebSocket update to the device's raw data
|
|
71
|
+
* This updates the in-memory data without making an API call
|
|
72
|
+
*/
|
|
71
73
|
applyWebSocketUpdate(update: WebSocketDeviceUpdate): void;
|
|
72
74
|
private getManagementPoint;
|
|
73
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"}
|
|
@@ -6,8 +6,15 @@
|
|
|
6
6
|
* Provides methods to get and set device data.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.DaikinCloudDevice = void 0;
|
|
9
|
+
exports.DaikinCloudDevice = exports.DeviceOfflineError = void 0;
|
|
10
10
|
const node_events_1 = require("node:events");
|
|
11
|
+
class DeviceOfflineError extends Error {
|
|
12
|
+
constructor(deviceId) {
|
|
13
|
+
super(`Device ${deviceId} is offline (cloud connection down)`);
|
|
14
|
+
this.name = 'DeviceOfflineError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.DeviceOfflineError = DeviceOfflineError;
|
|
11
18
|
class DaikinCloudDevice extends node_events_1.EventEmitter {
|
|
12
19
|
rawData;
|
|
13
20
|
api;
|
|
@@ -18,44 +25,44 @@ class DaikinCloudDevice extends node_events_1.EventEmitter {
|
|
|
18
25
|
this.api = api;
|
|
19
26
|
}
|
|
20
27
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
* Get the raw device data (replaces the old `desc` property)
|
|
29
|
+
*/
|
|
23
30
|
get desc() {
|
|
24
31
|
return this.rawData;
|
|
25
32
|
}
|
|
26
33
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
* Get the device ID
|
|
35
|
+
*/
|
|
29
36
|
getId() {
|
|
30
37
|
return this.rawData.id;
|
|
31
38
|
}
|
|
32
39
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
* Get the device description
|
|
41
|
+
*/
|
|
35
42
|
getDescription() {
|
|
36
43
|
return {
|
|
37
44
|
deviceModel: this.rawData.deviceModel || 'Unknown',
|
|
38
45
|
};
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
* Get the last update timestamp
|
|
49
|
+
*/
|
|
43
50
|
getLastUpdated() {
|
|
44
51
|
return this.lastUpdated;
|
|
45
52
|
}
|
|
46
53
|
/**
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
* Update the last updated timestamp
|
|
55
|
+
*/
|
|
49
56
|
updateTimestamp() {
|
|
50
57
|
this.lastUpdated = new Date();
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
* Get data from a management point
|
|
61
|
+
*
|
|
62
|
+
* @param managementPointId - The embedded ID of the management point (e.g., 'climateControl')
|
|
63
|
+
* @param dataPoint - The data point name (e.g., 'operationMode', 'temperatureControl')
|
|
64
|
+
* @param path - Optional path within the data point (e.g., '/operationModes/cooling/setpoints/roomTemperature')
|
|
65
|
+
*/
|
|
59
66
|
getData(managementPointId, dataPoint, path) {
|
|
60
67
|
const managementPoint = this.getManagementPoint(managementPointId);
|
|
61
68
|
if (!managementPoint) {
|
|
@@ -73,16 +80,20 @@ class DaikinCloudDevice extends node_events_1.EventEmitter {
|
|
|
73
80
|
return this.navigatePath(data, path);
|
|
74
81
|
}
|
|
75
82
|
/**
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
* Set data on a management point
|
|
84
|
+
*
|
|
85
|
+
* @param managementPointId - The embedded ID of the management point
|
|
86
|
+
* @param dataPoint - The data point name
|
|
87
|
+
* @param pathOrValue - Either the path within the data point, or the value if no path
|
|
88
|
+
* @param valueOrUndefined - The value to set, or undefined if pathOrValue is the value
|
|
89
|
+
*/
|
|
83
90
|
async setData(managementPointId, dataPoint, pathOrValue, valueOrUndefined) {
|
|
84
91
|
let path;
|
|
85
92
|
let value;
|
|
93
|
+
// Check if device cloud connection is up before attempting write
|
|
94
|
+
if (this.rawData.isCloudConnectionUp?.value === false) {
|
|
95
|
+
throw new DeviceOfflineError(this.rawData.id);
|
|
96
|
+
}
|
|
86
97
|
// Determine which overload was used
|
|
87
98
|
if (valueOrUndefined !== undefined) {
|
|
88
99
|
// setData(managementPointId, dataPoint, path, value)
|
|
@@ -99,16 +110,16 @@ class DaikinCloudDevice extends node_events_1.EventEmitter {
|
|
|
99
110
|
this.lastUpdated = new Date();
|
|
100
111
|
}
|
|
101
112
|
/**
|
|
102
|
-
|
|
103
|
-
|
|
113
|
+
* Update the raw device data (after refresh from API)
|
|
114
|
+
*/
|
|
104
115
|
updateRawData(newData) {
|
|
105
116
|
this.rawData = newData;
|
|
106
117
|
this.lastUpdated = new Date();
|
|
107
118
|
}
|
|
108
119
|
/**
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
120
|
+
* Apply a WebSocket update to the device's raw data
|
|
121
|
+
* This updates the in-memory data without making an API call
|
|
122
|
+
*/
|
|
112
123
|
applyWebSocketUpdate(update) {
|
|
113
124
|
const managementPoint = this.getManagementPoint(update.embeddedId);
|
|
114
125
|
if (!managementPoint) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-device.js","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"daikin-device.js","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - WebSocket access for real-time device updates
|
|
8
8
|
* - Automatic token refresh
|
|
9
9
|
*/
|
|
10
|
-
import { TokenSet, MobileClientConfig } from './daikin-types';
|
|
10
|
+
import type { TokenSet, MobileClientConfig } from './daikin-types';
|
|
11
11
|
export declare class DaikinMobileOAuth {
|
|
12
12
|
private readonly config;
|
|
13
13
|
private readonly onTokenUpdate?;
|
|
@@ -17,34 +17,34 @@ export declare class DaikinMobileOAuth {
|
|
|
17
17
|
private cookies;
|
|
18
18
|
constructor(config: MobileClientConfig, onTokenUpdate?: ((tokenSet: TokenSet) => void) | undefined, onError?: ((error: Error) => void) | undefined);
|
|
19
19
|
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
* Authenticate with email and password using mobile app flow.
|
|
21
|
+
* Returns tokens with WebSocket access and 5000/day rate limit.
|
|
22
|
+
*/
|
|
23
23
|
authenticate(): Promise<TokenSet>;
|
|
24
24
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
* Refresh the access token
|
|
26
|
+
*/
|
|
27
27
|
refreshToken(): Promise<TokenSet>;
|
|
28
28
|
private performRefresh;
|
|
29
29
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
* Get a valid access token, refreshing if necessary
|
|
31
|
+
*/
|
|
32
32
|
getAccessToken(): Promise<string>;
|
|
33
33
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
* Check if we have a valid token
|
|
35
|
+
*/
|
|
36
36
|
isAuthenticated(): boolean;
|
|
37
37
|
/**
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
* Get token expiration date
|
|
39
|
+
*/
|
|
40
40
|
getTokenExpiration(): Date | null;
|
|
41
41
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
* Get current token set (for status display)
|
|
43
|
+
*/
|
|
44
44
|
getTokenSet(): TokenSet | null;
|
|
45
45
|
/**
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
* Clear stored tokens
|
|
47
|
+
*/
|
|
48
48
|
clearTokens(): void;
|
|
49
49
|
private generatePKCE;
|
|
50
50
|
private getOidcContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-mobile-oauth.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-mobile-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"daikin-mobile-oauth.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-mobile-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAmBnE,qBAAa,iBAAiB;IAMtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAP/B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,OAAO,CAAM;gBAGE,MAAM,EAAE,kBAAkB,EAC1B,aAAa,CAAC,GAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,aAAA,EAC5C,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,aAAA;IAKvD;;;SAGK;IACC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;IAsBvC;;SAEK;IACC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;YAqBzB,cAAc;IA+B5B;;SAEK;IACC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAmBvC;;SAEK;IACL,eAAe,IAAI,OAAO;IAI1B;;SAEK;IACL,kBAAkB,IAAI,IAAI,GAAG,IAAI;IAOjC;;SAEK;IACL,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B;;SAEK;IACL,WAAW,IAAI,IAAI;IASnB,OAAO,CAAC,YAAY;YAMN,cAAc;YA2Bd,YAAY;IAwC1B,OAAO,CAAC,mBAAmB;YAqBb,UAAU;YA+CV,kBAAkB;YAmClB,qBAAqB;IAqCnC,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;CA0CrB"}
|