homebridge-carrier-infinity 1.8.0 → 1.9.0-beta.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.
Files changed (76) hide show
  1. package/.devcontainer/.uix-hb-service-homebridge-startup.json.example +5 -0
  2. package/.devcontainer/README.md +211 -0
  3. package/.devcontainer/config.json.example +28 -0
  4. package/.devcontainer/devcontainer.json +55 -0
  5. package/.devcontainer/setup-homebridge.sh +51 -0
  6. package/.devcontainer/start-homebridge.sh +29 -0
  7. package/.devcontainer/stop-homebridge.sh +7 -0
  8. package/CLAUDE.md +186 -0
  9. package/dist/accessory_base.d.ts +2 -2
  10. package/dist/accessory_base.d.ts.map +1 -1
  11. package/dist/accessory_base.js.map +1 -1
  12. package/dist/api/graphql_client.d.ts +71 -0
  13. package/dist/api/graphql_client.d.ts.map +1 -0
  14. package/dist/api/graphql_client.js +261 -0
  15. package/dist/api/graphql_client.js.map +1 -0
  16. package/dist/api/graphql_operations.d.ts +56 -0
  17. package/dist/api/graphql_operations.d.ts.map +1 -0
  18. package/dist/api/graphql_operations.js +325 -0
  19. package/dist/api/graphql_operations.js.map +1 -0
  20. package/dist/api/interface_graphql_mutations.d.ts +149 -0
  21. package/dist/api/interface_graphql_mutations.d.ts.map +1 -0
  22. package/dist/api/interface_graphql_mutations.js +8 -0
  23. package/dist/api/interface_graphql_mutations.js.map +1 -0
  24. package/dist/api/interface_graphql_system.d.ts +287 -0
  25. package/dist/api/interface_graphql_system.d.ts.map +1 -0
  26. package/dist/api/interface_graphql_system.js +9 -0
  27. package/dist/api/interface_graphql_system.js.map +1 -0
  28. package/dist/api/models_graphql.d.ts +167 -0
  29. package/dist/api/models_graphql.d.ts.map +1 -0
  30. package/dist/api/models_graphql.js +590 -0
  31. package/dist/api/models_graphql.js.map +1 -0
  32. package/dist/api/oauth2.d.ts +45 -0
  33. package/dist/api/oauth2.d.ts.map +1 -0
  34. package/dist/api/oauth2.js +35 -0
  35. package/dist/api/oauth2.js.map +1 -0
  36. package/dist/characteristics_base.d.ts +2 -2
  37. package/dist/characteristics_base.d.ts.map +1 -1
  38. package/dist/characteristics_base.js.map +1 -1
  39. package/dist/platform.d.ts +4 -4
  40. package/dist/platform.d.ts.map +1 -1
  41. package/dist/platform.js +7 -12
  42. package/dist/platform.js.map +1 -1
  43. package/dist/settings.d.ts +6 -3
  44. package/dist/settings.d.ts.map +1 -1
  45. package/dist/settings.js +7 -4
  46. package/dist/settings.js.map +1 -1
  47. package/eslint.config.mjs +172 -0
  48. package/package.json +24 -26
  49. package/dist/api/interface_config.d.ts +0 -185
  50. package/dist/api/interface_config.d.ts.map +0 -1
  51. package/dist/api/interface_config.js +0 -5
  52. package/dist/api/interface_config.js.map +0 -1
  53. package/dist/api/interface_locations.d.ts +0 -45
  54. package/dist/api/interface_locations.d.ts.map +0 -1
  55. package/dist/api/interface_locations.js +0 -5
  56. package/dist/api/interface_locations.js.map +0 -1
  57. package/dist/api/interface_profile.d.ts +0 -80
  58. package/dist/api/interface_profile.d.ts.map +0 -1
  59. package/dist/api/interface_profile.js +0 -5
  60. package/dist/api/interface_profile.js.map +0 -1
  61. package/dist/api/interface_status.d.ts +0 -90
  62. package/dist/api/interface_status.d.ts.map +0 -1
  63. package/dist/api/interface_status.js +0 -5
  64. package/dist/api/interface_status.js.map +0 -1
  65. package/dist/api/models.d.ts +0 -111
  66. package/dist/api/models.d.ts.map +0 -1
  67. package/dist/api/models.js +0 -572
  68. package/dist/api/models.js.map +0 -1
  69. package/dist/api/oauth.d.ts +0 -6
  70. package/dist/api/oauth.d.ts.map +0 -1
  71. package/dist/api/oauth.js +0 -49
  72. package/dist/api/oauth.js.map +0 -1
  73. package/dist/api/rest_client.d.ts +0 -15
  74. package/dist/api/rest_client.d.ts.map +0 -1
  75. package/dist/api/rest_client.js +0 -120
  76. package/dist/api/rest_client.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * OAuth 2.0 Authentication Helpers for Carrier Infinity GraphQL API
