@fastybird/smart-panel-backend 1.1.0-alpha.40 → 1.1.0-alpha.41

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 (81) hide show
  1. package/dist/modules/auth/auth.module.js +4 -0
  2. package/dist/modules/auth/auth.module.js.map +1 -1
  3. package/dist/modules/auth/guards/auth.guard.js +8 -13
  4. package/dist/modules/auth/guards/auth.guard.js.map +1 -1
  5. package/dist/modules/auth/services/token-metadata.service.d.ts +42 -0
  6. package/dist/modules/auth/services/token-metadata.service.js +202 -0
  7. package/dist/modules/auth/services/token-metadata.service.js.map +1 -0
  8. package/dist/modules/auth/services/token-usage.service.d.ts +22 -0
  9. package/dist/modules/auth/services/token-usage.service.js +93 -0
  10. package/dist/modules/auth/services/token-usage.service.js.map +1 -0
  11. package/dist/modules/auth/services/tokens.service.d.ts +8 -2
  12. package/dist/modules/auth/services/tokens.service.js +16 -10
  13. package/dist/modules/auth/services/tokens.service.js.map +1 -1
  14. package/dist/modules/devices/devices.module.js +7 -0
  15. package/dist/modules/devices/devices.module.js.map +1 -1
  16. package/dist/modules/devices/dto/property-command.dto.js +2 -8
  17. package/dist/modules/devices/dto/property-command.dto.js.map +1 -1
  18. package/dist/modules/devices/services/device-command-graph.service.d.ts +18 -0
  19. package/dist/modules/devices/services/device-command-graph.service.js +92 -0
  20. package/dist/modules/devices/services/device-command-graph.service.js.map +1 -0
  21. package/dist/modules/devices/services/devices.service.js +2 -17
  22. package/dist/modules/devices/services/devices.service.js.map +1 -1
  23. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +5 -3
  24. package/dist/modules/devices/services/property-command-dispatch.service.js +15 -12
  25. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -1
  26. package/dist/modules/devices/services/property-command.service.d.ts +7 -5
  27. package/dist/modules/devices/services/property-command.service.js +41 -20
  28. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  29. package/dist/modules/devices/services/property-metadata.service.d.ts +9 -2
  30. package/dist/modules/devices/services/property-metadata.service.js +67 -17
  31. package/dist/modules/devices/services/property-metadata.service.js.map +1 -1
  32. package/dist/modules/devices/utils/device-graph-query.utils.d.ts +3 -0
  33. package/dist/modules/devices/utils/device-graph-query.utils.js +23 -0
  34. package/dist/modules/devices/utils/device-graph-query.utils.js.map +1 -0
  35. package/dist/modules/devices/validators/property-command-target-constraint.validator.d.ts +9 -0
  36. package/dist/modules/devices/validators/property-command-target-constraint.validator.js +58 -0
  37. package/dist/modules/devices/validators/property-command-target-constraint.validator.js.map +1 -0
  38. package/dist/modules/spaces/services/module-reset.service.d.ts +5 -1
  39. package/dist/modules/spaces/services/module-reset.service.js +10 -2
  40. package/dist/modules/spaces/services/module-reset.service.js.map +1 -1
  41. package/dist/modules/spaces/services/space-activity.service.d.ts +14 -0
  42. package/dist/modules/spaces/services/space-activity.service.js +56 -0
  43. package/dist/modules/spaces/services/space-activity.service.js.map +1 -0
  44. package/dist/modules/spaces/spaces.module.js +5 -0
  45. package/dist/modules/spaces/spaces.module.js.map +1 -1
  46. package/dist/modules/spaces/subscribers/space-activity.subscriber.d.ts +17 -0
  47. package/dist/modules/spaces/subscribers/space-activity.subscriber.js +89 -0
  48. package/dist/modules/spaces/subscribers/space-activity.subscriber.js.map +1 -0
  49. package/dist/modules/websocket/services/ws-auth.service.js +12 -28
  50. package/dist/modules/websocket/services/ws-auth.service.js.map +1 -1
  51. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.d.ts +3 -8
  52. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js +6 -36
  53. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js.map +1 -1
  54. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.d.ts +6 -7
  55. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js +19 -44
  56. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js.map +1 -1
  57. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.d.ts +4 -4
  58. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js +9 -22
  59. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js.map +1 -1
  60. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.d.ts +4 -4
  61. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js +9 -22
  62. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js.map +1 -1
  63. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.d.ts +4 -4
  64. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js +9 -22
  65. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js.map +1 -1
  66. package/dist/plugins/spaces-home-control/services/space-climate-state.service.d.ts +3 -5
  67. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js +9 -12
  68. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js.map +1 -1
  69. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.d.ts +3 -5
  70. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js +7 -10
  71. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js.map +1 -1
  72. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.d.ts +3 -5
  73. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js +7 -10
  74. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js.map +1 -1
  75. package/dist/plugins/spaces-home-control/services/space-state-read.service.d.ts +47 -0
  76. package/dist/plugins/spaces-home-control/services/space-state-read.service.js +262 -0
  77. package/dist/plugins/spaces-home-control/services/space-state-read.service.js.map +1 -0
  78. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js +4 -0
  79. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js.map +1 -1
  80. package/dist/tsconfig.build.tsbuildinfo +1 -1
  81. package/package.json +2 -2
