@homebridge-plugins/homebridge-sharkiq 2.0.0-beta.5 → 2.0.0-beta.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.
@@ -1,6 +1,6 @@
1
- import { TIMEOUTS, VACUUM_SPEEDS } from './constants.js';
2
- import { createPromiseRejectionHandler } from './errorHandling.js';
3
- import { OperatingModes, PowerModes, Properties } from './sharkiq-js/sharkiq.js';
1
+ import { TIMEOUTS, VACUUM_SPEEDS } from '../constants.js';
2
+ import { createPromiseRejectionHandler } from '../errorHandling.js';
3
+ import { OperatingModes, PowerModes, Properties } from '../sharkiq-js/sharkiq.js';
4
4
  export class SharkIQAccessory {
5
5
  platform;
6
6
  accessory;
@@ -88,6 +88,182 @@ export class SharkIQAccessory {
88
88
  this.retrieveVacuumStateInterval();
89
89
  });
90
90
  }
91
+ /**
92
+ * Convert this accessory to a MatterAccessory-like plain object.
93
+ * Uses the provided `api.matter` if available. This returns a minimal
94
+ * RoboticVacuumCleaner configuration with handlers bound to this instance.
95
+ */
96
+ toMatterAccessory(api) {
97
+ try {
98
+ const serialNumber = this.device._dsn && this.device._dsn.toString ? this.device._dsn.toString() : String(this.device._dsn);
99
+ const uuid = api.matter.uuid.generate(serialNumber);
100
+ const deviceType = api.matter.deviceTypes.RoboticVacuumCleaner;
101
+ const accessory = {
102
+ uuid,
103
+ displayName: this.device._name || `Robot Vacuum ${serialNumber}`,
104
+ deviceType,
105
+ serialNumber,
106
+ manufacturer: 'Shark',
107
+ model: this.device._vac_model_number || 'SharkIQ',
108
+ firmwareRevision: this.device._firmware_version || '1.0.0',
109
+ hardwareRevision: '1.0.0',
110
+ // Minimal cluster state for Robotic Vacuum Cleaner
111
+ clusters: {
112
+ rvcRunMode: {
113
+ supportedModes: [
114
+ { label: 'Idle', mode: 0 },
115
+ { label: 'Cleaning', mode: 1 },
116
+ { label: 'Mapping', mode: 2 },
117
+ ],
118
+ currentMode: 0,
119
+ },
120
+ rvcCleanMode: {
121
+ supportedModes: [
122
+ { label: 'Vacuum', mode: 0 },
123
+ { label: 'Mop', mode: 1 },
124
+ { label: 'Vacuum & Mop', mode: 2 },
125
+ ],
126
+ currentMode: 0,
127
+ },
128
+ rvcOperationalState: {
129
+ operationalStateList: [
130
+ { operationalStateId: 0, operationalStateLabel: 'Stopped' },
131
+ { operationalStateId: 1, operationalStateLabel: 'Running' },
132
+ { operationalStateId: 2, operationalStateLabel: 'Paused' },
133
+ { operationalStateId: 64, operationalStateLabel: 'Seeking Charger' },
134
+ { operationalStateId: 65, operationalStateLabel: 'Charging' },
135
+ { operationalStateId: 66, operationalStateLabel: 'Docked' },
136
+ ],
137
+ operationalState: 0,
138
+ },
139
+ serviceArea: {
140
+ supportedMaps: [],
141
+ supportedAreas: [],
142
+ selectedAreas: [],
143
+ currentArea: null,
144
+ },
145
+ },
146
+ // Handlers: map Matter requests to class methods
147
+ handlers: {
148
+ rvcRunMode: {
149
+ changeToMode: async (request) => this.matterHandleChangeRunMode(request),
150
+ },
151
+ rvcCleanMode: {
152
+ changeToMode: async (request) => this.matterHandleChangeCleanMode(request),
153
+ },
154
+ rvcOperationalState: {
155
+ start: async () => this.matterHandleStart(),
156
+ stop: async () => this.matterHandleStop(),
157
+ pause: async () => this.matterHandlePause(),
158
+ resume: async () => this.matterHandleResume(),
159
+ goHome: async () => this.matterHandleGoHome(),
160
+ },
161
+ serviceArea: {
162
+ selectAreas: async (request) => this.matterHandleSelectAreas(request),
163
+ skipArea: async (request) => this.matterHandleSkipArea(request),
164
+ },
165
+ },
166
+ };
167
+ return accessory;
168
+ }
169
+ catch (e) {
170
+ this.log.debug('toMatterAccessory failed:', e);
171
+ return null;
172
+ }
173
+ }
174
+ // Minimal Matter handlers that delegate to existing device methods
175
+ async matterHandleStart() {
176
+ this.log.info('Matter -> Start requested');
177
+ try {
178
+ await this.device.clean_rooms([]);
179
+ }
180
+ catch (e) {
181
+ this.log.debug('Error starting vacuum via Matter handler:', e);
182
+ }
183
+ // Sync HAP state
184
+ await this.retrieveVacuumStates().catch(() => { });
185
+ }
186
+ async matterHandleStop() {
187
+ this.log.info('Matter -> Stop requested');
188
+ try {
189
+ await this.device.cancel_clean();
190
+ }
191
+ catch (e) {
192
+ this.log.debug('Error stopping vacuum via Matter handler:', e);
193
+ }
194
+ await this.retrieveVacuumStates().catch(() => { });
195
+ }
196
+ async matterHandlePause() {
197
+ this.log.info('Matter -> Pause requested');
198
+ try {
199
+ await this.device.set_operating_mode(OperatingModes.STOP);
200
+ }
201
+ catch (e) {
202
+ this.log.debug('Error pausing vacuum via Matter handler:', e);
203
+ }
204
+ await this.retrieveVacuumStates().catch(() => { });
205
+ }
206
+ async matterHandleResume() {
207
+ this.log.info('Matter -> Resume requested');
208
+ try {
209
+ await this.device.set_operating_mode(OperatingModes.START);
210
+ }
211
+ catch (e) {
212
+ this.log.debug('Error resuming vacuum via Matter handler:', e);
213
+ }
214
+ await this.retrieveVacuumStates().catch(() => { });
215
+ }
216
+ async matterHandleGoHome() {
217
+ this.log.info('Matter -> GoHome requested');
218
+ try {
219
+ // Best-effort: cancel current clean and trigger return-to-dock sequence
220
+ await this.device.cancel_clean();
221
+ }
222
+ catch (e) {
223
+ this.log.debug('Error issuing goHome via Matter handler:', e);
224
+ }
225
+ await this.retrieveVacuumStates().catch(() => { });
226
+ }
227
+ async matterHandleChangeRunMode(request) {
228
+ this.log.info('Matter -> Change Run Mode:', request);
229
+ // request.newMode indicates Idle(0), Cleaning(1), Mapping(2)
230
+ const newMode = request?.newMode;
231
+ try {
232
+ if (newMode === 1) {
233
+ await this.device.clean_rooms([]);
234
+ }
235
+ else if (newMode === 0) {
236
+ await this.device.cancel_clean();
237
+ }
238
+ }
239
+ catch (e) {
240
+ this.log.debug('Error changing run mode via Matter handler:', e);
241
+ }
242
+ await this.retrieveVacuumStates().catch(() => { });
243
+ }
244
+ async matterHandleChangeCleanMode(request) {
245
+ this.log.info('Matter -> Change Clean Mode:', request);
246
+ // request.newMode is an integer mapping to clean modes; best-effort: log it
247
+ await Promise.resolve();
248
+ }
249
+ async matterHandleSelectAreas(request) {
250
+ this.log.info('Matter -> Select Areas:', request);
251
+ // request.newAreas is an array of area ids; delegate if device supports it
252
+ const areas = request?.newAreas;
253
+ if (Array.isArray(areas) && areas.length > 0) {
254
+ try {
255
+ await this.device.clean_rooms(areas);
256
+ }
257
+ catch (e) {
258
+ this.log.debug('Error selecting areas via Matter handler:', e);
259
+ }
260
+ }
261
+ }
262
+ async matterHandleSkipArea(request) {
263
+ this.log.info('Matter -> Skip Area:', request);
264
+ // Best-effort: log request. Implement if Shark API supports skipping areas.
265
+ await Promise.resolve();
266
+ }
91
267
  // Check if native robot vacuum service is available in HomeKit
