@fastybird/smart-panel-backend 1.1.0-alpha.0 → 1.1.0-alpha.2

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 (126) hide show
  1. package/dist/app.module.js +7 -0
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/modules/devices/services/property-command.service.d.ts +8 -0
  4. package/dist/modules/devices/services/property-command.service.js +115 -0
  5. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  6. package/dist/modules/mcp/oauth/mcp-oauth-provider.factory.js.map +1 -1
  7. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js +4 -0
  8. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js.map +1 -1
  9. package/dist/modules/remote-access/services/remote-access-status.service.d.ts +5 -1
  10. package/dist/modules/remote-access/services/remote-access-status.service.js +38 -4
  11. package/dist/modules/remote-access/services/remote-access-status.service.js.map +1 -1
  12. package/dist/modules/remote-access/services/remote-access-url.service.js +4 -0
  13. package/dist/modules/remote-access/services/remote-access-url.service.js.map +1 -1
  14. package/dist/modules/system/commands/command.utils.d.ts +2 -0
  15. package/dist/modules/system/commands/command.utils.js +14 -0
  16. package/dist/modules/system/commands/command.utils.js.map +1 -1
  17. package/dist/modules/system/commands/update-check.command.js +2 -3
  18. package/dist/modules/system/commands/update-check.command.js.map +1 -1
  19. package/dist/modules/system/commands/update-panel.command.js +2 -2
  20. package/dist/modules/system/commands/update-panel.command.js.map +1 -1
  21. package/dist/modules/system/commands/update-server.command.d.ts +1 -0
  22. package/dist/modules/system/commands/update-server.command.js +36 -11
  23. package/dist/modules/system/commands/update-server.command.js.map +1 -1
  24. package/dist/modules/system/dto/update-config.dto.d.ts +2 -1
  25. package/dist/modules/system/dto/update-config.dto.js +15 -0
  26. package/dist/modules/system/dto/update-config.dto.js.map +1 -1
  27. package/dist/modules/system/models/config.model.d.ts +2 -1
  28. package/dist/modules/system/models/config.model.js +13 -0
  29. package/dist/modules/system/models/config.model.js.map +1 -1
  30. package/dist/modules/system/services/update.service.d.ts +11 -1
  31. package/dist/modules/system/services/update.service.js +97 -35
  32. package/dist/modules/system/services/update.service.js.map +1 -1
  33. package/dist/modules/system/system.constants.d.ts +6 -0
  34. package/dist/modules/system/system.constants.js +8 -1
  35. package/dist/modules/system/system.constants.js.map +1 -1
  36. package/dist/modules/websocket/gateway/websocket.gateway.d.ts +3 -0
  37. package/dist/modules/websocket/gateway/websocket.gateway.js +39 -4
  38. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  39. package/dist/plugins/devices-homekit/controllers/homekit-bridge.controller.d.ts +14 -0
  40. package/dist/plugins/devices-homekit/controllers/homekit-bridge.controller.js +125 -0
  41. package/dist/plugins/devices-homekit/controllers/homekit-bridge.controller.js.map +1 -0
  42. package/dist/plugins/devices-homekit/devices-homekit.constants.d.ts +16 -0
  43. package/dist/plugins/devices-homekit/devices-homekit.constants.js +57 -0
  44. package/dist/plugins/devices-homekit/devices-homekit.constants.js.map +1 -0
  45. package/dist/plugins/devices-homekit/devices-homekit.exceptions.d.ts +12 -0
  46. package/dist/plugins/devices-homekit/devices-homekit.exceptions.js +32 -0
  47. package/dist/plugins/devices-homekit/devices-homekit.exceptions.js.map +1 -0
  48. package/dist/plugins/devices-homekit/devices-homekit.openapi.d.ts +6 -0
  49. package/dist/plugins/devices-homekit/devices-homekit.openapi.js +19 -0
  50. package/dist/plugins/devices-homekit/devices-homekit.openapi.js.map +1 -0
  51. package/dist/plugins/devices-homekit/devices-homekit.plugin.d.ts +24 -0
  52. package/dist/plugins/devices-homekit/devices-homekit.plugin.js +183 -0
  53. package/dist/plugins/devices-homekit/devices-homekit.plugin.js.map +1 -0
  54. package/dist/plugins/devices-homekit/dto/bridge-map.dto.d.ts +6 -0
  55. package/dist/plugins/devices-homekit/dto/bridge-map.dto.js +50 -0
  56. package/dist/plugins/devices-homekit/dto/bridge-map.dto.js.map +1 -0
  57. package/dist/plugins/devices-homekit/dto/update-config.dto.d.ts +11 -0
  58. package/dist/plugins/devices-homekit/dto/update-config.dto.js +138 -0
  59. package/dist/plugins/devices-homekit/dto/update-config.dto.js.map +1 -0
  60. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.d.ts +8 -0
  61. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +72 -0
  62. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -0
  63. package/dist/plugins/devices-homekit/mappers/base.mapper.d.ts +15 -0
  64. package/dist/plugins/devices-homekit/mappers/base.mapper.js +74 -0
  65. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -0
  66. package/dist/plugins/devices-homekit/mappers/battery.mapper.d.ts +6 -0
  67. package/dist/plugins/devices-homekit/mappers/battery.mapper.js +130 -0
  68. package/dist/plugins/devices-homekit/mappers/battery.mapper.js.map +1 -0
  69. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +28 -0
  70. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.js +3 -0
  71. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.js.map +1 -0
  72. package/dist/plugins/devices-homekit/mappers/lightbulb.mapper.d.ts +9 -0
  73. package/dist/plugins/devices-homekit/mappers/lightbulb.mapper.js +115 -0
  74. package/dist/plugins/devices-homekit/mappers/lightbulb.mapper.js.map +1 -0
  75. package/dist/plugins/devices-homekit/mappers/lock.mapper.d.ts +10 -0
  76. package/dist/plugins/devices-homekit/mappers/lock.mapper.js +59 -0
  77. package/dist/plugins/devices-homekit/mappers/lock.mapper.js.map +1 -0
  78. package/dist/plugins/devices-homekit/mappers/outlet.mapper.d.ts +9 -0
  79. package/dist/plugins/devices-homekit/mappers/outlet.mapper.js +44 -0
  80. package/dist/plugins/devices-homekit/mappers/outlet.mapper.js.map +1 -0
  81. package/dist/plugins/devices-homekit/mappers/sensor.mapper.d.ts +10 -0
  82. package/dist/plugins/devices-homekit/mappers/sensor.mapper.js +168 -0
  83. package/dist/plugins/devices-homekit/mappers/sensor.mapper.js.map +1 -0
  84. package/dist/plugins/devices-homekit/mappers/switch.mapper.d.ts +9 -0
  85. package/dist/plugins/devices-homekit/mappers/switch.mapper.js +35 -0
  86. package/dist/plugins/devices-homekit/mappers/switch.mapper.js.map +1 -0
  87. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.d.ts +43 -0
  88. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +430 -0
  89. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -0
  90. package/dist/plugins/devices-homekit/mappers/thermostat.mapper.d.ts +11 -0
  91. package/dist/plugins/devices-homekit/mappers/thermostat.mapper.js +97 -0
  92. package/dist/plugins/devices-homekit/mappers/thermostat.mapper.js.map +1 -0
  93. package/dist/plugins/devices-homekit/mappers/window-covering.mapper.d.ts +10 -0
  94. package/dist/plugins/devices-homekit/mappers/window-covering.mapper.js +94 -0
  95. package/dist/plugins/devices-homekit/mappers/window-covering.mapper.js.map +1 -0
  96. package/dist/plugins/devices-homekit/models/bridge-candidate.model.d.ts +15 -0
  97. package/dist/plugins/devices-homekit/models/bridge-candidate.model.js +150 -0
  98. package/dist/plugins/devices-homekit/models/bridge-candidate.model.js.map +1 -0
  99. package/dist/plugins/devices-homekit/models/bridge-status.model.d.ts +16 -0
  100. package/dist/plugins/devices-homekit/models/bridge-status.model.js +156 -0
  101. package/dist/plugins/devices-homekit/models/bridge-status.model.js.map +1 -0
  102. package/dist/plugins/devices-homekit/models/config.model.d.ts +12 -0
  103. package/dist/plugins/devices-homekit/models/config.model.js +134 -0
  104. package/dist/plugins/devices-homekit/models/config.model.js.map +1 -0
  105. package/dist/plugins/devices-homekit/services/homekit-actions.service.d.ts +14 -0
  106. package/dist/plugins/devices-homekit/services/homekit-actions.service.js +92 -0
  107. package/dist/plugins/devices-homekit/services/homekit-actions.service.js.map +1 -0
  108. package/dist/plugins/devices-homekit/services/homekit-bridge.service.d.ts +43 -0
  109. package/dist/plugins/devices-homekit/services/homekit-bridge.service.js +497 -0
  110. package/dist/plugins/devices-homekit/services/homekit-bridge.service.js.map +1 -0
  111. package/dist/plugins/devices-homekit/services/homekit-command.dispatcher.d.ts +11 -0
  112. package/dist/plugins/devices-homekit/services/homekit-command.dispatcher.js +68 -0
  113. package/dist/plugins/devices-homekit/services/homekit-command.dispatcher.js.map +1 -0
  114. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.d.ts +34 -0
  115. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js +179 -0
  116. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js.map +1 -0
  117. package/dist/plugins/devices-homekit/services/homekit-wizard.service.d.ts +15 -0
  118. package/dist/plugins/devices-homekit/services/homekit-wizard.service.js +75 -0
  119. package/dist/plugins/devices-homekit/services/homekit-wizard.service.js.map +1 -0
  120. package/dist/plugins/devices-homekit/validators/is-not-forbidden-homekit-pin.validator.d.ts +2 -0
  121. package/dist/plugins/devices-homekit/validators/is-not-forbidden-homekit-pin.validator.js +30 -0
  122. package/dist/plugins/devices-homekit/validators/is-not-forbidden-homekit-pin.validator.js.map +1 -0
  123. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +5 -0
  124. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  125. package/dist/tsconfig.build.tsbuildinfo +1 -1
  126. package/package.json +5 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homekit-bridge.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/services/homekit-bridge.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { PropertyCommandService } from '../../../modules/devices/services/property-command.service';
