kuzzle-device-manager-types 2.4.0-beta.2 → 2.4.0-beta.21

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 (63) hide show
  1. package/dist/lib/modules/asset/AssetHistoryService.d.ts +2 -4
  2. package/dist/lib/modules/asset/AssetService.d.ts +25 -26
  3. package/dist/lib/modules/asset/AssetsController.d.ts +8 -1
  4. package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +4 -0
  5. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.d.ts +8 -0
  6. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.d.ts +8 -0
  7. package/dist/lib/modules/asset/roles/specificRoles/index.d.ts +2 -0
  8. package/dist/lib/modules/asset/types/AssetApi.d.ts +43 -2
  9. package/dist/lib/modules/asset/types/AssetContent.d.ts +1 -1
  10. package/dist/lib/modules/decoder/Decoder.d.ts +11 -0
  11. package/dist/lib/modules/decoder/PayloadService.d.ts +3 -6
  12. package/dist/lib/modules/decoder/types/DecoderContent.d.ts +1 -0
  13. package/dist/lib/modules/device/DeviceService.d.ts +31 -46
  14. package/dist/lib/modules/device/DevicesController.d.ts +7 -1
  15. package/dist/lib/modules/device/collections/deviceMappings.d.ts +2 -46
  16. package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +4 -0
  17. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.d.ts +8 -0
  18. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.d.ts +8 -0
  19. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.d.ts +8 -0
  20. package/dist/lib/modules/device/roles/specificRoles/index.d.ts +3 -0
  21. package/dist/lib/modules/device/types/DeviceApi.d.ts +23 -2
  22. package/dist/lib/modules/device/types/DeviceEvents.d.ts +29 -0
  23. package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -2
  24. package/dist/lib/modules/measure/MeasureService.d.ts +2 -6
  25. package/dist/lib/modules/measure/collections/measuresMappings.d.ts +18 -0
  26. package/dist/lib/modules/measure/types/MeasureContent.d.ts +4 -0
  27. package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +28 -3
  28. package/dist/lib/modules/model/MappingsConflictsError.d.ts +7 -0
  29. package/dist/lib/modules/model/ModelService.d.ts +17 -9
  30. package/dist/lib/modules/model/ModelsConflicts.d.ts +30 -0
  31. package/dist/lib/modules/model/ModelsController.d.ts +5 -1
  32. package/dist/lib/modules/model/ModelsRegister.d.ts +28 -3
  33. package/dist/lib/modules/model/types/ModelApi.d.ts +50 -4
  34. package/dist/lib/modules/model/types/ModelContent.d.ts +263 -2
  35. package/dist/lib/modules/model/types/ModelDefinition.d.ts +141 -5
  36. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +141 -5
  37. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +113 -8
  38. package/dist/lib/modules/plugin/exports.d.ts +1 -1
  39. package/dist/lib/modules/plugin/index.d.ts +1 -2
  40. package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +27 -5
  41. package/dist/lib/modules/plugin/types/Pipes.d.ts +17 -0
  42. package/dist/lib/modules/plugin/types/exports.d.ts +1 -0
  43. package/dist/lib/modules/plugin/types/index.d.ts +3 -0
  44. package/dist/lib/modules/shared/exports.d.ts +2 -0
  45. package/dist/lib/modules/shared/index.d.ts +6 -4
  46. package/dist/lib/modules/shared/services/AbstractExporter.d.ts +1 -0
  47. package/dist/lib/modules/shared/services/BaseService.d.ts +69 -0
  48. package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +21 -0
  49. package/dist/lib/modules/shared/services/index.d.ts +2 -0
  50. package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +34 -0
  51. package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +2 -4
  52. package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +9 -0
  53. package/dist/lib/modules/shared/types/DigitalTwinMeasures.d.ts +5 -0
  54. package/dist/tests/application/assets/Container.d.ts +3 -0
  55. package/dist/tests/application/assets/Room.d.ts +2 -0
  56. package/dist/tests/application/assets/StreetLamp.d.ts +2 -0
  57. package/dist/tests/application/decoders/DummyTempPositionDecoder.d.ts +1 -0
  58. package/dist/tests/application/measures/BrightnessMeasure.d.ts +2 -0
  59. package/dist/tests/application/measures/CO2Measure.d.ts +2 -0
  60. package/dist/tests/application/measures/IlluminanceMeasure.d.ts +2 -0
  61. package/dist/tests/application/measures/PowerConsumptionMeasure.d.ts +2 -0
  62. package/package.json +4 -3
  63. package/dist/lib/modules/shared/utils/ask.d.ts +0 -8
