kuzzle-device-manager-types 2.2.7 → 2.3.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.
@@ -3,5 +3,6 @@ export declare class AssetModule extends Module {
3
3
  private assetService;
4
4
  private assetHistoryService;
5
5
  private assetController;
6
+ private assetGroupsController;
6
7
  init(): Promise<void>;
7
8
  }
@@ -0,0 +1,20 @@
1
+ import { ControllerDefinition, KuzzleRequest } from "kuzzle";
2
+ import { DeviceManagerPlugin } from "../plugin";
3
+ import { ApiGroupAddAssetsResult, ApiGroupCreateResult, ApiGroupDeleteResult, ApiGroupGetResult, ApiGroupRemoveAssetsResult, ApiGroupSearchResult, ApiGroupUpdateResult, AssetsGroupsBodyRequest } from "./types/AssetGroupsApi";
4
+ export declare class AssetsGroupsController {
5
+ private plugin;
6
+ definition: ControllerDefinition;
7
+ constructor(plugin: DeviceManagerPlugin);
8
+ private get sdk();
9
+ private get as();
10
+ checkParent(engineId: string, parent: AssetsGroupsBodyRequest["parent"]): Promise<void>;
11
+ checkChildren(engineId: string, children: AssetsGroupsBodyRequest["children"]): Promise<void>;
12
+ checkGroupName(engineId: string, name: AssetsGroupsBodyRequest["name"], assetId?: string): Promise<void>;
13
+ create(request: KuzzleRequest): Promise<ApiGroupCreateResult>;
14
+ get(request: KuzzleRequest): Promise<ApiGroupGetResult>;
15
+ update(request: KuzzleRequest): Promise<ApiGroupUpdateResult>;
16
+ delete(request: KuzzleRequest): Promise<ApiGroupDeleteResult>;
17
+ search(request: KuzzleRequest): Promise<ApiGroupSearchResult>;
18
+ addAsset(request: KuzzleRequest): Promise<ApiGroupAddAssetsResult>;
19
+ removeAsset(request: KuzzleRequest): Promise<ApiGroupRemoveAssetsResult>;
20
+ }
@@ -0,0 +1,2 @@
1
+ import { CollectionMappings } from "kuzzle";
2
+ export declare const assetGroupsMappings: CollectionMappings;
@@ -1,52 +1,7 @@
1
+ import { CollectionMappings } from "kuzzle";
1
2
  /**
2
3
  * Base mappings for the "assets" collection.
3
4
  *
4
5
  * Those mappings does not contains the `measures` and `metadata` mappings.
5
6
  */
6
- export declare const assetsMappings: {
7
- dynamic: string;
8
- properties: {
9
- model: {
10
- type: string;
11
- fields: {
12
- text: {
13
- type: string;
14
- };
15
- };
16
- };
17
- reference: {
18
- type: string;
19
- fields: {
20
- text: {
21
- type: string;
22
- };
23
- };
24
- };
25
- metadata: {
26
- properties: {};
27
- };
28
- measures: {
29
- properties: {};
30
- };
31
- linkedDevices: {
32
- properties: {
33
- _id: {
34
- type: string;
35
- };
36
- measureNames: {
37
- properties: {
38
- asset: {
39
- type: string;
40
- };
41
- device: {
42
- type: string;
43
- };
44
- type: {
45
- type: string;
46
- };
47
- };
48
- };
49
- };
50
- };
51
- };
52
- };
7
+ export declare const assetsMappings: CollectionMappings;
@@ -2,7 +2,11 @@ export * from "./types/AssetContent";
2
2
  export * from "./types/AssetHistoryContent";
3
3
  export * from "./types/AssetEvents";
4
4
  export * from "./types/AssetApi";
5
+ export * from "./types/AssetGroupContent";
6
+ export * from "./types/AssetGroupsApi";
5
7
  export * from "./roles/RoleAssetsAdmin";
6
8
  export * from "./roles/RoleAssetsReader";
9
+ export * from "./roles/RoleAssetsGroupsAdmin";
10
+ export * from "./roles/RoleAssetsGroupsReader";
7
11
  export * from "./collections/assetsMappings";
8
12
  export * from "./collections/assetsHistoryMappings";
@@ -1,5 +1,6 @@
1
1
  export * from "./collections/assetsMappings";
2
2
  export * from "./collections/assetsHistoryMappings";
3
+ export * from "./collections/assetsGroupsMapping";
3
4
  export * from "./types/AssetContent";
4
5
  export * from "./types/AssetHistoryContent";
5
6
  export * from "./types/AssetEvents";
@@ -8,3 +9,5 @@ export * from "./model/AssetSerializer";
8
9
  export * from "./AssetModule";
9
10
  export * from "./roles/RoleAssetsAdmin";
10
11
  export * from "./roles/RoleAssetsReader";