4
+ *
5
+ * This replaces the old OAuth 1.0 HMAC signature-based authentication
6
+ * with simple OAuth 2.0 Bearer token authentication via Okta.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OAuth2Headers = void 0;
10
+ /**
11
+ * OAuth2Headers - Simple Bearer token injection for authenticated requests
12
+ *
13
+ * This is much simpler than the old OAuth 1.0 implementation which required
14
+ * HMAC-SHA1 signatures, nonces, timestamps, and complex header generation.
15
+ */
16
+ class OAuth2Headers {
17
+ /**
18
+ * Inject Bearer token into Axios request config
19
+ *
20
+ * @param config - Axios request configuration
21
+ * @param access_token - OAuth 2.0 access token
22
+ * @param token_type - OAuth 2.0 token type (usually "Bearer")
23
+ * @returns Modified request config with Authorization header
24
+ */
25
+ static intercept(config, access_token, token_type = 'Bearer') {
26
+ if (!config.headers) {
27
+ config.headers = {};
28
+ }
29
+ // Set Authorization header with Bearer token
30
+ config.headers['Authorization'] = `${token_type} ${access_token}`;
31
+ return config;
32
+ }
33
+ }
34
+ exports.OAuth2Headers = OAuth2Headers;
35
+ //# sourceMappingURL=oauth2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../src/api/oauth2.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA0BH;;;;;GAKG;AACH,MAAa,aAAa;IACxB;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CACd,MAAkC,EAClC,YAAoB,EACpB,aAAqB,QAAQ;QAE7B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,GAAG,EAAS,CAAC;QAC7B,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC;QAElE,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAvBD,sCAuBC"}
@@ -1,4 +1,4 @@
1
- import { SystemModel } from './api/models';
1
+ import { SystemModelGraphQL } from './api/models_graphql';
2
2
  import { Service, Characteristic, Logger } from 'homebridge';
3
3
  import { CharacteristicValue, UnknownContext, WithUUID } from 'homebridge';
4
4
  import { CarrierInfinityHomebridgePlatform } from './platform';
