homebridge-openrgb-multi 6.4.2 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.gitlab-ci.yml CHANGED
@@ -1,9 +1,12 @@
1
- image: node
2
-
3
1
  stages:
4
2
  - build
5
3
  - publish
6
4
 
5
+ variables:
6
+ NODE_VERSION: '24'
7
+
8
+ image: node:${NODE_VERSION}
9
+
7
10
  build:
8
11
  stage: build
9
12
  before_script:
@@ -17,6 +20,9 @@ publish:
17
20
  - build
18
21
  only:
19
22
  - main
23
+ id_tokens:
24
+ NPM_ID_TOKEN:
25
+ aud: "npm:registry.npmjs.org"
20
26
  before_script:
21
27
  - npm install
22
28
  - npm run build:production
@@ -1,9 +1,7 @@
1
- import SimpleLogger from 'simple-node-logger';
2
1
  import { SelectionAccessoryMode } from 'helpers-for-homebridge';
3
2
  export declare const DEFAULT_PERSISTENCE_FILENAME = "openrgb.json";
4
3
  export declare const DEFAULT_OPENRGB_HOST = "localhost";
5
4
  export declare const DEFAULT_OPENRGB_PORT = 6742;
6
- export declare const DEFAULT_LOG_LEVEL: SimpleLogger.STANDARD_LEVELS;
7
5
  export declare const DEFAULT_DURATION = 1000;
8
6
  export declare const EFFECT_TRANSITION_DURATION = 500;
9
7
  export declare const ZONE_EFFECT_SELECTION_ACCESSORY_MODE: SelectionAccessoryMode;
package/dist/constants.js CHANGED
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZONE_EFFECT_SELECTION_ACCESSORY_MODE = exports.EFFECT_TRANSITION_DURATION = exports.DEFAULT_DURATION = exports.DEFAULT_LOG_LEVEL = exports.DEFAULT_OPENRGB_PORT = exports.DEFAULT_OPENRGB_HOST = exports.DEFAULT_PERSISTENCE_FILENAME = void 0;
3
+ exports.ZONE_EFFECT_SELECTION_ACCESSORY_MODE = exports.EFFECT_TRANSITION_DURATION = exports.DEFAULT_DURATION = exports.DEFAULT_OPENRGB_PORT = exports.DEFAULT_OPENRGB_HOST = exports.DEFAULT_PERSISTENCE_FILENAME = void 0;
4
4
  exports.DEFAULT_PERSISTENCE_FILENAME = 'openrgb.json';
5
5
  exports.DEFAULT_OPENRGB_HOST = 'localhost';
6
6
  exports.DEFAULT_OPENRGB_PORT = 6742;
7
- exports.DEFAULT_LOG_LEVEL = 'info';
8
7
  exports.DEFAULT_DURATION = 1000;
9
8
  exports.EFFECT_TRANSITION_DURATION = 500;
10
9
  exports.ZONE_EFFECT_SELECTION_ACCESSORY_MODE = 'outlet';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAGa,QAAA,4BAA4B,GAAG,cAAc,CAAC;AAC9C,QAAA,oBAAoB,GAAG,WAAW,CAAC;AACnC,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,iBAAiB,GAAiC,MAAM,CAAC;AACzD,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,0BAA0B,GAAG,GAAG,CAAC;AACjC,QAAA,oCAAoC,GAC/C,QAAQ,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,4BAA4B,GAAG,cAAc,CAAC;AAC9C,QAAA,oBAAoB,GAAG,WAAW,CAAC;AACnC,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,0BAA0B,GAAG,GAAG,CAAC;AACjC,QAAA,oCAAoC,GAC/C,QAAQ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { API, Logging } from 'homebridge';
1
+ import type { API, Logging } from 'homebridge';
2
2
  import { Context, PlatformConfiguration } from './types';
3
3
  import { Zone } from './Zone';