@@ -0,0 +1,69 @@
1
+ import { ArgsDocumentControllerCreate, ArgsDocumentControllerDelete, ArgsDocumentControllerUpdate, Backend, EmbeddedSDK, KDocument, KDocumentContent, KHit, KuzzleRequest, SearchResult, User } from "kuzzle";
2
+ import { DeviceManagerPlugin, DeviceManagerConfiguration, InternalCollection } from "../../plugin";
3
+ interface PayloadRequest {
4
+ collection: InternalCollection;
5
+ engineId: string;
6
+ }
7
+ export type SearchParams = ReturnType<KuzzleRequest["getSearchParams"]>;
8
+ export declare abstract class BaseService {
9
+ private plugin;
10
+ constructor(plugin: DeviceManagerPlugin);
11
+ protected get app(): Backend;
12
+ protected get sdk(): EmbeddedSDK;
13
+ protected get config(): DeviceManagerConfiguration;
14
+ protected get impersonatedSdk(): (user: User) => EmbeddedSDK;
15
+ protected normalizeKuzzleRequest(request: KuzzleRequest, { collection, engineId }: PayloadRequest): KuzzleRequest;
16
+ /**
17
+ * Wrapper to SDK create method with trigger generic:document events
18
+ *
19
+ * @param {KuzzleRequest} request
20
+ * @param {KDocument} documentId
21
+ * @param {PayloadRequest} payload
22
+ * @param {ArgsDocumentControllerCreate} [options]
23
+ * @returns {Promise<KDocument>}
24
+ */
25
+ protected getDocument<T extends KDocumentContent = KDocumentContent>(request: KuzzleRequest, documentId: string, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerCreate): Promise<KDocument<T>>;
26
+ /**
27
+ * Wrapper to SDK create method with trigger generic:document events
28
+ *
29
+ * @param {KuzzleRequest} request
30
+ * @param {KDocument} document
31
+ * @param {PayloadRequest} payload
32
+ * @param {ArgsDocumentControllerCreate} [options]
33
+ * @returns {Promise<KDocument>}
34
+ */
35
+ protected createDocument<T extends KDocumentContent = KDocumentContent>(request: KuzzleRequest, document: KDocument<T>, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerCreate): Promise<KDocument<T>>;
36
+ /**
37
+ * Wrapper to SDK update method with trigger generic:document events
38
+ *
39
+ * @param {KuzzleRequest} request
40
+ * @param {KDocument} document
41
+ * @param {PayloadRequest} payload
42
+ * @param {ArgsDocumentControllerUpdate} [options]
43
+ * @returns {Promise<KDocument>}
44
+ */
45
+ protected updateDocument<T extends KDocumentContent = KDocumentContent>(request: KuzzleRequest, document: KDocument<Partial<T>>, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerUpdate): Promise<KDocument<T>>;
46
+ /**
47
+ * Wrapper to SDK delete method with trigger generic:document events
48
+ *
49
+ * @param {KuzzleRequest} request
50
+ * @param {string} documentId
51
+ * @param {PayloadRequest} payload
52
+ * @param {ArgsDocumentControllerUpdate} [options]
53
+ * @returns {Promise<{ _id: string }>}
54
+ */
55
+ protected deleteDocument(request: KuzzleRequest, documentId: string, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerDelete): Promise<{
56
+ _id: string;
57
+ }>;
58
+ /**
59
+ * Wrapper to SDK search method with trigger generic:document events
60
+ * ! Caution the pipes are not applied on next()
61
+ *
62
+ * @param {KuzzleRequest} request
63
+ * @param {ArgsDocumentControllerUpdate} [options]
64
+ * @param {PayloadRequest} payload
65
+ * @returns {Promise<SearchResult<KHit>>}
66
+ */
67
+ protected searchDocument<T extends KDocumentContent = KDocumentContent>(request: KuzzleRequest, { from, size, scrollTTL: scroll }: SearchParams, { collection, engineId }: PayloadRequest): Promise<SearchResult<KHit<T>>>;
68
+ }
69
+ export {};
@@ -0,0 +1,21 @@
1
+ import { MeasureContent } from "../../measure";
2
+ import { DeviceManagerPlugin, InternalCollection } from "../../plugin";
3
+ import { ApiDigitalTwinMGetLastMeasuredAtResult } from "../types/DigitalTwinApi";
4
+ import { BaseService } from "./BaseService";
5
+ export declare class DigitalTwinService extends BaseService {
6
+ private targetCollection;
7
+ private readonly digitalTwinType;
8
+ constructor(plugin: DeviceManagerPlugin, targetCollection: InternalCollection);
9
+ protected registerAskEvents(): void;
10
+ /**
11
+ * Gets the last measures of a digital twin
12
+ */
13
+ getLastMeasures(engineId: string, digitalTwinId: string, measureCount?: number): Promise<MeasureContent[]>;
14
+ /**
15
+ * Gets the last measures of multiple digital twins
16
+ */
17
+ mGetLastMeasures(engineId: string, digitalTwinIds: string[], measureCount?: number): Promise<Record<string, MeasureContent[]>>;
18
+ getLastMeasuredAt(engineId: string, digitalTwinId: string): Promise<number>;
19
+ mGetLastMeasuredAt(engineId: string, digitalTwinIds: string[]): Promise<ApiDigitalTwinMGetLastMeasuredAtResult>;
20
+ private getAggregationQueryParameters;
21
+ }
@@ -1,2 +1,4 @@
1
1
  export * from "./AbstractExporter";