2
+ export declare class HomeKitCommandDispatcher {
3
+ private readonly propertyCommandService;
4
+ private readonly logger;
5
+ constructor(propertyCommandService: PropertyCommandService);
6
+ dispatch(propertyId: string, value: unknown): Promise<void>;
7
+ dispatchBatch(commands: Array<{
8
+ propertyId: string;
9
+ value: unknown;
10
+ }>): Promise<void>;
11
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var HomeKitCommandDispatcher_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.HomeKitCommandDispatcher = void 0;
14
+ const hap_nodejs_1 = require("@homebridge/hap-nodejs");
15
+ const common_1 = require("@nestjs/common");
16
+ const property_command_service_1 = require("../../../modules/devices/services/property-command.service");
17
+ let HomeKitCommandDispatcher = HomeKitCommandDispatcher_1 = class HomeKitCommandDispatcher {
18
+ constructor(propertyCommandService) {
19
+ this.propertyCommandService = propertyCommandService;
20
+ this.logger = new common_1.Logger(HomeKitCommandDispatcher_1.name);
21
+ }
22
+ async dispatch(propertyId, value) {
23
+ try {
24
+ this.logger.debug(`Dispatching HomeKit command for property=${propertyId} value=${JSON.stringify(value)}`);
25
+ const result = await this.propertyCommandService.executePropertyCommandById(propertyId, value);
26
+ if (!result.success) {
27
+ this.logger.warn(`Property command failed: ${result.reason ?? 'Unknown reason'}`);
28
+ throw new hap_nodejs_1.HapStatusError(-70402);
29
+ }
30
+ }
31
+ catch (error) {
32
+ if (error instanceof hap_nodejs_1.HapStatusError) {
33
+ throw error;
34
+ }
35
+ const err = error;
36
+ this.logger.error(`Error executing HomeKit property command: ${err.message}`, err.stack);
37
+ throw new hap_nodejs_1.HapStatusError(-70402);
38
+ }
39
+ }
40
+ async dispatchBatch(commands) {
41
+ if (commands.length === 0) {
42
+ return;
43
+ }
44
+ try {
45
+ this.logger.debug(`Dispatching HomeKit batch commands for ${commands.length} properties`);
46
+ const result = await this.propertyCommandService.executePropertyCommands(commands);
47
+ if (!result.success) {
48
+ const failure = result.results.find((r) => !r.success);
49
+ this.logger.warn(`Property batch command failed: ${failure?.reason ?? 'Unknown reason'}`);
50
+ throw new hap_nodejs_1.HapStatusError(-70402);
51
+ }
52
+ }
53
+ catch (error) {
54
+ if (error instanceof hap_nodejs_1.HapStatusError) {
55
+ throw error;
56
+ }
57
+ const err = error;
58
+ this.logger.error(`Error executing HomeKit batch property command: ${err.message}`, err.stack);
59
+ throw new hap_nodejs_1.HapStatusError(-70402);
60
+ }
61
+ }
62
+ };
63
+ exports.HomeKitCommandDispatcher = HomeKitCommandDispatcher;
64
+ exports.HomeKitCommandDispatcher = HomeKitCommandDispatcher = HomeKitCommandDispatcher_1 = __decorate([
65
+ (0, common_1.Injectable)(),
66
+ __metadata("design:paramtypes", [property_command_service_1.PropertyCommandService])
67
+ ], HomeKitCommandDispatcher);
68
+ //# sourceMappingURL=homekit-command.dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homekit-command.dispatcher.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/services/homekit-command.dispatcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,uDAAmE;AACnE,2CAAoD;AAEpD,yGAAoG;AAG7F,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAGpC,YAA6B,sBAA8C;QAA9C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAF1D,WAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IAEU,CAAC;IAE/E,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,KAAc;QAChD,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,UAAU,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3G,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAE/F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC,CAAC;gBAClF,MAAM,IAAI,2BAAc,QAAyC,CAAC;YACnE,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,2BAAc,EAAE,CAAC;gBACrC,MAAM,KAAK,CAAC;YACb,CAAC;YACD,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACzF,MAAM,IAAI,2BAAc,QAAyC,CAAC;QACnE,CAAC;IACF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAuD;QAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;YAE1F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAEnF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,CAAC,CAAC;gBAC1F,MAAM,IAAI,2BAAc,QAAyC,CAAC;YACnE,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,2BAAc,EAAE,CAAC;gBACrC,MAAM,KAAK,CAAC;YACb,CAAC;YACD,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/F,MAAM,IAAI,2BAAc,QAAyC,CAAC;QACnE,CAAC;IACF,CAAC;CACD,CAAA;AAjDY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAIyC,iDAAsB;GAH/D,wBAAwB,CAiDpC"}
@@ -0,0 +1,34 @@
1
+ import { Accessory } from '@homebridge/hap-nodejs';
2
+ import { DeviceEntity } from '../../../modules/devices/entities/devices.entity';
3
+ import { CharacteristicBinding, IHomeKitAccessoryMapper, PropertyEventListener } from '../mappers/homekit-mapper.interface';
4
+ import { HomeKitCommandDispatcher } from './homekit-command.dispatcher';
5
+ export interface RegistrySnapshot {
6
+ propertyBindings: Map<string, CharacteristicBinding[]>;
7
+ propertyListeners: Map<string, PropertyEventListener[]>;
8
+ deviceProperties: Map<string, Set<string>>;
9
+ }
10
+ export interface StagedAccessory {
11
+ accessory: Accessory;
12
+ deviceId: string;
13
+ bindings: CharacteristicBinding[];
14
+ listeners: PropertyEventListener[];
15
+ }
16
+ export declare class HomeKitMapperRegistryService {
17
+ private readonly logger;
18
+ private readonly mappers;
19
+ private readonly propertyBindings;
20
+ private readonly propertyListeners;
21
+ private readonly deviceProperties;
22
+ constructor();
23
+ canMap(device: DeviceEntity): boolean;
24
+ findMapper(device: DeviceEntity): IHomeKitAccessoryMapper | null;
25
+ getSuggestedServiceType(device: DeviceEntity): string | null;
26
+ buildAccessory(device: DeviceEntity, commandDispatcher: HomeKitCommandDispatcher): StagedAccessory | null;
27
+ commitStaged(staged: StagedAccessory): void;
28
+ getBindingsForProperty(propertyId: string): CharacteristicBinding[];
29
+ getListenersForProperty(propertyId: string): PropertyEventListener[];
30
+ clearDeviceBindings(deviceId: string): void;
31
+ clearAllBindings(): void;
32
+ getSnapshot(): RegistrySnapshot;
33
+ restoreSnapshot(snapshot: RegistrySnapshot): void;
34
+ }
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var HomeKitMapperRegistryService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.HomeKitMapperRegistryService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const battery_mapper_1 = require("../mappers/battery.mapper");
16
+ const lightbulb_mapper_1 = require("../mappers/lightbulb.mapper");
17
+ const lock_mapper_1 = require("../mappers/lock.mapper");
18
+ const outlet_mapper_1 = require("../mappers/outlet.mapper");
19
+ const sensor_mapper_1 = require("../mappers/sensor.mapper");
20
+ const switch_mapper_1 = require("../mappers/switch.mapper");
21
+ const thermostat_mapper_1 = require("../mappers/thermostat.mapper");
22
+ const window_covering_mapper_1 = require("../mappers/window-covering.mapper");
23
+ let HomeKitMapperRegistryService = HomeKitMapperRegistryService_1 = class HomeKitMapperRegistryService {
24
+ constructor() {
25
+ this.logger = new common_1.Logger(HomeKitMapperRegistryService_1.name);
26
+ this.mappers = [];
27
+ this.propertyBindings = new Map();
28
+ this.propertyListeners = new Map();
29
+ this.deviceProperties = new Map();
30
+ this.mappers.push(new lightbulb_mapper_1.LightbulbMapper());
31
+ this.mappers.push(new switch_mapper_1.SwitchMapper());
32
+ this.mappers.push(new outlet_mapper_1.OutletMapper());
33
+ this.mappers.push(new thermostat_mapper_1.ThermostatMapper());
34
+ this.mappers.push(new window_covering_mapper_1.WindowCoveringMapper());
35
+ this.mappers.push(new lock_mapper_1.LockMapper());
36
+ this.mappers.push(new sensor_mapper_1.SensorMapper());
37
+ }
38
+ canMap(device) {
39
+ return this.findMapper(device) !== null;
40
+ }
41
+ findMapper(device) {
42
+ for (const mapper of this.mappers) {
43
+ if (mapper.canMap(device)) {
44
+ return mapper;
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+ getSuggestedServiceType(device) {
50
+ const mapper = this.findMapper(device);
51
+ return mapper ? mapper.getSuggestedServiceType(device) : null;
52
+ }
53
+ buildAccessory(device, commandDispatcher) {
54
+ const mapper = this.findMapper(device);
55
+ if (!mapper) {
56
+ this.logger.debug(`No compatible HomeKit mapper found for device: ${device.name} (${device.id})`);
57
+ return null;
58
+ }
59
+ const stagedBindings = [];
60
+ const stagedListeners = [];
61
+ const context = {
62
+ commandDispatcher,
63
+ registerBinding: (binding) => {
64
+ stagedBindings.push(binding);
65
+ },
66
+ registerPropertyListener: (listener) => {
67
+ stagedListeners.push(listener);
68
+ },
69
+ };
70
+ const accessory = mapper.buildAccessory(device, context);
71
+ if (!accessory) {
72
+ return null;
73
+ }
74
+ battery_mapper_1.BatteryMapper.attachBatteryService(accessory, device, context);
75
+ return {
76
+ accessory,
77
+ deviceId: device.id,
78
+ bindings: stagedBindings,
79
+ listeners: stagedListeners,
80
+ };
81
+ }
82
+ commitStaged(staged) {
83
+ this.clearDeviceBindings(staged.deviceId);
84
+ for (const binding of staged.bindings) {
85
+ const existing = this.propertyBindings.get(binding.propertyId) ?? [];
86
+ existing.push(binding);
87
+ this.propertyBindings.set(binding.propertyId, existing);
88
+ let devProps = this.deviceProperties.get(binding.deviceId);
89
+ if (!devProps) {
90
+ devProps = new Set();
91
+ this.deviceProperties.set(binding.deviceId, devProps);
92
+ }
93
+ devProps.add(binding.propertyId);
94
+ }
95
+ for (const listener of staged.listeners) {
96
+ const existing = this.propertyListeners.get(listener.propertyId) ?? [];
97
+ existing.push(listener);
98
+ this.propertyListeners.set(listener.propertyId, existing);
99
+ let devProps = this.deviceProperties.get(listener.deviceId);
100
+ if (!devProps) {
101
+ devProps = new Set();
102
+ this.deviceProperties.set(listener.deviceId, devProps);
103
+ }
104
+ devProps.add(listener.propertyId);
105
+ }
106
+ }
107
+ getBindingsForProperty(propertyId) {
108
+ return this.propertyBindings.get(propertyId) ?? [];
109
+ }
110
+ getListenersForProperty(propertyId) {
111
+ return this.propertyListeners.get(propertyId) ?? [];
112
+ }
113
+ clearDeviceBindings(deviceId) {
114
+ const propIds = this.deviceProperties.get(deviceId);
115
+ if (propIds) {
116
+ for (const propId of propIds) {
117
+ const bindings = this.propertyBindings.get(propId) ?? [];
118
+ const remainingBindings = bindings.filter((b) => b.deviceId !== deviceId);
119
+ if (remainingBindings.length === 0) {
120
+ this.propertyBindings.delete(propId);
121
+ }
122
+ else {
123
+ this.propertyBindings.set(propId, remainingBindings);
124
+ }
125
+ const listeners = this.propertyListeners.get(propId) ?? [];
126
+ const remainingListeners = listeners.filter((l) => l.deviceId !== deviceId);
127
+ if (remainingListeners.length === 0) {
128
+ this.propertyListeners.delete(propId);
129
+ }
130
+ else {
131
+ this.propertyListeners.set(propId, remainingListeners);
132
+ }
133
+ }
134
+ this.deviceProperties.delete(deviceId);
135
+ }
136
+ }
137
+ clearAllBindings() {
138
+ this.propertyBindings.clear();
139
+ this.propertyListeners.clear();
140
+ this.deviceProperties.clear();
141
+ }
142
+ getSnapshot() {
143
+ const cloneBindings = new Map();
144
+ for (const [k, v] of this.propertyBindings.entries()) {
145
+ cloneBindings.set(k, [...v]);
146
+ }
147
+ const cloneListeners = new Map();
148
+ for (const [k, v] of this.propertyListeners.entries()) {
149
+ cloneListeners.set(k, [...v]);
150
+ }
151
+ const cloneProps = new Map();
152
+ for (const [k, v] of this.deviceProperties.entries()) {
153
+ cloneProps.set(k, new Set(v));
154
+ }
155
+ return {
156
+ propertyBindings: cloneBindings,
157
+ propertyListeners: cloneListeners,
158
+ deviceProperties: cloneProps,
159
+ };
160
+ }
161
+ restoreSnapshot(snapshot) {
162
+ this.clearAllBindings();
163
+ for (const [k, v] of snapshot.propertyBindings.entries()) {
164
+ this.propertyBindings.set(k, [...v]);
165
+ }
166
+ for (const [k, v] of snapshot.propertyListeners.entries()) {
167
+ this.propertyListeners.set(k, [...v]);
168
+ }
169
+ for (const [k, v] of snapshot.deviceProperties.entries()) {
170
+ this.deviceProperties.set(k, new Set(v));
171
+ }
172
+ }
173
+ };
174
+ exports.HomeKitMapperRegistryService = HomeKitMapperRegistryService;
175
+ exports.HomeKitMapperRegistryService = HomeKitMapperRegistryService = HomeKitMapperRegistryService_1 = __decorate([
176
+ (0, common_1.Injectable)(),
177
+ __metadata("design:paramtypes", [])
178
+ ], HomeKitMapperRegistryService);
179
+ //# sourceMappingURL=homekit-mapper-registry.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homekit-mapper-registry.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/services/homekit-mapper-registry.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { DevicesService } from '../../../modules/devices/services/devices.service';
2
+ import { SpacesService } from '../../../modules/spaces/services/spaces.service';
3
+ import { HomeKitDeviceCandidateModel } from '../models/bridge-candidate.model';
4
+ import { HomeKitBridgeService } from './homekit-bridge.service';
5
+ import { HomeKitMapperRegistryService } from './homekit-mapper-registry.service';
6
+ export declare class HomeKitWizardService {
7
+ private readonly devicesService;
8
+ private readonly mapperRegistry;
9
+ private readonly bridgeService;
10
+ private readonly spacesService?;
11
+ private readonly logger;
12
+ constructor(devicesService: DevicesService, mapperRegistry: HomeKitMapperRegistryService, bridgeService: HomeKitBridgeService, spacesService?: SpacesService);
13
+ getCandidates(): Promise<HomeKitDeviceCandidateModel[]>;
14
+ mapDevices(deviceIds: string[]): Promise<void>;
15
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var HomeKitWizardService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.HomeKitWizardService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const devices_constants_1 = require("../../../modules/devices/devices.constants");
19
+ const devices_service_1 = require("../../../modules/devices/services/devices.service");
20
+ const spaces_service_1 = require("../../../modules/spaces/services/spaces.service");
21
+ const bridge_candidate_model_1 = require("../models/bridge-candidate.model");
22
+ const homekit_bridge_service_1 = require("./homekit-bridge.service");
23
+ const homekit_mapper_registry_service_1 = require("./homekit-mapper-registry.service");
24
+ let HomeKitWizardService = HomeKitWizardService_1 = class HomeKitWizardService {
25
+ constructor(devicesService, mapperRegistry, bridgeService, spacesService) {
26
+ this.devicesService = devicesService;
27
+ this.mapperRegistry = mapperRegistry;
28
+ this.bridgeService = bridgeService;
29
+ this.spacesService = spacesService;
30
+ this.logger = new common_1.Logger(HomeKitWizardService_1.name);
31
+ }
32
+ async getCandidates() {
33
+ this.logger.debug('Fetching device candidates for HomeKit mapping');
34
+ const devices = await this.devicesService.findAll(undefined, devices_constants_1.DeviceHiddenFilter.FALSE);
35
+ const mappedSet = new Set(this.bridgeService.getConfig().mappedDeviceIds);
36
+ const spaces = this.spacesService ? await this.spacesService.findAll() : [];
37
+ const roomMap = new Map();
38
+ for (const space of spaces) {
39
+ roomMap.set(space.id, space.name);
40
+ }
41
+ return devices.map((device) => {
42
+ const mapper = this.mapperRegistry.findMapper(device);
43
+ const isCompatible = mapper !== null;
44
+ const suggestedServiceType = isCompatible ? mapper.getSuggestedServiceType(device) : null;
45
+ const isMapped = mappedSet.has(device.id);
46
+ const roomId = device.roomId ?? (device.room ? device.room.id : null);
47
+ const roomName = (roomId ? roomMap.get(roomId) : null) ?? (device.room ? device.room.name : null);
48
+ const candidate = new bridge_candidate_model_1.HomeKitDeviceCandidateModel();
49
+ candidate.id = device.id;
50
+ candidate.name = device.name;
51
+ candidate.category = device.category;
52
+ candidate.roomId = roomId;
53
+ candidate.roomName = roomName;
54
+ candidate.isCompatible = isCompatible;
55
+ candidate.suggestedServiceType = suggestedServiceType;
56
+ candidate.isMapped = isMapped;
57
+ candidate.channelsCount = device.channels?.length ?? 0;
58
+ return candidate;
59
+ });
60
+ }
61
+ async mapDevices(deviceIds) {
62
+ this.logger.log(`Updating mapped HomeKit devices: count=${deviceIds.length}`);
63
+ await this.bridgeService.updateMappedDevices(deviceIds);
64
+ }
65
+ };
66
+ exports.HomeKitWizardService = HomeKitWizardService;
67
+ exports.HomeKitWizardService = HomeKitWizardService = HomeKitWizardService_1 = __decorate([
68
+ (0, common_1.Injectable)(),
69
+ __param(3, (0, common_1.Optional)()),
70
+ __metadata("design:paramtypes", [devices_service_1.DevicesService,
71
+ homekit_mapper_registry_service_1.HomeKitMapperRegistryService,
72
+ homekit_bridge_service_1.HomeKitBridgeService,
73
+ spaces_service_1.SpacesService])
74
+ ], HomeKitWizardService);
75
+ //# sourceMappingURL=homekit-wizard.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homekit-wizard.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/services/homekit-wizard.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare function IsNotForbiddenHomeKitPin(validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsNotForbiddenHomeKitPin = IsNotForbiddenHomeKitPin;
4
+ const class_validator_1 = require("class-validator");
5
+ const devices_homekit_constants_1 = require("../devices-homekit.constants");
6
+ function IsNotForbiddenHomeKitPin(validationOptions) {
7
+ return function (object, propertyName) {
8
+ (0, class_validator_1.registerDecorator)({
9
+ name: 'isNotForbiddenHomeKitPin',
10
+ target: object.constructor,
11
+ propertyName,
12
+ options: validationOptions,
13
+ validator: {
14
+ validate(value) {
15
+ if (value === undefined || value === null || value === '') {
16
+ return true;
17
+ }
18
+ if (typeof value !== 'string') {
19
+ return false;
20
+ }
21
+ return !devices_homekit_constants_1.HOMEKIT_FORBIDDEN_PINS.has(value);
22
+ },
23
+ defaultMessage(args) {
24
+ return `[{"field":"${args.property}","reason":"PIN code is not allowed by Apple HomeKit."}]`;
25
+ },
26
+ },
27
+ });
28
+ };
29
+ }
30
+ //# sourceMappingURL=is-not-forbidden-homekit-pin.validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-not-forbidden-homekit-pin.validator.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/validators/is-not-forbidden-homekit-pin.validator.ts"],"names":[],"mappings":";;AAaA,4DAuBC;AApCD,qDAA4F;AAE5F,4EAAsE;AAWtE,SAAgB,wBAAwB,CAAC,iBAAqC;IAC7E,OAAO,UAAU,MAAc,EAAE,YAAoB;QACpD,IAAA,mCAAiB,EAAC;YACjB,IAAI,EAAE,0BAA0B;YAChC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACV,QAAQ,CAAC,KAAc;oBACtB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;wBAC3D,OAAO,IAAI,CAAC;oBACb,CAAC;oBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/B,OAAO,KAAK,CAAC;oBACd,CAAC;oBACD,OAAO,CAAC,kDAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBACD,cAAc,CAAC,IAAyB;oBACvC,OAAO,cAAc,IAAI,CAAC,QAAQ,0DAA0D,CAAC;gBAC9F,CAAC;aACD;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
@@ -1156,6 +1156,7 @@ let DeviceManagerService = class DeviceManagerService {
1156
1156
  const schemaPropertySpec = this.getSchemaPropertySpec(channelSpec, category);
1157
1157
  const mappingPropertySpec = this.getMappingPropertySpec(propertyMapping);
1158
1158
  const resolvedFormat = options?.format ?? mappingPropertySpec?.format ?? schemaPropertySpec?.format ?? null;
1159
+ const resolvedStep = options?.step !== undefined ? options.step : (schemaPropertySpec?.step ?? null);
1159
1160
  const normalizedValue = this.normalizeValue(value, { format: resolvedFormat });
1160
1161
  const inferredDataType = typeof normalizedValue === 'number'
1161
1162
  ? devices_constants_1.DataTypeType.FLOAT
@@ -1187,6 +1188,7 @@ let DeviceManagerService = class DeviceManagerService {
1187
1188
  permissions: resolvedPermissions,
1188
1189
  data_type: resolvedDataType,
1189
1190
  format: resolvedFormat ?? null,
1191
+ step: resolvedStep,
1190
1192
  },
1191
1193
  type: devices_shelly_ng_constants_1.DEVICES_SHELLY_NG_TYPE,
1192
1194
  category,
@@ -1204,6 +1206,7 @@ let DeviceManagerService = class DeviceManagerService {
1204
1206
  permissions: resolvedPermissions,
1205
1207
  data_type: resolvedDataType,
1206
1208
  format: resolvedFormat ?? null,
1209
+ step: resolvedStep,
1207
1210
  });
1208
1211
  }
1209
1212
  return prop;
@@ -1224,6 +1227,7 @@ let DeviceManagerService = class DeviceManagerService {
1224
1227
  data_type: typed.data_type,
1225
1228
  unit: typed.unit ?? null,
1226
1229
  format: typed.format ?? null,
1230
+ step: typed.step ?? null,
1227
1231
  };
1228
1232
  }
1229
1233
  if ('data_types' in rawSpec && Array.isArray(rawSpec.data_types)) {
@@ -1234,6 +1238,7 @@ let DeviceManagerService = class DeviceManagerService {
1234
1238
  data_type: primaryVariant.data_type,
1235
1239
  unit: primaryVariant.unit ?? null,
1236
1240
  format: primaryVariant.format ?? null,
1241
+ step: primaryVariant.step ?? null,
1237
1242
  };
1238
1243
  }
1239
1244
  }