4
4
  export declare const createPlatform: (homebridge: API) => {
@@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.createPlatform = void 0;
13
- const simple_node_logger_1 = require("simple-node-logger");
14
13
  const openrgb_sdk_1 = require("openrgb-sdk");
14
+ const winston_1 = require("winston");
15
15
  const helpers_for_homebridge_1 = require("helpers-for-homebridge");
16
16
  const palette_kit_core_1 = require("@manganese/palette-kit-core");
17
17
  const palette_kit_client_1 = require("@manganese/palette-kit-client");
@@ -22,18 +22,19 @@ const constants_1 = require("./constants");
22
22
  const createPlatform = (homebridge) => {
23
23
  class Platform {
24
24
  constructor(homebridgeLog, configuration) {
25
- var _a, _b;
25
+ var _a, _b, _c;
26
26
  this.configuration = configuration;
27
27
  this.zones = new Map();
28
- const log = new simple_node_logger_1.Logger({
29
- level: 'debug',
30
- appenders: [new helpers_for_homebridge_1.HomebridgeLogAppender(homebridgeLog)],
28
+ const log = (0, winston_1.createLogger)({
29
+ transports: [
30
+ new helpers_for_homebridge_1.HomebridgeLogTransport(homebridgeLog),
31
+ ],
31
32
  });
32
- const persistence = new services_1.PersistenceService({
33
+ const persistence = new services_1.PersistenceService((_a = configuration.persistence) !== null && _a !== void 0 ? _a : {}, {
33
34
  homebridge,
34
35
  log,
35
36
  });
36
- const openRgbClient = new openrgb_sdk_1.Client('default', (_a = configuration.openRgbPort) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_OPENRGB_PORT, (_b = configuration.openRgbHost) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_OPENRGB_HOST);
37
+ const openRgbClient = new openrgb_sdk_1.Client('default', (_b = configuration.openRgbPort) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_OPENRGB_PORT, (_c = configuration.openRgbHost) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_OPENRGB_HOST);
37
38
  const palette = new palette_kit_core_1.Palette({}, { log });
38
39
  const paletteClient = configuration.paletteClient
39
40
  ? new palette_kit_client_1.PaletteClient(configuration.paletteClient, {
@@ -1 +1 @@
1
- {"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { BasicPersistenceService, Context } from 'helpers-for-homebridge';
2
2
  import { PlatformPersistence, ZonePersistence } from '../types';
3
+ export interface PersistenceServiceConfiguration {
4
+ fileName?: string;
5
+ }
3
6
  export declare class PersistenceService extends BasicPersistenceService<PlatformPersistence> {
4
- constructor(context: Context);
7
+ constructor(configuration: PersistenceServiceConfiguration, context: Context);
5
8
  getZonePersistence(zoneId: string): Promise<ZonePersistence | null>;
6
9
  getZoneActive(zoneId: string): Promise<boolean>;
7
10
  getZoneBrightness(zoneId: string): Promise<number>;
@@ -13,9 +13,10 @@ exports.PersistenceService = void 0;
13
13
  const helpers_for_homebridge_1 = require("helpers-for-homebridge");
14
14
  const constants_1 = require("../constants");
15
15
  class PersistenceService extends helpers_for_homebridge_1.BasicPersistenceService {
16
- constructor(context) {
16
+ constructor(configuration, context) {
17
+ var _a;
17
18
  super({
18
- fileName: constants_1.DEFAULT_PERSISTENCE_FILENAME,
19
+ fileName: (_a = configuration.fileName) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_PERSISTENCE_FILENAME,
19
20
  defaultValue: {
20
21
  zones: {},
21
22
  },
@@ -1 +1 @@
1
- {"version":3,"file":"PersistenceService.js","sourceRoot":"","sources":["../../src/services/PersistenceService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAIgC;AAEhC,4CAA4D;AAE5D,MAAa,kBAAmB,SAAQ,gDAA4C;IAClF,YAAY,OAAgB;QAC1B,KAAK,CACH;YACE,QAAQ,EAAE,wCAA4B;YACtC,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAEK,kBAAkB,CAAC,MAAc;;;YACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAEjD,OAAO,MAAA,MAAA,WAAW,CAAC,KAAK,0CAAG,MAAM,CAAC,mCAAI,IAAI,CAAC;QAC7C,CAAC;KAAA;IAEK,aAAa,CAAC,MAAc;;YAChC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE9D,OAAO,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,KAAI,KAAK,CAAC;QAC1C,CAAC;KAAA;IAEK,iBAAiB,CAAC,MAAc;;;YACpC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE9D,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,mCAAI,CAAC,CAAC;QAC1C,CAAC;KAAA;IAEK,eAAe,CAAC,MAAc;;;YAClC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE9D,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,mCAAI,IAAI,CAAC;QAC3C,CAAC;KAAA;IAEK,oBAAoB,CACxB,MAAc,EACd,eAAyC;;YAEzC,MAAM,IAAI,CAAC,gBAAgB,CAAC;gBAC1B,KAAK,EAAE;oBACL,CAAC,MAAM,CAAC,EAAE,eAAe;iBAC1B;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,aAAa,CAAC,MAAc,EAAE,MAAe;;YACjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBACtC,MAAM;aACP,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,iBAAiB,CAAC,MAAc,EAAE,UAAkB;;YACxD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBACtC,UAAU;aACX,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,eAAe,CAAC,MAAc,EAAE,QAAgB;;YACpD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBACtC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAjED,gDAiEC"}
1
+ {"version":3,"file":"PersistenceService.js","sourceRoot":"","sources":["../../src/services/PersistenceService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAIgC;AAEhC,4CAA4D;AAM5D,MAAa,kBAAmB,SAAQ,gDAA4C;IAClF,YAAY,aAA8C,EAAE,OAAgB;;QAC1E,KAAK,CACH;YACE,QAAQ,EAAE,MAAA,aAAa,CAAC,QAAQ,mCAAI,wCAA4B;YAChE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAEK,kBAAkB,CAAC,MAAc;;;YACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAEjD,OAAO,MAAA,MAAA,WAAW,CAAC,KAAK,0CAAG,MAAM,CAAC,mCAAI,IAAI,CAAC;QAC7C,CAAC;KAAA;IAEK,aAAa,CAAC,MAAc;;YAChC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE9D,OAAO,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,KAAI,KAAK,CAAC;QAC1C,CAAC;KAAA;IAEK,iBAAiB,CAAC,MAAc;;;YACpC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE9D,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,mCAAI,CAAC,CAAC;QAC1C,CAAC;KAAA;IAEK,eAAe,CAAC,MAAc;;;YAClC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE9D,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,mCAAI,IAAI,CAAC;QAC3C,CAAC;KAAA;IAEK,oBAAoB,CACxB,MAAc,EACd,eAAyC;;YAEzC,MAAM,IAAI,CAAC,gBAAgB,CAAC;gBAC1B,KAAK,EAAE;oBACL,CAAC,MAAM,CAAC,EAAE,eAAe;iBAC1B;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,aAAa,CAAC,MAAc,EAAE,MAAe;;YACjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBACtC,MAAM;aACP,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,iBAAiB,CAAC,MAAc,EAAE,UAAkB;;YACxD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBACtC,UAAU;aACX,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,eAAe,CAAC,MAAc,EAAE,QAAgB;;YACpD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBACtC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAjED,gDAiEC"}
@@ -1,9 +1,9 @@
1
- import { API } from 'homebridge';
2
- import { Logger } from 'simple-node-logger';
3
- import OpenRGBClient from 'openrgb-sdk/types/client';
4
- import { PaletteClient } from '@manganese/palette-kit-client';
5
- import { Palette } from '@manganese/palette-kit-core';
6
- import { PersistenceService } from '../services';
1
+ import type { API } from 'homebridge';
2
+ import type { Logger } from 'winston';
3
+ import type { Client as OpenRGBClient } from 'openrgb-sdk';
4
+ import type { PaletteClient } from '@manganese/palette-kit-client';
5
+ import type { Palette } from '@manganese/palette-kit-core';
6
+ import type { PersistenceService } from '../services';
7
7
  export interface Context {
8
8
  homebridge: API;
9
9
  openRgbClient: OpenRGBClient;
@@ -1,4 +1,5 @@
1
1
  import { ClientConfiguration } from '@manganese/palette-kit-client';
2
+ import { PersistenceServiceConfiguration } from '../../services';
2
3
  import { ZoneConfiguration } from '.';
3
4
  export interface PlatformConfiguration {
4
5
  discoveryInterval?: number;
@@ -7,4 +8,5 @@ export interface PlatformConfiguration {
7
8
  openRgbPort: number;
8
9
  paletteClient?: ClientConfiguration;
9
10
  zones: ZoneConfiguration[];
11
+ persistence?: PersistenceServiceConfiguration;
10
12
  }
package/package.json CHANGED
@@ -2,24 +2,24 @@
2
2
  "name": "homebridge-openrgb-multi",
3
3
  "displayName": "Homebridge OpenRGB Multi",
4
4
  "description": "Homebridge plugin for multi-color dynamic effects for OpenRGB",
5
- "version": "6.4.2",
5
+ "version": "7.0.1",
6
6
  "keywords": [
7
7
  "homebridge-plugin"
8
8
  ],
9
- "homepage": "https://gitlab.com/5131/homebridge-openrgb-multi#readme",
9
+ "homepage": "https://gitlab.com/manganese/home/homebridge-openrgb-multi#readme",
10
10
  "author": {
11
11
  "name": "Samuel Goodell"
12
12
  },
13
13
  "bugs": {
14
- "url": "https://gitlab.com/5131/homebridge-openrgb-multi/issues"
14
+ "url": "https://gitlab.com/manganese/home/homebridge-openrgb-multi/issues"
15
15
  },
16
16
  "repository": {
17
17
  "type": "git",
18
- "url": "git+ssh://git@gitlab.com/5131/homebridge-openrgb-multi.git"
18
+ "url": "git+ssh://git@gitlab.com/manganese/home/homebridge-openrgb-multi.git"
19
19
  },
20
20
  "deprecated": false,
21
21
  "engines": {
22
- "node": "^18.17.0 || ^20 || ^22",
22
+ "node": ">=24.0.0",
23
23
  "homebridge": "^1.6.0"
24
24
  },
25
25
  "scripts": {
@@ -30,24 +30,24 @@
30
30
  },
31
31
  "main": "dist/index.js",
32
32
  "dependencies": {
33
- "@manganese/core-kit-node": "^3.0.1",
34
- "@manganese/effect-kit": "^2.0.1",
35
- "@manganese/palette-kit-client": "^4.2.1",
36
- "@manganese/palette-kit-core": "^4.2.1",
37
- "helpers-for-homebridge": "^4.4.0",
33
+ "@manganese/core-kit-node": "^4.0.0",
34
+ "@manganese/effect-kit": "^3.3.2",
35
+ "@manganese/palette-kit-client": "^5.0.0",
36
+ "@manganese/palette-kit-core": "^5.0.0",
37
+ "helpers-for-homebridge": "^6.0.0",
38
38
  "lodash": "^4.17.21",
39
- "openrgb-sdk": "^0.5.2",
39
+ "openrgb-sdk": "^0.6.0",
40
40
  "rwlock": "^5.0.0",
41
- "simple-node-logger": "^21",
42
- "three": "^0.167.1"
41
+ "three": "^0.167.1",
42
+ "winston": "^3.19.0"
43
43
  },
44
44
  "prettier": "@manganese/prettier-configuration",
45
45
  "devDependencies": {
46
46
  "@manganese/prettier-configuration": "^1.0.5",
47
- "@types/node": "^18.17.0",
47
+ "@types/node": "^24.11.0",
48
48
  "@types/rwlock": "^5.0.3",
49
49
  "homebridge": "^1.6.0",
50
50
  "prettier": "^3.1.1",
51
- "typescript": "^5.3.3"
51
+ "typescript": "^5.9.3"
52
52
  }
53
53
  }
package/src/Device.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import ReadWriteLock from 'rwlock';
2
2
  import { Vector2 } from 'three';
3
3
  import { utils as openRgbUtils } from 'openrgb-sdk';
4
- import OpenRGBDevice from 'openrgb-sdk/types/device';
4
+ import { Device as OpenRGBDevice } from 'openrgb-sdk';
5
5
  import {
6
6
  colorToString,
7
7
  ColorHSV,
package/src/constants.ts CHANGED
@@ -1,10 +1,8 @@
1
- import SimpleLogger from 'simple-node-logger';
2
1
  import { SelectionAccessoryMode } from 'helpers-for-homebridge';
3
2
 
4
3
  export const DEFAULT_PERSISTENCE_FILENAME = 'openrgb.json';
5
4
  export const DEFAULT_OPENRGB_HOST = 'localhost';
6
5
  export const DEFAULT_OPENRGB_PORT = 6742;
7
- export const DEFAULT_LOG_LEVEL: SimpleLogger.STANDARD_LEVELS = 'info';
8
6
  export const DEFAULT_DURATION = 1000;
9
7
  export const EFFECT_TRANSITION_DURATION = 500;
10
8
  export const ZONE_EFFECT_SELECTION_ACCESSORY_MODE: SelectionAccessoryMode =
@@ -1,7 +1,7 @@
1
- import { Logger } from 'simple-node-logger';
2
1
  import { Client as OpenRGBClient } from 'openrgb-sdk';
3
- import { API, Logging } from 'homebridge';
4
- import { HomebridgeLogAppender } from 'helpers-for-homebridge';
2
+ import type { API, Logging } from 'homebridge';
3
+ import { createLogger } from 'winston';
4
+ import { HomebridgeLogTransport } from 'helpers-for-homebridge';
5
5
  import { Palette } from '@manganese/palette-kit-core';
6
6
  import { PaletteClient } from '@manganese/palette-kit-client';
7
7
 
@@ -24,11 +24,12 @@ export const createPlatform = (homebridge: API) => {
24
24
  homebridgeLog: Logging,
25
25
  readonly configuration: PlatformConfiguration
26
26
  ) {
27
- const log = new Logger({
28
- level: 'debug',
29
- appenders: [new HomebridgeLogAppender(homebridgeLog)],
27
+ const log = createLogger({
28
+ transports: [
29
+ new HomebridgeLogTransport(homebridgeLog),
30
+ ],
30
31
  });
31
- const persistence = new PersistenceService({
32
+ const persistence = new PersistenceService(configuration.persistence ?? {}, {
32
33
  homebridge,
33
34
  log,
34
35
  });
@@ -6,11 +6,15 @@ import {
6
6
  import { PlatformPersistence, ZonePersistence } from '../types';
7
7
  import { DEFAULT_PERSISTENCE_FILENAME } from '../constants';
8
8
 
9
+ export interface PersistenceServiceConfiguration {
10
+ fileName?: string;
11
+ }
12
+
9
13
  export class PersistenceService extends BasicPersistenceService<PlatformPersistence> {
10
- constructor(context: Context) {
14
+ constructor(configuration: PersistenceServiceConfiguration, context: Context) {
11
15
  super(
12
16
  {
13
- fileName: DEFAULT_PERSISTENCE_FILENAME,
17
+ fileName: configuration.fileName ?? DEFAULT_PERSISTENCE_FILENAME,
14
18
  defaultValue: {
15
19
  zones: {},
16
20
  },
@@ -1,9 +1,9 @@
1
- import { API } from 'homebridge';
2
- import { Logger } from 'simple-node-logger';
3
- import OpenRGBClient from 'openrgb-sdk/types/client';
4
- import { PaletteClient } from '@manganese/palette-kit-client';
5
- import { Palette } from '@manganese/palette-kit-core';
6
- import { PersistenceService } from '../services';
1
+ import type { API } from 'homebridge';
2
+ import type { Logger } from 'winston';
3
+ import type { Client as OpenRGBClient } from 'openrgb-sdk';
4
+ import type { PaletteClient } from '@manganese/palette-kit-client';
5
+ import type { Palette } from '@manganese/palette-kit-core';
6
+ import type { PersistenceService } from '../services';
7
7
 
8
8
  export interface Context {
9
9
  homebridge: API;
@@ -1,4 +1,5 @@
1
1
  import { ClientConfiguration } from '@manganese/palette-kit-client';
2
+ import { PersistenceServiceConfiguration } from '../../services';
2
3
  import { ZoneConfiguration } from '.';
3
4
 
4
5
  export interface PlatformConfiguration {
@@ -8,4 +9,5 @@ export interface PlatformConfiguration {
8
9
  openRgbPort: number;
9
10
  paletteClient?: ClientConfiguration;
10
11
  zones: ZoneConfiguration[];
12
+ persistence?: PersistenceServiceConfiguration;
11
13
  }
package/tsconfig.json CHANGED
@@ -2,11 +2,11 @@
2
2
  "compilerOptions": {
3
3
  "rootDir": "./src",
4
4
  "outDir": "./dist",
5
- "module": "CommonJS",
5
+ "module": "NodeNext",
6
6
  "lib": ["ES6", "ES2020", "ESNext"],
7
7
  "target": "ES2015",
8
8
  "noImplicitAny": false,
9
- "moduleResolution": "Node",
9
+ "moduleResolution": "NodeNext",
10
10
  "sourceMap": true,
11
11
  "allowSyntheticDefaultImports": true,
12
12
  "allowJs": true,