2
+ export * from "./BaseService";
2
3
  export * from "./DigitalTwinExporter";
4
+ export * from "./DigitalTwinService";
@@ -0,0 +1,34 @@
1
+ import { DigitalTwinMeasures } from "./DigitalTwinMeasures";
2
+ interface DigitalTwinControllerRequest<ControllerName extends string> {
3
+ controller: ControllerName;
4
+ engineId: string;
5
+ }
6
+ export interface ApiDigitalTwinGetLastMeasuresRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
7
+ action: "getLastMeasures";
8
+ _id: string;
9
+ measureCount?: number;
10
+ }
11
+ export type ApiDigitalTwinGetLastMeasuresResult = DigitalTwinMeasures;
12
+ export interface ApiDigitalTwinMGetLastMeasuresRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
13
+ action: "mGetLastMeasures";
14
+ measureCount?: number;
15
+ body: {
16
+ ids: string[];
17
+ };
18
+ }
19
+ export type ApiDigitalTwinMGetLastMeasuresResult = Record<string, DigitalTwinMeasures>;
20
+ export interface ApiDigitalTwinGetLastMeasuredAtRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
21
+ action: "getLastMeasuredAt";
22
+ _id: string;
23
+ }
24
+ export type ApiDigitalTwinGetLastMeasuredAtResult = {
25
+ lastMeasuredAt: number;
26
+ };
27
+ export interface ApiDigitalTwinMGetLastMeasuredAtRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
28
+ action: "mGetLastMeasuredAt";
29
+ body: {
30
+ ids: string[];
31
+ };
32
+ }
33
+ export type ApiDigitalTwinMGetLastMeasuredAtResult = Record<string, number>;
34
+ export {};
@@ -1,12 +1,10 @@
1
1
  import { JSONObject, KDocumentContent } from "kuzzle-sdk";
2
- import { EmbeddedMeasure } from "./EmbeddedMeasure";
3
2
  import { Metadata } from "./Metadata";
3
+ import { DigitalTwinMeasures } from "./DigitalTwinMeasures";
4
4
  export interface DigitalTwinContent<TMeasures extends JSONObject = JSONObject, TMetadata extends Metadata = Metadata> extends KDocumentContent {
5
5
  model: string;
6
6
  reference: string;
7
7
  metadata: TMetadata;
8
- measures: {
9
- [Property in keyof TMeasures]: EmbeddedMeasure<TMeasures[Property]> | null;
10
- };
8
+ measures: DigitalTwinMeasures<TMeasures>;
11
9
  lastMeasuredAt: number;
12
10
  }