@@ -0,0 +1,58 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ValidatePropertyCommandTarget = exports.PropertyCommandTargetConstraintValidator = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const common_1 = require("@nestjs/common");
15
+ const property_metadata_service_1 = require("../services/property-metadata.service");
16
+ let PropertyCommandTargetConstraintValidator = class PropertyCommandTargetConstraintValidator {
17
+ constructor(propertyMetadata) {
18
+ this.propertyMetadata = propertyMetadata;
19
+ }
20
+ async validate(propertyId, args) {
21
+ const { device: deviceId, channel: channelId } = args.object;
22
+ if (typeof propertyId !== 'string' ||
23
+ !(0, class_validator_1.isUUID)(propertyId, '4') ||
24
+ typeof channelId !== 'string' ||
25
+ !(0, class_validator_1.isUUID)(channelId, '4') ||
26
+ typeof deviceId !== 'string' ||
27
+ !(0, class_validator_1.isUUID)(deviceId, '4'))
28
+ return false;
29
+ const property = await this.propertyMetadata.findOne(propertyId);
30
+ if (!property || typeof property.channel === 'string')
31
+ return false;
32
+ const channel = property.channel;
33
+ return channel.id === channelId && typeof channel.device !== 'string' && channel.device.id === deviceId;
34
+ }
35
+ defaultMessage(args) {
36
+ return `[{"field":"${args.property}","reason":"The property must belong to the specified channel and device."}]`;
37
+ }
38
+ };
39
+ exports.PropertyCommandTargetConstraintValidator = PropertyCommandTargetConstraintValidator;
40
+ exports.PropertyCommandTargetConstraintValidator = PropertyCommandTargetConstraintValidator = __decorate([
41
+ (0, common_1.Injectable)(),
42
+ (0, class_validator_1.ValidatorConstraint)({ name: 'PropertyCommandTargetValidation', async: true }),
43
+ __metadata("design:paramtypes", [property_metadata_service_1.PropertyMetadataService])
44
+ ], PropertyCommandTargetConstraintValidator);
45
+ const ValidatePropertyCommandTarget = (validationOptions) => {
46
+ return function (object, propertyName) {
47
+ (0, class_validator_1.registerDecorator)({
48
+ name: 'ValidatePropertyCommandTarget',
49
+ target: object.constructor,
50
+ propertyName,
51
+ options: validationOptions,
52
+ constraints: [],
53
+ validator: PropertyCommandTargetConstraintValidator,
54
+ });
55
+ };
56
+ };
57
+ exports.ValidatePropertyCommandTarget = ValidatePropertyCommandTarget;
58
+ //# sourceMappingURL=property-command-target-constraint.validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-command-target-constraint.validator.js","sourceRoot":"","sources":["../../../../src/modules/devices/validators/property-command-target-constraint.validator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AAEzB,2CAA4C;AAE5C,qFAAgF;AAKzE,IAAM,wCAAwC,GAA9C,MAAM,wCAAwC;IACpD,YAA6B,gBAAyC;QAAzC,qBAAgB,GAAhB,gBAAgB,CAAyB;IAAG,CAAC;IAG1E,KAAK,CAAC,QAAQ,CAAC,UAAmB,EAAE,IAAyB;QAC5D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAiC,CAAC;QAExF,IACC,OAAO,UAAU,KAAK,QAAQ;YAC9B,CAAC,IAAA,wBAAM,EAAC,UAAU,EAAE,GAAG,CAAC;YACxB,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,IAAA,wBAAM,EAAC,SAAS,EAAE,GAAG,CAAC;YACvB,OAAO,QAAQ,KAAK,QAAQ;YAC5B,CAAC,IAAA,wBAAM,EAAC,QAAQ,EAAE,GAAG,CAAC;YAEtB,OAAO,KAAK,CAAC;QAEd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEjC,OAAO,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;IACzG,CAAC;IAED,cAAc,CAAC,IAAyB;QACvC,OAAO,cAAc,IAAI,CAAC,QAAQ,8EAA8E,CAAC;IAClH,CAAC;CACD,CAAA;AA3BY,4FAAwC;mDAAxC,wCAAwC;IAFpD,IAAA,mBAAU,GAAE;IACZ,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;qCAE9B,mDAAuB;GAD1D,wCAAwC,CA2BpD;AAEM,MAAM,6BAA6B,GAAG,CAAC,iBAAqC,EAAE,EAAE;IACtF,OAAO,UAAU,MAAc,EAAE,YAAoB;QACpD,IAAA,mCAAiB,EAAC;YACjB,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,wCAAwC;SACnD,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC,CAAC;AAXW,QAAA,6BAA6B,iCAWxC"}
@@ -1,9 +1,13 @@
1
1
  import { Repository } from 'typeorm';