@@ -7,7 +7,7 @@ declare class Wrapper {
7
7
  protected readonly context: UnknownContext;
8
8
  readonly Service: typeof Service;
9
9
  readonly Characteristic: typeof Characteristic;
10
- protected readonly system: SystemModel;
10
+ protected readonly system: SystemModelGraphQL;
11
11
  protected readonly log: Logger;
12
12
  constructor(platform: CarrierInfinityHomebridgePlatform, context: UnknownContext);
13
13
  wrap(service: Service): void;
@@ -1 +1 @@
1
- {"version":3,"file":"characteristics_base.d.ts","sourceRoot":"","sources":["../src/characteristics_base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAO/D,cAAM,OAAO;aAOO,QAAQ,EAAE,iCAAiC;IAC3D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc;IAP5C,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAiC;IACxE,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAwC;IAC7F,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAoD;IAC1F,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAwD;gBAGpE,QAAQ,EAAE,iCAAiC,EACxC,OAAO,EAAE,cAAc;IAI5C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAG7B;AAED,8BAAsB,YAAa,SAAQ,OAAO;IAChD,SAAS,CAAC,QAAQ,EAAE,OAAO,OAAO,EAAE,CAAM;IAE1C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAQ7B;AAED,8BAAsB,qBAAsB,SAAQ,OAAO;IACzD,SAAgB,KAAK,EAAE,QAAQ,CAAC,UAAU,cAAc,CAAC,CAAC;IAC1D,SAAS,CAAC,KAAK,KAAM;IACrB,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,GAAG,SAAS,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAE3E,SAAS,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAE3D,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAiC7B;AAED,8BAAsB,+BAAgC,SAAQ,qBAAqB;IAG3E,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAS9B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAqBrC;AAED,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAQ7B"}
1
+ {"version":3,"file":"characteristics_base.d.ts","sourceRoot":"","sources":["../src/characteristics_base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAO/D,cAAM,OAAO;aAOO,QAAQ,EAAE,iCAAiC;IAC3D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc;IAP5C,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAiC;IACxE,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAwC;IAC7F,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAoD;IACjG,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAwD;gBAGpE,QAAQ,EAAE,iCAAiC,EACxC,OAAO,EAAE,cAAc;IAI5C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAG7B;AAED,8BAAsB,YAAa,SAAQ,OAAO;IAChD,SAAS,CAAC,QAAQ,EAAE,OAAO,OAAO,EAAE,CAAM;IAE1C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAQ7B;AAED,8BAAsB,qBAAsB,SAAQ,OAAO;IACzD,SAAgB,KAAK,EAAE,QAAQ,CAAC,UAAU,cAAc,CAAC,CAAC;IAC1D,SAAS,CAAC,KAAK,KAAM;IACrB,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,GAAG,SAAS,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAE3E,SAAS,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAE3D,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAiC7B;AAED,8BAAsB,+BAAgC,SAAQ,qBAAqB;IAG3E,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAS9B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAqBrC;AAED,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAQ7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"characteristics_base.js","sourceRoot":"","sources":["../src/characteristics_base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"characteristics_base.js","sourceRoot":"","sources":["../src/characteristics_base.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
2
- import { SystemModel } from './api/models';
2
+ import { SystemModelGraphQL } from './api/models_graphql';
3
3
  import { BaseAccessory } from './accessory_base';
4
- import { InfinityRestClient } from './api/rest_client';
4
+ import { InfinityGraphQLClient } from './api/graphql_client';
5
5
  export declare class CarrierInfinityHomebridgePlatform implements DynamicPlatformPlugin {
6
6
  readonly log: Logger;
7
7
  readonly config: PlatformConfig;
@@ -10,8 +10,8 @@ export declare class CarrierInfinityHomebridgePlatform implements DynamicPlatfor
10
10
  readonly Characteristic: typeof Characteristic;
11
11
  readonly restored_accessories: Record<string, PlatformAccessory>;
12
12
  readonly accessories: Record<string, BaseAccessory>;
13
- infinity_client: InfinityRestClient;
14
- systems: Record<string, SystemModel>;
13
+ infinity_client: InfinityGraphQLClient;
14
+ systems: Record<string, SystemModelGraphQL>;
15
15
  constructor(log: Logger, config: PlatformConfig, api: API);
16
16
  configureAccessory(accessory: PlatformAccessory): void;
17
17
  discoverSystems(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5H,OAAO,EAEL,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,iCAAkC,YAAW,qBAAqB;aAc3D,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM;IAE7E,SAAgB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAM;IAGzD,eAAe,EAAE,kBAAkB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;gBAG/B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAwB1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIhD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAyEvC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5H,OAAO,EAEL,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qBAAa,iCAAkC,YAAW,qBAAqB;aAc3D,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM;IAE7E,SAAgB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAM;IAGzD,eAAe,EAAE,qBAAqB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAM;gBAGtC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAmB1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIhD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAyEvC"}
package/dist/platform.js CHANGED
@@ -4,10 +4,10 @@ exports.CarrierInfinityHomebridgePlatform = void 0;
4
4
  const settings_1 = require("./settings");
5
5
  const accessory_thermostat_1 = require("./accessory_thermostat");
6
6
  const accessory_oat_1 = require("./accessory_oat");
7
- const models_1 = require("./api/models");
7
+ const models_graphql_1 = require("./api/models_graphql");
8
8
  const accessory_envsensor_1 = require("./accessory_envsensor");
9
9
  const accessory_comfort_activity_1 = require("./accessory_comfort_activity");
10
- const rest_client_1 = require("./api/rest_client");
10
+ const graphql_client_1 = require("./api/graphql_client");
11
11
  class CarrierInfinityHomebridgePlatform {
12
12
  constructor(log, config, api) {
13
13
  this.log = log;
@@ -23,20 +23,15 @@ class CarrierInfinityHomebridgePlatform {
23
23
  if (!config.username || !config.password) {
24
24
  this.log.error('Username and password do not appear to be set in config. This is not going to work.');
25
25
  }
26
- this.infinity_client = new rest_client_1.InfinityRestClient(config['username'], config['password'], this.log);
26
+ this.infinity_client = new graphql_client_1.InfinityGraphQLClient(config['username'], config['password'], this.log);
27
27
  this.infinity_client.refreshToken().then(); // Speed up init by starting login right away
28
28
  this.api.on('didFinishLaunching', () => {
29
29
  this.discoverSystems().then().catch(error => {
30
30
  this.log.error('Could not discover devices: ' + error.message);
31
31
  });
32
32
  });
33
- // Periodically ping the carrier api to keep it in sync with the thermostat.
34
- // This does not keep HomeKit in sync, however, since the plugin does not
35
- // know how to push changes to HK yet.
36
- // TODO: try to move this into the api class when we have event based
37
- setInterval(() => {
38
- this.infinity_client.activate();
39
- }, 30 * 60 * 1000); // every 30 min
33
+ // Note: GraphQL API does not require periodic activate() calls
34
+ // Data is kept fresh via periodic fetch() calls in SystemModel
40
35
  }
41
36
  configureAccessory(accessory) {
42
37
  this.restored_accessories[accessory.UUID] = accessory;
@@ -45,10 +40,10 @@ class CarrierInfinityHomebridgePlatform {
45
40
  // Login / wait for login token to appear
46
41
  await this.infinity_client.refreshToken();
47
42
  // Query for systems, start adding accessories
48
- const systems = await new models_1.LocationsModel(this.infinity_client).getSystems();
43
+ const systems = await new models_graphql_1.LocationsModelGraphQL(this.infinity_client).getSystems();
49
44
  for (const serialNumber of systems) {
50
45
  // Create system api object, and save for later reference
51
- const system = new models_1.SystemModel(this.infinity_client, serialNumber);
46
+ const system = new models_graphql_1.SystemModelGraphQL(this.infinity_client, serialNumber);
52
47
  this.systems[serialNumber] = system;
53
48
  // Add system based accessories
54
49
  const context_system = { serialNumber: system.serialNumber };
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,11 @@ export declare const PLATFORM_NAME = "CarrierInfinity";
8
8
  export declare const PLUGIN_NAME = "homebridge-carrier-infinity";
9
9
  /**
10
10
  * Carrier/Bryant Infinity/Evolution API Settings
11
+ *
12
+ * Migrated from REST API (OAuth 1.0, XML) to GraphQL API (OAuth 2.0, JSON)
11
13
  */
12
- export declare const INFINITY_API_BASE_URL = "https://www.app-api.ing.carrier.com";
13
- export declare const INFINITY_API_CONSUMER_KEY = "8j30j19aj103911h";
14
- export declare const INFINITY_API_CONSUMER_SECRET = "0f5ur7d89sjv8d45";
14
+ export declare const INFINITY_GRAPHQL_ENDPOINT = "https://dataservice.infinity.iot.carrier.com/graphql";
15
+ export declare const INFINITY_GRAPHQL_NO_AUTH_ENDPOINT = "https://dataservice.infinity.iot.carrier.com/graphql-no-auth";
16
+ export declare const INFINITY_OAUTH_TOKEN_ENDPOINT = "https://sso.carrier.com/oauth2/default/v1/token";
17
+ export declare const INFINITY_OAUTH_CLIENT_ID = "0oa1ce7hwjuZbfOMB4x7";
15
18
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,WAAW,gCAAgC,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAC3E,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAC5D,eAAO,MAAM,4BAA4B,qBAAqB,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,WAAW,gCAAgC,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,yDAAyD,CAAC;AAChG,eAAO,MAAM,iCAAiC,iEAAiE,CAAC;AAChH,eAAO,MAAM,6BAA6B,oDAAoD,CAAC;AAC/F,eAAO,MAAM,wBAAwB,yBAAyB,CAAC"}
package/dist/settings.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INFINITY_API_CONSUMER_SECRET = exports.INFINITY_API_CONSUMER_KEY = exports.INFINITY_API_BASE_URL = exports.PLUGIN_NAME = exports.PLATFORM_NAME = void 0;
3
+ exports.INFINITY_OAUTH_CLIENT_ID = exports.INFINITY_OAUTH_TOKEN_ENDPOINT = exports.INFINITY_GRAPHQL_NO_AUTH_ENDPOINT = exports.INFINITY_GRAPHQL_ENDPOINT = exports.PLUGIN_NAME = exports.PLATFORM_NAME = void 0;
4
4
  /**
5
5
  * This is the name of the platform that users will use to register the plugin in the Homebridge config.json
6
6
  */
@@ -11,8 +11,11 @@ exports.PLATFORM_NAME = 'CarrierInfinity';
11
11
  exports.PLUGIN_NAME = 'homebridge-carrier-infinity';
12
12
  /**
13
13
  * Carrier/Bryant Infinity/Evolution API Settings
14
+ *
15
+ * Migrated from REST API (OAuth 1.0, XML) to GraphQL API (OAuth 2.0, JSON)
14
16
  */
15
- exports.INFINITY_API_BASE_URL = 'https://www.app-api.ing.carrier.com';
16
- exports.INFINITY_API_CONSUMER_KEY = '8j30j19aj103911h';
17
- exports.INFINITY_API_CONSUMER_SECRET = '0f5ur7d89sjv8d45';
17
+ exports.INFINITY_GRAPHQL_ENDPOINT = 'https://dataservice.infinity.iot.carrier.com/graphql';
18
+ exports.INFINITY_GRAPHQL_NO_AUTH_ENDPOINT = 'https://dataservice.infinity.iot.carrier.com/graphql-no-auth';
19
+ exports.INFINITY_OAUTH_TOKEN_ENDPOINT = 'https://sso.carrier.com/oauth2/default/v1/token';
20
+ exports.INFINITY_OAUTH_CLIENT_ID = '0oa1ce7hwjuZbfOMB4x7';
18
21
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,aAAa,GAAG,iBAAiB,CAAC;AAE/C;;GAEG;AACU,QAAA,WAAW,GAAG,6BAA6B,CAAC;AAEzD;;GAEG;AACU,QAAA,qBAAqB,GAAG,qCAAqC,CAAC;AAC9D,QAAA,yBAAyB,GAAG,kBAAkB,CAAC;AAC/C,QAAA,4BAA4B,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,aAAa,GAAG,iBAAiB,CAAC;AAE/C;;GAEG;AACU,QAAA,WAAW,GAAG,6BAA6B,CAAC;AAEzD;;;;GAIG;AACU,QAAA,yBAAyB,GAAG,sDAAsD,CAAC;AACnF,QAAA,iCAAiC,GAAG,8DAA8D,CAAC;AACnG,QAAA,6BAA6B,GAAG,iDAAiD,CAAC;AAClF,QAAA,wBAAwB,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,172 @@
1
+ import js from '@eslint/js';
2
+ import tseslint from 'typescript-eslint';
3
+ import spellcheck from 'eslint-plugin-spellcheck';
4
+
5
+ export default tseslint.config(
6
+ {
7
+ ignores: ['dist/**', 'node_modules/**'],
8
+ },
9
+ js.configs.recommended,
10
+ ...tseslint.configs.recommended,
11
+ {
12
+ files: ['src/**/*.ts'],
13
+ plugins: {
14
+ spellcheck,
15
+ },
16
+ languageOptions: {
17
+ parser: tseslint.parser,
18
+ parserOptions: {
19
+ ecmaVersion: 2018,
20
+ sourceType: 'module',
21
+ },
22
+ },
23
+ rules: {
24
+ 'quotes': ['warn', 'single'],
25
+ 'indent': ['warn', 2, { 'SwitchCase': 1 }],
26
+ 'semi': ['off'],
27
+ 'spellcheck/spell-checker': [
28
+ 'warn',
29
+ {
30
+ 'strings': false,
31
+ 'skipWords': [
32
+ 'accessors',
33
+ 'activityType',
34
+ 'axios',
35
+ 'blwrpm',
36
+ 'bryant',
37
+ 'cdata',
38
+ 'cfgdead',
39
+ 'cfgem',
40
+ 'cfgfan',
41
+ 'cfghumid',
42
+ 'cfguv',
43
+ 'cfgvent',
44
+ 'clsp',
45
+ 'cmode',
46
+ 'coolingKwh',
47
+ 'ctype',
48
+ 'damperposition',
49
+ 'dataservice',
50
+ 'dayId',
51
+ 'deadband',
52
+ 'eHeatKwh',
53
+ 'eheat',
54
+ 'emailVerified',
55
+ 'energyConfig',
56
+ 'energyPeriodType',
57
+ 'energyPeriods',
58
+ 'etag',
59
+ 'Fanv',
60
+ 'fanGasKwh',
61
+ 'fanKwh',
62
+ 'fangas',
63
+ 'fanonly',
64
+ 'featureset',
65
+ 'filterinterval',
66
+ 'filtertype',
67
+ 'filtrlvl',
68
+ 'fueltype',
69
+ 'gasKwh',
70
+ 'gasunit',
71
+ 'graphql',
72
+ 'hPHeatKwh',
73
+ 'heatsource',
74
+ 'holdActivity',
75
+ 'Homebridge',
76
+ 'hpheat',
77
+ 'hspf',
78
+ 'htsp',
79
+ 'humidifier',
80
+ 'humidityAway',
81
+ 'humidityHome',
82
+ 'humidityVacation',
83
+ 'humlvl',
84
+ 'identityId',
85
+ 'idu',
86
+ 'idusource',
87
+ 'idutype',
88
+ 'indoorModel',
89
+ 'indoorSerial',
90
+ 'infinityEnergy',
91
+ 'infinitySystems',
92
+ 'iot',
93
+ 'isDisconnected',
94
+ 'Kwh',
95
+ 'localTime',
96
+ 'localTimeOffset',
97
+ 'locationId',
98
+ 'loopPumpKwh',
99
+ 'looppump',
100
+ 'memoization',
101
+ 'mutex',
102
+ 'nonces',
103
+ 'oat',
104
+ 'occ',
105
+ 'occEnabled',
106
+ 'Okta',
107
+ 'odu',
108
+ 'odutype',
109
+ 'opstat',
110
+ 'otmr',
111
+ 'outdoorModel',
112
+ 'outdoorSerial',
113
+ 'rclg',
114
+ 'rclgovercool',
115
+ 'reheat',
116
+ 'reheatKwh',
117
+ 'rh',
118
+ 'rhtg',
119
+ 'Retryable',
120
+ 'seer',
121
+ 'setpoint',
122
+ 'setpoints',
123
+ 'sig',
124
+ 'statpress',
125
+ 'svalue',
126
+ 'thingName',
127
+ 'timestamps',
128
+ 'oauth',
129
+ 'unregister',
130
+ 'userName',
131
+ 'utcTime',
132
+ 'uvlvl',
133
+ 'vacat',
134
+ 'vacatrunning',
135
+ 'vacend',
136
+ 'vacfan',
137
+ 'vacmaxt',
138
+ 'vacmint',
139
+ 'vacstart',
140
+ 'vent',
141
+ 'ventclg',
142
+ 'venthtg',
143
+ 'ventlvl',
144
+ 'ventspdclg',
145
+ 'ventspdhtg',
146
+ 'wc',
147
+ 'wcTime',
148
+ 'xml',
149
+ 'xml2js',
150
+ 'zoneId',
151
+ 'zoneconditioning',
152
+ ],
153
+ },
154
+ ],
155
+ 'comma-dangle': ['warn', 'always-multiline'],
156
+ 'dot-notation': 'off',
157
+ 'eqeqeq': 'warn',
158
+ 'curly': ['warn', 'all'],
159
+ 'brace-style': ['warn'],
160
+ 'prefer-arrow-callback': ['warn'],
161
+ 'max-len': ['warn', 140],
162
+ 'no-console': ['warn'],
163
+ 'comma-spacing': ['error'],
164
+ 'no-multi-spaces': ['warn', { 'ignoreEOLComments': true }],
165
+ 'no-trailing-spaces': ['warn'],
166
+ 'lines-between-class-members': ['warn', 'always', { 'exceptAfterSingleLine': true }],
167
+ '@typescript-eslint/explicit-function-return-type': 'off',
168
+ '@typescript-eslint/no-non-null-assertion': 'off',
169
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
170
+ },
171
+ },
172
+ );
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge Carrier Infinity",
3
3
  "name": "homebridge-carrier-infinity",
4
- "version": "1.8.0",
4
+ "version": "1.9.0-beta.1",
5
5
  "description": "Standalone homebridge plugin for Carrier Infinity / Bryant Evolution / ICP Brands Ion thermostats.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -19,8 +19,7 @@
19
19
  "scripts": {
20
20
  "commit": "git-cz",
21
21
  "lint": "eslint src/**.ts --max-warnings=0",
22
- "relink": "sudo rsync -rl --chown homebridge:homebridge ../homebridge-carrier-infinity /var/lib/homebridge/node_modules/ && sudo hb-service restart",
23
- "watch": "npm run build && nodemon",
22
+ "watch": "npm run build && npm link && nodemon",
24
23
  "build": "rimraf ./dist && tsc",
25
24
  "prepublishOnly": "npm run lint && npm run build",
26
25
  "test": "jest",
@@ -31,7 +30,7 @@
31
30
  "src"
32
31
  ],
33
32
  "ext": "ts",
34
- "exec": "tsc && npm run relink",
33
+ "exec": "tsc && pm2 restart homebridge",
35
34
  "delay": 5000,
36
35
  "env": {
37
36
  "NODE_OPTIONS": "--trace-warnings"
@@ -49,37 +48,36 @@
49
48
  "infinitive"
50
49
  ],
51
50
  "dependencies": {
52
- "async-mutex": "^0.4.1",
53
- "axios": "^1.7.9",
54
- "oauth-sign": "^0.9.0",
51
+ "async-mutex": "^0.5.0",
52
+ "axios": "^1.13.4",
55
53
  "object-hash": "^3.0.0",
56
54
  "typescript-memoize": "^1.1.1",
57
- "typescript-retry-decorator": "^2.4.2",
58
- "xml2js": "^0.6.2"
55
+ "typescript-retry-decorator": "^2.5.3"
59
56
  },
60
57
  "devDependencies": {
61
- "@commitlint/cli": "^18.6.1",
62
- "@commitlint/config-conventional": "^18.6.3",
63
- "@commitlint/cz-commitlint": "^18.6.1",
58
+ "@commitlint/cli": "^20.3.1",
59
+ "@commitlint/config-conventional": "^20.3.1",
60
+ "@commitlint/cz-commitlint": "^20.3.1",
61
+ "@eslint/js": "^9.39.2",
64
62
  "@semantic-release/git": "^10.0.1",
65
- "@types/jest": "^29.5.14",
66
- "@types/node": "^20.17.11",
63
+ "@types/jest": "^30.0.0",
64
+ "@types/node": "^22.10.5",
67
65
  "@types/object-hash": "^3.0.6",
68
- "@types/xml2js": "^0.4.14",
69
- "@typescript-eslint/eslint-plugin": "^6.21.0",
70
- "@typescript-eslint/parser": "^6.21.0",
66
+ "@typescript-eslint/eslint-plugin": "^8.54.0",
67
+ "@typescript-eslint/parser": "^8.54.0",
71
68
  "commitizen": "^4.3.1",
72
- "eslint": "^8.57.1",
69
+ "eslint": "^9.39.2",
73
70
  "eslint-plugin-spellcheck": "^0.0.20",
74
- "homebridge": "^1.8.5",
75
- "jest": "^29.7.0",
76
- "json-to-ts": "^1.7.0",
77
- "nodemon": "^3.1.9",
78
- "rimraf": "^5.0.10",
79
- "semantic-release": "^24.2.1",
80
- "ts-jest": "^29.2.5",
71
+ "homebridge": "^1.11.1",
72
+ "jest": "^30.2.0",
73
+ "json-to-ts": "^2.1.0",
74
+ "nodemon": "^3.1.11",
75
+ "rimraf": "^6.1.2",
76
+ "semantic-release": "^25.0.2",
77
+ "ts-jest": "^29.4.6",
81
78
  "ts-node": "^10.9.2",
82
- "typescript": "^5.7.2"
79
+ "typescript": "^5.9.3",
80
+ "typescript-eslint": "^8.54.0"
83
81
  },
84
82
  "config": {
85
83
  "commitizen": {