12
+ export * from "./roles/RoleAssetsGroupsAdmin";
13
+ export * from "./roles/RoleAssetsGroupsReader";
@@ -0,0 +1,24 @@
1
+ import { KuzzleRole } from "../../shared/types/KuzzleRole";
2
+ /**
3
+ * This role allows to manage assets and their models.
4
+ *
5
+ * It's a tenant role.
6
+ *
7
+ * @example
8
+ *
9
+ "device-manager/assets": {
10
+ actions: {
11
+ "*": true,
12
+ },
13
+ },
14
+ "device-manager/models": {
15
+ actions: {
16
+ deleteAsset: true,
17
+ listAssets: true,
18
+ getAsset: true,
19
+ writeAsset: true,
20
+ listMeasures: true,
21
+ },
22
+ },
23
+ */
24
+ export declare const RoleAssetsGroupsAdmin: KuzzleRole;
@@ -0,0 +1,24 @@
1
+ import { KuzzleRole } from "../../shared/types/KuzzleRole";
2
+ /**
3
+ * This role allows to manage assets and their models.
4
+ *
5
+ * It's a tenant role.
6
+ *
7
+ * @example
8
+ *
9
+ "device-manager/assets": {
10
+ actions: {
11
+ "*": true,
12
+ },
13
+ },
14
+ "device-manager/models": {
15
+ actions: {
16
+ deleteAsset: true,
17
+ listAssets: true,
18
+ getAsset: true,
19
+ writeAsset: true,
20
+ listMeasures: true,
21
+ },
22
+ },
23
+ */
24
+ export declare const RoleAssetsGroupsReader: KuzzleRole;
@@ -29,6 +29,13 @@ export interface AssetContent<TMeasures extends JSONObject = any, TMetadata exte
29
29
  type: string;
30
30
  }>;
31
31
  }>;
32
+ /**
33
+ * Id's of asset groups
34
+ */
35
+ groups: Array<{
36
+ id: string;
37
+ date: number;
38
+ }>;
32
39
  }
33
40
  /**
34
41
  * Asset description used to contextualize each measure data point
@@ -0,0 +1,8 @@
1
+ import { KDocumentContent } from "kuzzle-sdk";
2
+ export interface AssetsGroupsBody {
3
+ name: string;
4
+ children: string[];
5
+ parent: string | null;
6
+ lastUpdate: number;
7
+ }
8
+ export type AssetsGroupContent = AssetsGroupsBody & KDocumentContent;
@@ -0,0 +1,59 @@
1
+ import { JSONObject, KDocument, KHit, SearchResult, mUpdateResponse } from "kuzzle-sdk";
2
+ import { AssetsGroupsBody, AssetsGroupContent } from "./AssetGroupContent";
3
+ type AssetsGroupsRequest = Omit<AssetsGroupsBody, "lastUpdate">;
4
+ export type AssetsGroupsBodyRequest = Partial<AssetsGroupsRequest> & Omit<AssetsGroupsRequest, "parent">;
5
+ export type UpdateAssetLinkResponse = mUpdateResponse & {
6
+ assetsGroups: KDocument<AssetsGroupContent>;
7
+ };
8
+ interface GroupControllerRequest {
9
+ controller: "device-manager/assetsGroup";
10
+ engineId: string;
11
+ }
12
+ export interface ApiGroupCreateRequest extends GroupControllerRequest {
13
+ action: "create";
14
+ _id?: string;
15
+ body: Omit<AssetsGroupsBodyRequest, "children">;
16
+ }
17
+ export type ApiGroupCreateResult = KDocument<AssetsGroupContent>;
18
+ export interface ApiGroupGetRequest extends GroupControllerRequest {
19
+ action: "get";
20
+ _id: string;
21
+ }
22
+ export type ApiGroupGetResult = KDocument<AssetsGroupContent>;
23
+ export interface ApiGroupUpdateRequest extends GroupControllerRequest {
24
+ action: "update";
25
+ _id: string;
26
+ body: AssetsGroupsBodyRequest;
27
+ }
28
+ export type ApiGroupUpdateResult = KDocument<AssetsGroupContent>;
29
+ export interface ApiGroupDeleteRequest extends GroupControllerRequest {
30
+ action: "delete";
31
+ _id: string;
32
+ }
33
+ export type ApiGroupDeleteResult = void;
34
+ export interface ApiGroupSearchRequest extends GroupControllerRequest {
35
+ action: "search";
36
+ from?: number;
37
+ size?: number;
38
+ scrollTTL?: string;
39
+ lang?: "koncorde" | "elasticsearch";
40
+ body: JSONObject;
41
+ }
42
+ export type ApiGroupSearchResult = SearchResult<KHit<AssetsGroupContent>>;
43
+ export interface ApiGroupAddAssetsRequest extends GroupControllerRequest {
44
+ action: "addAsset";
45
+ _id: string;
46
+ body: {
47
+ assetIds: string[];
48
+ };
49
+ }
50
+ export type ApiGroupAddAssetsResult = UpdateAssetLinkResponse;
51
+ export interface ApiGroupRemoveAssetsRequest extends GroupControllerRequest {
52
+ action: "removeAsset";
53
+ _id: string;
54
+ body: {
55
+ assetIds: string[];
56
+ };
57
+ }
58
+ export type ApiGroupRemoveAssetsResult = UpdateAssetLinkResponse;
59
+ export {};
@@ -53,6 +53,7 @@ export declare class MeasureExporter {
53
53
  * the stream.
54
54
  */