92
268
  checkForNativeVacuumService() {
93
269
  try {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../../src/devices/platformAccessory.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,14 @@ export declare class SharkIQPlatform implements DynamicPlatformPlugin {
13
13
  readonly Characteristic: typeof Characteristic;
14
14
  readonly accessories: PlatformAccessory[];
15
15
  vacuumDevices: SharkIqVacuum[];
16
+ readonly matterAccessories: Map<string, any>;
17
+ readonly matterEnabled: boolean;
16
18
  constructor(log: Logger, config: PlatformConfig, api: API);
19
+ /**
20
+ * Called when homebridge restores cached Matter accessories from disk at startup.
21
+ * This lets the platform keep track of cached Matter accessories if needed.
22
+ */
23
+ configureMatterAccessory(accessory: any): void;
17
24
  login: () => Promise<SharkIqVacuum[]>;
18
25
  configureAccessory(accessory: PlatformAccessory): void;
19
26
  discoverDevices(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEhI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAYzD,OAAO,QAAQ,YAAY,CAAC;IAC1B,UAAU,GAAG;QACX,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;KAChG;CACF;AAGD,qBAAa,eAAgB,YAAW,qBAAqB;aAUzC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAX1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAA;IAGrD,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAK;IAE9C,aAAa,EAAE,aAAa,EAAE,CAAK;gBAGxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA+C1B,KAAK,QAAa,OAAO,CAAC,aAAa,EAAE,CAAC,CAgCzC;IAGD,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAOtD,eAAe,IAAI,IAAI;CA+CxB"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEhI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAWzD,OAAO,QAAQ,YAAY,CAAC;IAC1B,UAAU,GAAG;QACX,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;KAChG;CACF;AAGD,qBAAa,eAAgB,YAAW,qBAAqB;aAczC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAA;IAGrD,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAK;IAE9C,aAAa,EAAE,aAAa,EAAE,CAAK;IAE1C,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAY;IAE/D,SAAgB,aAAa,EAAE,OAAO,CAAA;gBAGpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAyE1B;;;OAGG;IACH,wBAAwB,CAAC,SAAS,EAAE,GAAG;IAmBvC,KAAK,QAAa,OAAO,CAAC,aAAa,EAAE,CAAC,CAgCzC;IAGD,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAOtD,eAAe,IAAI,IAAI;CAmDxB"}
package/dist/platform.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { join } from 'node:path';
2
- import { TIMEOUTS } from './constants.js';
2
+ import { RoboticVacuumAccessory } from './devices/RoboticVacuumAccessory.js';
3
3
  import { Login } from './login.js';
4
- import { SharkIQAccessory } from './platformAccessory.js';
5
4
  import { PLUGIN_NAME } from './settings.js';
6
5
  import { get_ayla_api } from './sharkiq-js/ayla_api.js';
7
6
  import { global_vars } from './sharkiq-js/const.js';
@@ -16,6 +15,10 @@ export class SharkIQPlatform {
16
15
  accessories = [];
17
16
  // Device vacuums object array
18
17
  vacuumDevices = [];
18
+ // Track restored Matter cached accessories (if running with Matter)
19
+ matterAccessories = new Map();
20
+ // cache whether matter is enabled/available
21
+ matterEnabled;
19
22
  constructor(log, config, api) {
20
23
  this.log = log;
21
24
  this.config = config;
@@ -52,12 +55,64 @@ export class SharkIQPlatform {
52
55
  const addedDsns = this.vacuumDevices.map(d => d._dsn && d._dsn.toString ? d._dsn.toString() : String(d._dsn));
53
56
  this.log.info('Added DSNs:', addedDsns);
54
57
  }
58
+ // Ensure Matter is available before proceeding; this plugin requires the Homebridge Matter API
59
+ /* const apiMatter = (this.api as any).matter
60
+ const matterAvailable = !!apiMatter && typeof apiMatter.publishExternalAccessories === 'function'
61
+ if (!matterAvailable) {
62
+ this.log.error('This version of the plugin requires Homebridge with Matter support. Aborting startup.')
63
+ return
64
+ } */
55
65
  this.discoverDevices();
56
66
  }).catch((error) => {
57
67
  log.error('Error with login.');
58
68
  log.error(error);
59
69
  });
60
70
  });
71
+ // Matter availability check (optional) - log helpful messages
72
+ try {
73
+ const isAvailable = this.api.isMatterAvailable?.();
74
+ const isEnabled = this.api.isMatterEnabled?.();
75
+ if (isAvailable === false) {
76
+ this.log.info('Matter is not available in this version of Homebridge.');
77
+ }
78
+ else if (isAvailable && isEnabled === false) {
79
+ this.log.warn('Matter is available but not enabled. Enable Matter in Homebridge settings to use Matter features.');
80
+ }
81
+ else if (isAvailable && isEnabled) {
82
+ this.log.info('Matter is available and enabled. Matter accessories will be published when supported.');
83
+ }
84
+ else {
85
+ this.log.debug('Matter availability check inconclusive (functions may be missing).');
86
+ }
87
+ }
88
+ catch (e) {
89
+ this.log.debug('Matter availability check skipped (not supported by this Homebridge version).');
90
+ }
91
+ // store a boolean for quick checks later
92
+ this.matterEnabled = !!(this.api.matter && this.api.matter.publishExternalAccessories);
93
+ }
94
+ /**
95
+ * Called when homebridge restores cached Matter accessories from disk at startup.
96
+ * This lets the platform keep track of cached Matter accessories if needed.
97
+ */
98
+ configureMatterAccessory(accessory) {
99
+ this.log.debug('Loading cached Matter accessory:', accessory.displayName);
100
+ // If we have a stored instance for this uuid, attach the published accessory object to it
101
+ const stored = this.matterAccessories.get(accessory.uuid);
102
+ if (stored && stored.instance && typeof stored.instance.attachToPublishedAccessory === 'function') {
103
+ stored.accessory = accessory;
104
+ try {
105
+ stored.instance.attachToPublishedAccessory(accessory);
106
+ }
107
+ catch (e) {
108
+ this.log.debug('Error attaching instance to published Matter accessory', e);
109
+ }
110
+ this.matterAccessories.set(accessory.uuid, stored);
111
+ }
112
+ else {
113
+ // No instance cached; store accessory so future publish or restarts can map it
114
+ this.matterAccessories.set(accessory.uuid, { instance: null, accessory });
115
+ }
61
116
  }