2
+ import { PropertyMetadataService } from '../../devices/services/property-metadata.service';
2
3
  import { SpaceEntity } from '../entities/space.entity';
4
+ import { SpaceActivityService } from './space-activity.service';
3
5
  export declare class SpacesModuleResetService {
4
6
  private readonly spacesRepository;
7
+ private readonly activity;
8
+ private readonly propertyMetadata;
5
9
  private readonly logger;
6
- constructor(spacesRepository: Repository<SpaceEntity>);
10
+ constructor(spacesRepository: Repository<SpaceEntity>, activity: SpaceActivityService, propertyMetadata: PropertyMetadataService);
7
11
  reset(): Promise<{
8
12
  success: boolean;
9
13
  reason?: string;
@@ -17,17 +17,23 @@ const typeorm_1 = require("typeorm");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const typeorm_2 = require("@nestjs/typeorm");
19
19
  const extension_logger_service_1 = require("../../../common/logger/extension-logger.service");
20
+ const property_metadata_service_1 = require("../../devices/services/property-metadata.service");
20
21
  const space_entity_1 = require("../entities/space.entity");
21
22
  const spaces_constants_1 = require("../spaces.constants");
23
+ const space_activity_service_1 = require("./space-activity.service");
22
24
  let SpacesModuleResetService = class SpacesModuleResetService {
23
- constructor(spacesRepository) {
25
+ constructor(spacesRepository, activity, propertyMetadata) {
24
26
  this.spacesRepository = spacesRepository;
27
+ this.activity = activity;
28
+ this.propertyMetadata = propertyMetadata;
25
29
  this.logger = (0, extension_logger_service_1.createExtensionLogger)(spaces_constants_1.SPACES_MODULE_NAME, 'SpacesModuleResetService');
26
30
  }
27
31
  async reset() {
28
32
  this.logger.log('[RESET] Starting spaces module factory reset');
29
33
  try {
30
34
  await this.spacesRepository.clear();
35
+ this.propertyMetadata.invalidate();
36
+ this.activity.clear();
31
37
  this.logger.log('[RESET] Spaces module factory reset completed successfully');
32
38
  return { success: true };
33
39
  }
@@ -42,6 +48,8 @@ exports.SpacesModuleResetService = SpacesModuleResetService;
42
48
  exports.SpacesModuleResetService = SpacesModuleResetService = __decorate([
43
49
  (0, common_1.Injectable)(),
44
50
  __param(0, (0, typeorm_2.InjectRepository)(space_entity_1.SpaceEntity)),
45
- __metadata("design:paramtypes", [typeorm_1.Repository])
51
+ __metadata("design:paramtypes", [typeorm_1.Repository,
52
+ space_activity_service_1.SpaceActivityService,
53
+ property_metadata_service_1.PropertyMetadataService])
46
54
  ], SpacesModuleResetService);
47
55
  //# sourceMappingURL=module-reset.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-reset.service.js","sourceRoot":"","sources":["../../../../src/modules/spaces/services/module-reset.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAqC;AAErC,2CAA4C;AAC5C,6CAAmD;AAEnD,8FAAwF;AACxF,2DAAuD;AACvD,0DAAyD;AAGlD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGpC,YAEC,gBAA0D;QAAzC,qBAAgB,GAAhB,gBAAgB,CAAyB;QAJ1C,WAAM,GAAG,IAAA,gDAAqB,EAAC,qCAAkB,EAAE,0BAA0B,CAAC,CAAC;IAK7F,CAAC;IAEJ,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAEhE,IAAI,CAAC;YAEJ,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAEpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;YAE9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,KAAc,CAAC;YAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAEhF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAChD,CAAC;IACF,CAAC;CACD,CAAA;AA1BY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;IAKV,WAAA,IAAA,0BAAgB,EAAC,0BAAW,CAAC,CAAA;qCACK,oBAAU;GALlC,wBAAwB,CA0BpC"}
1
+ {"version":3,"file":"module-reset.service.js","sourceRoot":"","sources":["../../../../src/modules/spaces/services/module-reset.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAqC;AAErC,2CAA4C;AAC5C,6CAAmD;AAEnD,8FAAwF;AACxF,gGAA2F;AAC3F,2DAAuD;AACvD,0DAAyD;AAEzD,qEAAgE;AAGzD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGpC,YAEC,gBAA0D,EACzC,QAA8B,EAC9B,gBAAyC;QAFzC,qBAAgB,GAAhB,gBAAgB,CAAyB;QACzC,aAAQ,GAAR,QAAQ,CAAsB;QAC9B,qBAAgB,GAAhB,gBAAgB,CAAyB;QAN1C,WAAM,GAAG,IAAA,gDAAqB,EAAC,qCAAkB,EAAE,0BAA0B,CAAC,CAAC;IAO7F,CAAC;IAEJ,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAEhE,IAAI,CAAC;YAEJ,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAEpC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAEtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;YAE9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,KAAc,CAAC;YAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAEhF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAChD,CAAC;IACF,CAAC;CACD,CAAA;AA/BY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;IAKV,WAAA,IAAA,0BAAgB,EAAC,0BAAW,CAAC,CAAA;qCACK,oBAAU;QAClB,6CAAoB;QACZ,mDAAuB;GAP/C,wBAAwB,CA+BpC"}
@@ -0,0 +1,14 @@
1
+ import { OnModuleDestroy } from '@nestjs/common';
2
+ import { SpaceEntity } from '../entities/space.entity';
3
+ export declare class SpaceActivityService implements OnModuleDestroy {
4
+ private readonly activity;
5
+ private readonly deletedGenerations;
6
+ private generation;
7
+ private clearGeneration;
8
+ getGeneration(): number;
9
+ record(spaceId: string, observedAt: Date, generation?: number): void;
10
+ readLatest(space: Pick<SpaceEntity, 'id' | 'lastActivityAt'>): Date | string | null;
11
+ delete(spaceId: string): void;
12
+ clear(): void;
13
+ onModuleDestroy(): void;
14
+ }
@@ -0,0 +1,56 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SpaceActivityService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let SpaceActivityService = class SpaceActivityService {
12
+ constructor() {
13
+ this.activity = new Map();
14
+ this.deletedGenerations = new Map();
15
+ this.generation = 0;
16
+ this.clearGeneration = 0;
17
+ }
18
+ getGeneration() {
19
+ return this.generation;
20
+ }
21
+ record(spaceId, observedAt, generation = this.generation) {
22
+ const deletedGeneration = this.deletedGenerations.get(spaceId) ?? 0;
23
+ if (generation < this.clearGeneration || generation < deletedGeneration)
24
+ return;
25
+ const timestamp = observedAt.getTime();
26
+ if (!Number.isFinite(timestamp))
27
+ return;
28
+ this.activity.set(spaceId, Math.max(timestamp, this.activity.get(spaceId) ?? timestamp));
29
+ }
30
+ readLatest(space) {
31
+ const recorded = this.activity.get(space.id);
32
+ if (recorded === undefined)
33
+ return space.lastActivityAt;
34
+ const persisted = space.lastActivityAt instanceof Date ? space.lastActivityAt.getTime() : Date.parse(space.lastActivityAt ?? '');
35
+ return new Date(Number.isFinite(persisted) ? Math.max(recorded, persisted) : recorded);
36
+ }
37
+ delete(spaceId) {
38
+ this.generation += 1;
39
+ this.deletedGenerations.set(spaceId, this.generation);
40
+ this.activity.delete(spaceId);
41
+ }
42
+ clear() {
43
+ this.generation += 1;
44
+ this.clearGeneration = this.generation;
45
+ this.deletedGenerations.clear();
46
+ this.activity.clear();
47
+ }
48
+ onModuleDestroy() {
49
+ this.clear();
50
+ }
51
+ };
52
+ exports.SpaceActivityService = SpaceActivityService;
53
+ exports.SpaceActivityService = SpaceActivityService = __decorate([
54
+ (0, common_1.Injectable)()
55
+ ], SpaceActivityService);
56
+ //# sourceMappingURL=space-activity.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-activity.service.js","sourceRoot":"","sources":["../../../../src/modules/spaces/services/space-activity.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA6D;AAUtD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QACW,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrC,uBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxD,eAAU,GAAG,CAAC,CAAC;QACf,oBAAe,GAAG,CAAC,CAAC;IAyC7B,CAAC;IAvCA,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,UAAgB,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU;QAErE,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,IAAI,UAAU,GAAG,iBAAiB;YAAE,OAAO;QAChF,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,UAAU,CAAC,KAAiD;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,cAAc,CAAC;QAExD,MAAM,SAAS,GACd,KAAK,CAAC,cAAc,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAChH,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,CAAC,OAAe;QACrB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,eAAe;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;CACD,CAAA;AA7CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;GACA,oBAAoB,CA6ChC"}
@@ -38,6 +38,7 @@ const space_role_entity_1 = require("./entities/space-role.entity");
38
38
  const space_entity_1 = require("./entities/space.entity");
39
39
  const config_model_1 = require("./models/config.model");
40
40
  const module_reset_service_1 = require("./services/module-reset.service");
41
+ const space_activity_service_1 = require("./services/space-activity.service");
41
42
  const space_create_builder_registry_service_1 = require("./services/space-create-builder-registry.service");
42
43
  const space_relations_loader_registry_service_1 = require("./services/space-relations-loader-registry.service");
43
44
  const space_roles_type_mapper_service_1 = require("./services/space-roles-type-mapper.service");
@@ -46,6 +47,7 @@ const spaces_type_mapper_service_1 = require("./services/spaces-type-mapper.serv
46
47
  const spaces_service_1 = require("./services/spaces.service");
47
48
  const spaces_constants_1 = require("./spaces.constants");
48
49
  const spaces_openapi_1 = require("./spaces.openapi");
50
+ const space_activity_subscriber_1 = require("./subscribers/space-activity.subscriber");
49
51
  let SpacesModule = class SpacesModule {
50
52
  constructor(swaggerRegistry, extensionsService, modulesMapperService, moduleReset, factoryResetRegistry) {
51
53
  this.swaggerRegistry = swaggerRegistry;
@@ -139,6 +141,8 @@ exports.SpacesModule = SpacesModule = __decorate([
139
141
  controllers: [spaces_controller_1.SpacesController, spaces_domain_controller_1.SpacesDomainController],
140
142
  providers: [
141
143
  spaces_service_1.SpacesService,
144
+ space_activity_service_1.SpaceActivityService,
145
+ space_activity_subscriber_1.SpaceActivitySubscriber,
142
146
  spaces_bulk_service_1.SpacesBulkService,
143
147
  spaces_type_mapper_service_1.SpacesTypeMapperService,
144
148
  space_roles_type_mapper_service_1.SpaceRolesTypeMapperService,
@@ -148,6 +152,7 @@ exports.SpacesModule = SpacesModule = __decorate([
148
152
  ],
149
153
  exports: [
150
154
  spaces_service_1.SpacesService,
155
+ space_activity_service_1.SpaceActivityService,
151
156
  spaces_bulk_service_1.SpacesBulkService,
152
157
  spaces_type_mapper_service_1.SpacesTypeMapperService,
153
158
  space_roles_type_mapper_service_1.SpaceRolesTypeMapperService,
@@ -1 +1 @@
1
- {"version":3,"file":"spaces.module.js","sourceRoot":"","sources":["../../../src/modules/spaces/spaces.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spaces.module.js","sourceRoot":"","sources":["../../../src/modules/spaces/spaces.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { DataSource, EntitySubscriberInterface, RemoveEvent, TransactionCommitEvent, TransactionRollbackEvent, TransactionStartEvent } from 'typeorm';
2
+ import { OnModuleDestroy } from '@nestjs/common';
3
+ import { SpaceEntity } from '../entities/space.entity';
4
+ import { SpaceActivityService } from '../services/space-activity.service';
5
+ export declare class SpaceActivitySubscriber implements EntitySubscriberInterface<SpaceEntity>, OnModuleDestroy {
6
+ private readonly activity;
7
+ private readonly dataSource;
8
+ private readonly pendingRemovals;
9
+ constructor(activity: SpaceActivityService, dataSource: DataSource);
10
+ listenTo(): typeof SpaceEntity;
11
+ afterLoad(space: SpaceEntity): void;
12
+ afterTransactionStart(event: TransactionStartEvent): void;
13
+ afterRemove(event: RemoveEvent<SpaceEntity>): void;
14
+ afterTransactionCommit(event: TransactionCommitEvent): void;
15
+ afterTransactionRollback(event: TransactionRollbackEvent): void;
16
+ onModuleDestroy(): void;
17
+ }
@@ -0,0 +1,89 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SpaceActivitySubscriber = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const common_1 = require("@nestjs/common");
15
+ const space_entity_1 = require("../entities/space.entity");
16
+ const space_activity_service_1 = require("../services/space-activity.service");
17
+ let SpaceActivitySubscriber = class SpaceActivitySubscriber {
18
+ constructor(activity, dataSource) {
19
+ this.activity = activity;
20
+ this.dataSource = dataSource;
21
+ this.pendingRemovals = new WeakMap();
22
+ this.dataSource.subscribers.push(this);
23
+ }
24
+ listenTo() {
25
+ return space_entity_1.SpaceEntity;
26
+ }
27
+ afterLoad(space) {
28
+ space.lastActivityAt = this.activity.readLatest(space);
29
+ }
30
+ afterTransactionStart(event) {
31
+ const levels = this.pendingRemovals.get(event.queryRunner) ?? [];
32
+ levels.push(new Set());
33
+ this.pendingRemovals.set(event.queryRunner, levels);
34
+ }
35
+ afterRemove(event) {
36
+ const id = typeof event.entityId === 'string' ? event.entityId : (event.entity?.id ?? event.databaseEntity?.id);
37
+ if (event.queryRunner.isTransactionActive) {
38
+ const levels = this.pendingRemovals.get(event.queryRunner) ?? [new Set()];
39
+ const pending = levels.at(-1);
40
+ if (pending === null)
41
+ return;
42
+ if (id)
43
+ pending.add(id);
44
+ else
45
+ levels[levels.length - 1] = null;
46
+ this.pendingRemovals.set(event.queryRunner, levels);
47
+ return;
48
+ }
49
+ if (id)
50
+ this.activity.delete(id);
51
+ else
52
+ this.activity.clear();
53
+ }
54
+ afterTransactionCommit(event) {
55
+ const levels = this.pendingRemovals.get(event.queryRunner);
56
+ const pending = levels?.pop();
57
+ if (levels?.length) {
58
+ const parent = levels.at(-1);
59
+ if (pending === null)
60
+ levels[levels.length - 1] = null;
61
+ else
62
+ pending?.forEach((id) => parent?.add(id));
63
+ return;
64
+ }
65
+ this.pendingRemovals.delete(event.queryRunner);
66
+ if (pending === null)
67
+ this.activity.clear();
68
+ else
69
+ pending?.forEach((id) => this.activity.delete(id));
70
+ }
71
+ afterTransactionRollback(event) {
72
+ const levels = this.pendingRemovals.get(event.queryRunner);
73
+ levels?.pop();
74
+ if (!levels?.length)
75
+ this.pendingRemovals.delete(event.queryRunner);
76
+ }
77
+ onModuleDestroy() {
78
+ const index = this.dataSource.subscribers.indexOf(this);
79
+ if (index >= 0)
80
+ this.dataSource.subscribers.splice(index, 1);
81
+ }
82
+ };
83
+ exports.SpaceActivitySubscriber = SpaceActivitySubscriber;
84
+ exports.SpaceActivitySubscriber = SpaceActivitySubscriber = __decorate([
85
+ (0, common_1.Injectable)(),
86
+ __metadata("design:paramtypes", [space_activity_service_1.SpaceActivityService,
87
+ typeorm_1.DataSource])
88
+ ], SpaceActivitySubscriber);
89
+ //# sourceMappingURL=space-activity.subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-activity.subscriber.js","sourceRoot":"","sources":["../../../../src/modules/spaces/subscribers/space-activity.subscriber.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,6 @@ const jwt_1 = require("@nestjs/jwt");
15
15
  const logger_1 = require("../../../common/logger");
16
16
  const transform_utils_1 = require("../../../common/utils/transform.utils");
17
17
  const auth_constants_1 = require("../../auth/auth.constants");
18
- const auth_entity_1 = require("../../auth/entities/auth.entity");
19
18
  const tokens_service_1 = require("../../auth/services/tokens.service");
20
19
  const token_utils_1 = require("../../auth/utils/token.utils");
21
20
  const mcp_constants_1 = require("../../mcp/mcp.constants");
@@ -64,22 +63,17 @@ let WsAuthService = class WsAuthService {
64
63
  return this.validateLongLiveToken(client, token);
65
64
  }
66
65
  async validateUserAccessToken(client, token, userId) {
67
- const storedAccessToken = await this.tokensService.findAccessTokenByOwnerAndHash(userId, (0, token_utils_1.hashToken)(token));
66
+ const storedAccessToken = await this.tokensService.findAuthenticationAccessToken(userId, (0, token_utils_1.hashToken)(token));
68
67
  if (!storedAccessToken) {
69
68
  this.logger.warn('Access token not found in database');
70
69
  throw new websocket_exceptions_1.WebsocketNotAllowedException('Token not found');
71
70
  }
72
- if (storedAccessToken.revoked || storedAccessToken.refreshToken.revoked) {
71
+ if (storedAccessToken.revoked || storedAccessToken.refreshRevoked) {
73
72
  this.logger.warn('Access token is revoked');
74
73
  throw new websocket_exceptions_1.WebsocketNotAllowedException('Token revoked');
75
74
  }
76
- let user;
77
- try {
78
- user = await this.usersService.getOneOrThrow(userId);
79
- }
80
- catch (error) {
81
- const err = error;
82
- this.logger.warn('Token valid, but user not found', { message: err.message, stack: err.stack });
75
+ const user = storedAccessToken.owner;
76
+ if (!user || user.id !== userId) {
83
77
  throw new websocket_exceptions_1.WebsocketNotAllowedException('Invalid user');
84
78
  }
85
79
  client.data['user'] = (0, transform_utils_1.toInstance)(client_user_dto_1.ClientUserDto, { id: user.id, role: user.role, type: 'user' });
@@ -87,14 +81,7 @@ let WsAuthService = class WsAuthService {
87
81
  return true;
88
82
  }
89
83
  async validateDisplayToken(client, token, displayId) {
90
- const displayTokens = await this.tokensService.findByOwnerId(displayId, auth_constants_1.TokenOwnerType.DISPLAY);
91
- let storedToken = null;
92
- for (const displayToken of displayTokens) {
93
- if ((0, token_utils_1.hashToken)(token) === displayToken.hashedToken) {
94
- storedToken = displayToken;
95
- break;
96
- }
97
- }
84
+ const storedToken = await this.tokensService.findAuthenticationTokenByHash((0, token_utils_1.hashToken)(token));
98
85
  if (!storedToken) {
99
86
  this.logger.warn('Display token not found in database');
100
87
  throw new websocket_exceptions_1.WebsocketNotAllowedException('Token not found');
@@ -107,6 +94,9 @@ let WsAuthService = class WsAuthService {
107
94
  this.logger.warn('Display token is expired');
108
95
  throw new websocket_exceptions_1.WebsocketNotAllowedException('Token expired');
109
96
  }
97
+ if (storedToken.ownerType !== auth_constants_1.TokenOwnerType.DISPLAY || storedToken.ownerId !== displayId) {
98
+ throw new websocket_exceptions_1.WebsocketNotAllowedException('Invalid display token owner');
99
+ }
110
100
  client.data['user'] = (0, transform_utils_1.toInstance)(client_user_dto_1.ClientUserDto, {
111
101
  id: storedToken.ownerId,
112
102
  role: users_constants_1.UserRole.USER,
@@ -116,18 +106,9 @@ let WsAuthService = class WsAuthService {
116
106
  });
117
107
  this.logger.debug(`Display authentication successful for display=${displayId}`);
118
108
  return true;
119
- this.logger.debug(`Token authentication successful (ownerType=${storedToken.ownerType})`);
120
- return true;
121
109
  }
122
110
  async validateLongLiveToken(client, token) {
123
- const storedLongLiveTokens = await this.tokensService.findAll(auth_entity_1.LongLiveTokenEntity);
124
- let storedLongLiveToken = null;
125
- for (const longLiveToken of storedLongLiveTokens) {
126
- if ((0, token_utils_1.hashToken)(token) === longLiveToken.hashedToken) {
127
- storedLongLiveToken = longLiveToken;
128
- break;
129
- }
130
- }
111
+ const storedLongLiveToken = await this.tokensService.findAuthenticationTokenByHash((0, token_utils_1.hashToken)(token));
131
112
  if (!storedLongLiveToken) {
132
113
  this.logger.warn('Long-live token not found');
133
114
  throw new websocket_exceptions_1.WebsocketNotAllowedException('Unknown token');
@@ -140,6 +121,9 @@ let WsAuthService = class WsAuthService {
140
121
  this.logger.warn('Long-live token is expired');
141
122
  throw new websocket_exceptions_1.WebsocketNotAllowedException('Token expired');
142
123
  }
124
+ if (storedLongLiveToken.ownerType === auth_constants_1.TokenOwnerType.MCP) {
125
+ throw new websocket_exceptions_1.WebsocketNotAllowedException('MCP credentials cannot authenticate WebSocket connections');
126
+ }
143
127
  let role = users_constants_1.UserRole.USER;
144
128
  if (storedLongLiveToken.ownerType === auth_constants_1.TokenOwnerType.USER && storedLongLiveToken.ownerId) {
145
129
  const user = await this.usersService.findOne(storedLongLiveToken.ownerId);
@@ -1 +1 @@
1
- {"version":3,"file":"ws-auth.service.js","sourceRoot":"","sources":["../../../../src/modules/websocket/services/ws-auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-auth.service.js","sourceRoot":"","sources":["../../../../src/modules/websocket/services/ws-auth.service.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,12 @@
1
1
  import { IDevicePlatform, IDevicePropertyData } from '../../../modules/devices/platforms/device.platform';
2
- import { ChannelsPropertiesService } from '../../../modules/devices/services/channels.properties.service';
3
- import { ChannelsService } from '../../../modules/devices/services/channels.service';
4
- import { DevicesService } from '../../../modules/devices/services/devices.service';
2
+ import { DeviceCommandGraphService } from '../../../modules/devices/services/device-command-graph.service';
5
3
  import { PlatformRegistryService } from '../../../modules/devices/services/platform.registry.service';
6
4
  export declare class VirtualDevicePlatform implements IDevicePlatform {
7
- private readonly devicesService;
8
- private readonly channelsService;
9
- private readonly channelsPropertiesService;
5
+ private readonly graphs;
10
6
  private readonly platformRegistryService;
11
7
  private readonly logger;
12
- constructor(devicesService: DevicesService, channelsService: ChannelsService, channelsPropertiesService: ChannelsPropertiesService, platformRegistryService: PlatformRegistryService);
8
+ constructor(graphs: DeviceCommandGraphService, platformRegistryService: PlatformRegistryService);
13
9
  getType(): string;
14
10
  process(data: IDevicePropertyData): Promise<boolean>;
15
11
  processBatch(updates: IDevicePropertyData[]): Promise<boolean>;
16
- private resolveSource;
17
12
  }
@@ -13,17 +13,13 @@ exports.VirtualDevicePlatform = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const extension_logger_service_1 = require("../../../common/logger/extension-logger.service");
15
15
  const devices_constants_1 = require("../../../modules/devices/devices.constants");
16
- const channels_properties_service_1 = require("../../../modules/devices/services/channels.properties.service");
17
- const channels_service_1 = require("../../../modules/devices/services/channels.service");
18
- const devices_service_1 = require("../../../modules/devices/services/devices.service");
16
+ const device_command_graph_service_1 = require("../../../modules/devices/services/device-command-graph.service");
19
17
  const platform_registry_service_1 = require("../../../modules/devices/services/platform.registry.service");
20
18
  const devices_virtual_constants_1 = require("../devices-virtual.constants");
21
19
  const devices_virtual_entity_1 = require("../entities/devices-virtual.entity");
22
20
  let VirtualDevicePlatform = class VirtualDevicePlatform {
23
- constructor(devicesService, channelsService, channelsPropertiesService, platformRegistryService) {
24
- this.devicesService = devicesService;
25
- this.channelsService = channelsService;
26
- this.channelsPropertiesService = channelsPropertiesService;
21
+ constructor(graphs, platformRegistryService) {
22
+ this.graphs = graphs;
27
23
  this.platformRegistryService = platformRegistryService;
28
24
  this.logger = (0, extension_logger_service_1.createExtensionLogger)(devices_virtual_constants_1.DEVICES_VIRTUAL_PLUGIN_NAME, 'VirtualDevicePlatform');
29
25
  }
@@ -54,8 +50,9 @@ let VirtualDevicePlatform = class VirtualDevicePlatform {
54
50
  this.logger.warn(`Property id=${property.id} has no source, it was deleted`);
55
51
  return false;
56
52
  }
57
- const resolved = await this.resolveSource(property.sourcePropertyId);
53
+ const resolved = await this.graphs.findPropertyTarget(property.sourcePropertyId);
58
54
  if (!resolved) {
55
+ this.logger.warn(`Source property id=${property.sourcePropertyId} has no complete device graph`);
59
56
  return false;
60
57
  }
61
58
  const { device, channel, property: sourceProperty } = resolved;
@@ -89,38 +86,11 @@ let VirtualDevicePlatform = class VirtualDevicePlatform {
89
86
  }
90
87
  return true;
91
88
  }
92
- async resolveSource(sourcePropertyId) {
93
- const property = await this.channelsPropertiesService.findOne(sourcePropertyId);
94
- if (!property) {
95
- this.logger.warn(`Source property id=${sourcePropertyId} not found`);
96
- return null;
97
- }
98
- const channelId = typeof property.channel === 'string' ? property.channel : property.channel?.id;
99
- const parent = typeof property.channel === 'string' ? await this.channelsService.findOne(property.channel) : property.channel;
100
- if (!parent) {
101
- this.logger.warn(`Source channel for property id=${sourcePropertyId} not found`);
102
- return null;
103
- }
104
- const deviceId = typeof parent.device === 'string' ? parent.device : parent.device?.id;
105
- const device = deviceId ? await this.devicesService.findOne(deviceId) : null;
106
- if (!device) {
107
- this.logger.warn(`Source device for property id=${sourcePropertyId} not found`);
108
- return null;
109
- }
110
- const channel = device.channels.find((candidate) => candidate.id === channelId);
111
- if (!channel) {
112
- this.logger.warn(`Source channel for property id=${sourcePropertyId} is no longer on device id=${device.id}`);
113
- return null;
114
- }
115
- return { device, channel, property };
116
- }
117
89
  };
118
90
  exports.VirtualDevicePlatform = VirtualDevicePlatform;
119
91
  exports.VirtualDevicePlatform = VirtualDevicePlatform = __decorate([
120
92
  (0, common_1.Injectable)(),
121
- __metadata("design:paramtypes", [devices_service_1.DevicesService,
122
- channels_service_1.ChannelsService,
123
- channels_properties_service_1.ChannelsPropertiesService,
93
+ __metadata("design:paramtypes", [device_command_graph_service_1.DeviceCommandGraphService,
124
94
  platform_registry_service_1.PlatformRegistryService])
125
95
  ], VirtualDevicePlatform);
126
96
  //# sourceMappingURL=virtual-device.platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-device.platform.js","sourceRoot":"","sources":["../../../../src/plugins/devices-virtual/platforms/virtual-device.platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtual-device.platform.js","sourceRoot":"","sources":["../../../../src/plugins/devices-virtual/platforms/virtual-device.platform.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
- import { Repository } from 'typeorm';
2
1
  import { OnModuleInit } from '@nestjs/common';
3
- import { ChannelEntity, ChannelPropertyEntity } from '../../../modules/devices/entities/devices.entity';
4
- import { SpaceEntity } from '../../../modules/spaces/entities/space.entity';
2
+ import { ChannelPropertyEntity } from '../../../modules/devices/entities/devices.entity';
3
+ import { PropertyMetadataService } from '../../../modules/devices/services/property-metadata.service';
4
+ import { SpaceActivityService } from '../../../modules/spaces/services/space-activity.service';
5
5
  export declare class SpaceActivityListener implements OnModuleInit {
6
- private readonly spaceRepository;
7
- private readonly channelRepository;
6
+ private readonly propertyMetadata;
7
+ private readonly activity;
8
8
  private readonly logger;
9
- constructor(spaceRepository: Repository<SpaceEntity>, channelRepository: Repository<ChannelEntity>);
9
+ constructor(propertyMetadata: PropertyMetadataService, activity: SpaceActivityService);
10
10
  onModuleInit(): void;
11
11
  handlePropertyUpdated(property: ChannelPropertyEntity): Promise<void>;
12
- private updateSpaceActivity;
13
12
  }