55
55
  sendExport(stream: PassThrough, exportId: string): Promise<void>;
56
+ private generateMeasureColumns;
56
57
  getExport(exportId: string): Promise<ExportParams>;
57
58
  private exportRedisKey;
58
59
  private prepareMeasureSearch;
@@ -1,4 +1,4 @@
1
- import { AssetModelContent, DeviceModelContent } from "./ModelContent";
1
+ import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./ModelContent";
2
2
  export type AskModelAssetGet = {
3
3
  name: "ask:device-manager:model:asset:get";
4
4
  payload: {
@@ -14,3 +14,10 @@ export type AskModelDeviceGet = {
14
14
  };
15
15
  result: DeviceModelContent;
16
16
  };
17
+ export type AskModelMeasureGet = {
18
+ name: "ask:device-manager:model:measure:get";
19
+ payload: {
20
+ type: string;
21
+ };
22
+ result: MeasureModelContent;
23
+ };
@@ -32,6 +32,7 @@ export declare class DeviceManagerEngine extends AbstractEngine<DeviceManagerPlu
32
32
  }>;
33
33
  createAssetsCollection(engineId: string, engineGroup: string): Promise<InternalCollection>;
34
34
  createAssetsHistoryCollection(engineId: string, engineGroup: string): Promise<InternalCollection>;
35
+ createAssetsGroupsCollection(engineId: string): Promise<InternalCollection>;
35
36
  private getDigitalTwinMappings;
36
37
  createDevicesCollection(engineId: string): Promise<InternalCollection>;
37
38
  createMeasuresCollection(engineId: string, engineGroup: string): Promise<InternalCollection>;
@@ -1,6 +1,7 @@
1
1
  export declare enum InternalCollection {
2
2
  ASSETS = "assets",
3
3
  ASSETS_HISTORY = "assets-history",
4
+ ASSETS_GROUPS = "assets-groups",
4
5
  DEVICES = "devices",
5
6
  MEASURES = "measures",
6
7
  MODELS = "models",
@@ -4,6 +4,9 @@ export declare class DummyTempDecoder extends Decoder {
4
4
  measures: readonly [{
5
5
  readonly name: "temperature";
6
6
  readonly type: "temperature";
7
+ }, {
8
+ readonly name: "accelerationSensor";
9
+ readonly type: "acceleration";
7
10
  }, {
8
11
  readonly name: "battery";
9
12
  readonly type: "battery";
@@ -0,0 +1,10 @@
1
+ import { MeasureDefinition } from "lib/modules/measure";
2
+ export type AccelerationMeasurement = {
3
+ acceleration: {
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ };
8
+ accuracy: number;
9
+ };
10
+ export declare const accelerationMeasureDefinition: MeasureDefinition;
package/index.js ADDED
@@ -0,0 +1,2 @@
1
+ // noop
2
+ //? empty file just to fix resolver strange behavior (CF: https://github.com/vitejs/vite/issues/12446)
package/package.json CHANGED
@@ -1,20 +1,19 @@
1
1
  {
2
2
  "name": "kuzzle-device-manager-types",
3
- "version": "2.2.7",
3
+ "version": "2.3.2",
4
4
  "description": "Shared types for Kuzzle Device Manager",
5
5
  "author": "The Kuzzle Team (support@kuzzle.io)",
6
+ "main": "index.js",
6
7
  "types": "dist/index.d.ts",
7
8
  "repository": {
8
9
  "type": "git",
9
- "url": "https://github.com/kuzzleio/kuzzle-plugin-device-manager"
10
+ "url": "git+https://github.com/kuzzleio/kuzzle-plugin-device-manager.git"
10
11
  },
11
12
  "scripts": {
12
13
  "prepack": "npm run build",
13
- "build": "npm --prefix ../ run build && cp -r ../dist/ . && node scripts/copy-version.js"
14
+ "build": "./copy-types.sh && node scripts/copy-version.js"
14
15
  },
15
16
  "license": "Apache-2.0",
16
- "dependencies": {},
17
- "devDependencies": {},
18
17
  "files": [
19
18
  "dist/**/*.d.ts"
20
19
  ]