@@ -0,0 +1,9 @@
1
+ import { MeasureContent } from "../../measure";
2
+ export type AskDigitalTwinLastMeasuresGet = {
3
+ name: "ask:device-manager:asset:get-last-measures" | "ask:device-manager:device:get-last-measures";
4
+ payload: {
5
+ engineId: string;
6
+ digitalTwinId: string;
7
+ };
8
+ result: MeasureContent[];
9
+ };
@@ -0,0 +1,5 @@
1
+ import { JSONObject } from "kuzzle-sdk";
2
+ import { EmbeddedMeasure } from "./EmbeddedMeasure";
3
+ export type DigitalTwinMeasures<TMeasures extends JSONObject = JSONObject> = {
4
+ [Property in keyof TMeasures]: EmbeddedMeasure<TMeasures[Property]> | null;
5
+ };
@@ -6,6 +6,9 @@ export interface ContainerMetadata extends Metadata {
6
6
  weight: number;
7
7
  capacity: number;
8
8
  };
9
+ person: {
10
+ company: string;
11
+ };
9
12
  }
10
13
  export type ContainerMeasurements = {
11
14
  temperatureExt: TemperatureMeasurement;
@@ -0,0 +1,2 @@
1
+ import { AssetModelDefinition } from "../../../index";
2
+ export declare const roomAssetDefinition: AssetModelDefinition;
@@ -0,0 +1,2 @@
1
+ import { AssetModelDefinition } from "../../../index";
2
+ export declare const streetLampAssetDefinition: AssetModelDefinition;
@@ -11,6 +11,7 @@ export declare class DummyTempPositionDecoder extends Decoder {
11
11
  readonly name: "position";
12
12
  readonly type: "position";
13
13
  }];
14
+ constructor();
14
15
  validate(payload: JSONObject): Promise<boolean>;
15
16
  decode(decodedPayload: DecodedPayload<DummyTempPositionDecoder>, payload: JSONObject): Promise<DecodedPayload<DummyTempPositionDecoder>>;
16
17
  }
@@ -0,0 +1,2 @@
1
+ import { MeasureDefinition } from "lib/modules/measure";
2
+ export declare const brightnessMeasureDefinition: MeasureDefinition;
@@ -0,0 +1,2 @@
1
+ import { MeasureDefinition } from "lib/modules/measure";
2
+ export declare const co2MeasureDefinition: MeasureDefinition;
@@ -0,0 +1,2 @@
1
+ import { MeasureDefinition } from "lib/modules/measure";
2
+ export declare const illuminanceMeasureDefinition: MeasureDefinition;
@@ -0,0 +1,2 @@
1
+ import { MeasureDefinition } from "lib/modules/measure";
2
+ export declare const powerConsumptionMeasureDefinition: MeasureDefinition;
package/package.json CHANGED
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "name": "kuzzle-device-manager-types",
3
- "version": "2.4.0-beta.2",
3
+ "version": "2.4.0-beta.21",
4
4
  "description": "Shared types for Kuzzle Device Manager",
5
5
  "author": "The Kuzzle Team (support@kuzzle.io)",
6
6
  "main": "index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "git+https://github.com/kuzzleio/kuzzle-plugin-device-manager.git"
10
+ "url": "git+https://github.com/kuzzleio/kuzzle-plugin-device-manager.git",
11
+ "directory": "types"
11
12
  },
12
13
  "scripts": {
13
14
  "prepack": "npm run build",
14
- "build": "./copy-types.sh && node scripts/copy-version.js"
15
+ "build": "./copy-types.sh"
15
16
  },
16
17
  "license": "Apache-2.0",
17
18
  "files": [
@@ -1,8 +0,0 @@
1
- export type AskEventDefinition = {
2
- name: string;
3
- payload: any;
4
- result: any;
5
- };
6
- export type AskEventHandler<TAskEventDefinition extends AskEventDefinition = AskEventDefinition> = (payload?: TAskEventDefinition["payload"]) => Promise<TAskEventDefinition["result"]>;
7
- export declare function onAsk<TAskEventDefinition extends AskEventDefinition = AskEventDefinition>(event: TAskEventDefinition["name"], handler: AskEventHandler<TAskEventDefinition>): any;
8
- export declare function ask<TAskEventDefinition extends AskEventDefinition = AskEventDefinition>(event: TAskEventDefinition["name"], payload?: TAskEventDefinition["payload"]): Promise<TAskEventDefinition["result"]>;