62
117
  // Attempt to login and fetch devices.
63
118
  login = async () => {
@@ -102,46 +157,53 @@ export class SharkIQPlatform {
102
157
  }
103
158
  // Add vacuums to Homebridge.
104
159
  discoverDevices() {
105
- const devices = [];
106
- const unusedDeviceAccessories = this.accessories;
107
- const invertDockedStatus = this.config.invertDockedStatus || false;
108
- const dockedUpdateInterval = this.config.dockedUpdateInterval || TIMEOUTS.DEFAULT_DOCKED_UPDATE_INTERVAL;
109
- const enhancedVacuumMode = this.config.enhancedVacuumMode !== undefined ? this.config.enhancedVacuumMode : true;
110
- this.vacuumDevices.forEach((vacuumDevice) => {
111
- const uuid = this.api.hap.uuid.generate(vacuumDevice._dsn.toString());
112
- let accessory = unusedDeviceAccessories.find(accessory => accessory.UUID === uuid);
113
- if (accessory) {
114
- unusedDeviceAccessories.splice(unusedDeviceAccessories.indexOf(accessory), 1);
160
+ // Build RoboticVacuumAccessory instances (Matter external accessories) for each vacuum device.
161
+ for (const vacuumDevice of this.vacuumDevices) {
162
+ // We will publish Matter external accessories only; RoboticVacuumAccessory will handle initial sync when ready.
163
+ try {
164
+ const rvc = new RoboticVacuumAccessory(this.api, this.log, vacuumDevice);
165
+ // Store instance placeholder; the accessory object will be attached in configureMatterAccessory
166
+ const serialNumber = vacuumDevice._dsn && vacuumDevice._dsn.toString ? vacuumDevice._dsn.toString() : String(vacuumDevice._dsn);
167
+ const uuid = this.api.matter.uuid.generate(serialNumber);
168
+ this.matterAccessories.set(uuid, { instance: rvc, accessory: null });
115
169
  }
116
- else {
117
- accessory = new this.api.platformAccessory(vacuumDevice._name.toString(), uuid);
118
- devices.push(accessory);
170
+ catch (err) {
171
+ this.log.debug('Failed to instantiate RoboticVacuumAccessory for device', vacuumDevice, err);
119
172
  }
120
- let accessoryInformationService = accessory.getService(this.Service.AccessoryInformation);
121
- if (!accessoryInformationService) {
122
- accessoryInformationService = accessory.addService(this.Service.AccessoryInformation);
173
+ }
174
+ // Matter API is required; build Matter external accessories list from our vacuum devices using RoboticVacuumAccessory
175
+ const apiMatter = this.api.matter;
176
+ const matterAccessoriesToPublish = [];
177
+ for (const vacuumDevice of this.vacuumDevices) {
178
+ try {
179
+ const rvc = new RoboticVacuumAccessory(this.api, this.log, vacuumDevice);
180
+ const acc = rvc.toAccessory();
181
+ // store instance with accessory placeholder; the actual published accessory object will be attached after publishing
182
+ this.matterAccessories.set(acc.uuid, { instance: rvc, accessory: null });
183
+ matterAccessoriesToPublish.push(acc);
184
+ }
185
+ catch (err) {
186
+ this.log.debug('Failed to create RoboticVacuumAccessory for device', vacuumDevice, err);
123
187
  }
124
- accessoryInformationService
125
- .setCharacteristic(this.Characteristic.Manufacturer, 'Shark')
126
- .setCharacteristic(this.Characteristic.Model, vacuumDevice._vac_model_number || 'Unknown')
127
- .setCharacteristic(this.Characteristic.SerialNumber, vacuumDevice._dsn);
128
- new SharkIQAccessory(this, accessory, vacuumDevice, this.api.hap.uuid, this.log, invertDockedStatus, dockedUpdateInterval, enhancedVacuumMode);
129
- });
130
- // Publish accessories as Matter accessories for native Matter support
131
- // Uses publishMatterAccessories for proper vacuum classification in Matter
132
- if (typeof this.api.publishMatterAccessories === 'function') {
133
- this.api.publishMatterAccessories(PLUGIN_NAME, devices);
134
188
  }
135
- else {
136
- // Fallback to external accessories for older Homebridge versions
137
- this.api.publishExternalAccessories(PLUGIN_NAME, devices);
189
+ if (matterAccessoriesToPublish.length === 0) {
190
+ this.log.warn('No Matter accessories to publish (no supported robotic vacuums found).');
191
+ return;
138
192
  }
139
- unusedDeviceAccessories.forEach((unusedDeviceAccessory) => {
140
- this.log.info(`Removing unused accessory with name ${unusedDeviceAccessory.displayName}`);
141
- this.accessories.splice(this.accessories.indexOf(unusedDeviceAccessory), 1);
142
- });
143
- // Note: External accessories don't require explicit unregistration
144
- // They are managed differently than platform accessories
193
+ this.log.info(`✓ Publishing ${matterAccessoriesToPublish.length} robotic device(s) as external Matter accessories`);
194
+ for (const acc of matterAccessoriesToPublish) {
195
+ this.log.info(` - ${acc.displayName}`);
196
+ }
197
+ try {
198
+ // Publish and then attach the exact published accessory objects back to our instances
199
+ apiMatter.publishExternalAccessories(PLUGIN_NAME, matterAccessoriesToPublish);
200
+ // After publish, the homebridge runtime will provide published accessory objects via the configureMatterAccessory hook.
201
+ // We will expect configureMatterAccessory to be called for each published accessory and then attach listeners there.
202
+ }
203
+ catch (err) {
204
+ this.log.error('Failed to publish Matter external accessories:', err);
205
+ }
206
+ // Note: configureMatterAccessory will be called for cached/published Matter accessories and attach instances
145
207
  }
146
208
  }
147
209
  //# sourceMappingURL=platform.js.map
@@ -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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"}
@@ -7,8 +7,10 @@
7
7
  --dark-hl-2: #CE9178;
8
8
  --light-hl-3: #0000FF;
9
9
  --dark-hl-3: #569CD6;
10
- --light-hl-4: #098658;
11
- --dark-hl-4: #B5CEA8;
10
+ --light-hl-4: #008000;
11
+ --dark-hl-4: #6A9955;
12
+ --light-hl-5: #795E26;
13
+ --dark-hl-5: #DCDCAA;
12
14
  --light-code-background: #FFFFFF;
13
15
  --dark-code-background: #1E1E1E;
14
16
  }
@@ -19,6 +21,7 @@
19
21
  --hl-2: var(--light-hl-2);
20
22
  --hl-3: var(--light-hl-3);
21
23
  --hl-4: var(--light-hl-4);
24
+ --hl-5: var(--light-hl-5);
22
25
  --code-background: var(--light-code-background);
23
26
  } }
24
27
 
@@ -28,6 +31,7 @@
28
31
  --hl-2: var(--dark-hl-2);
29
32
  --hl-3: var(--dark-hl-3);
30
33
  --hl-4: var(--dark-hl-4);
34
+ --hl-5: var(--dark-hl-5);
31
35
  --code-background: var(--dark-code-background);
32
36
  } }
33
37
 
@@ -37,6 +41,7 @@
37
41
  --hl-2: var(--light-hl-2);
38
42
  --hl-3: var(--light-hl-3);
39
43
  --hl-4: var(--light-hl-4);
44
+ --hl-5: var(--light-hl-5);
40
45
  --code-background: var(--light-code-background);
41
46
  }
42
47
 
@@ -46,6 +51,7 @@
46
51
  --hl-2: var(--dark-hl-2);
47
52
  --hl-3: var(--dark-hl-3);
48
53
  --hl-4: var(--dark-hl-4);
54
+ --hl-5: var(--dark-hl-5);
49
55
  --code-background: var(--dark-code-background);
50
56
  }
51
57
 
@@ -54,4 +60,5 @@
54
60
  .hl-2 { color: var(--hl-2); }
55
61
  .hl-3 { color: var(--hl-3); }
56
62
  .hl-4 { color: var(--hl-4); }
63
+ .hl-5 { color: var(--hl-5); }
57
64
  pre, code { background: var(--code-background); }