kuzzle-device-manager-types 2.8.0-dev.2 → 2.8.0-dev.4

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,7 +3,7 @@ import { JSONObject, KDocument, KHit, SearchResult, mReplaceResponse } from "kuz
3
3
  import { DeviceManagerPlugin } from "../plugin";
4
4
  import { DigitalTwinService, Metadata, SearchParams } from "../shared";
5
5
  import { AssetHistoryService } from "./AssetHistoryService";
6
- import { ApiAssetMigrateTenantResult } from "./types/AssetApi";
6
+ import { ApiAssetMigrateTenantResult, ApiAssetUpdateModelLocales } from "./types/AssetApi";
7
7
  import { AssetContent } from "./types/AssetContent";
8
8
  export declare class AssetService extends DigitalTwinService {
9
9
  private assetHistoryService;
@@ -38,6 +38,14 @@ export declare class AssetService extends DigitalTwinService {
38
38
  mReplaceAndHistorize(engineId: string, assets: KDocument<AssetContent>[], removedMetadata: string[], { refresh }: {
39
39
  refresh: any;
40
40
  }): Promise<mReplaceResponse>;
41
+ /**
42
+ * Retrieve locales with the specified model and search all assets related to the model to update the locales.
43
+ * The operation is historized.
44
+ * @param request
45
+ * @param engineGroup
46
+ * @param model
47
+ */
48
+ updateModelLocales(request: KuzzleRequest, engineGroup: string, model: string): Promise<ApiAssetUpdateModelLocales[]>;
41
49
  private getEngine;
42
50
  private refreshModel;
43
51
  }
@@ -1,7 +1,7 @@
1
1
  import { ControllerDefinition, KuzzleRequest } from "kuzzle";
2
2
  import { DeviceManagerPlugin } from "../plugin";
3
3
  import { AssetService } from "./AssetService";
4
- import { ApiAssetCreateResult, ApiAssetUpsertResult, ApiAssetDeleteResult, ApiAssetGetMeasuresResult, ApiAssetGetResult, ApiAssetSearchResult, ApiAssetUpdateResult, ApiAssetMigrateTenantResult, ApiAssetMetadataReplaceResult, ApiAssetGetLastMeasuresResult, ApiAssetMGetLastMeasuredAtResult, ApiAssetMGetLastMeasuresResult, ApiAssetGetLastMeasuredAtResult } from "./types/AssetApi";
4
+ import { ApiAssetCreateResult, ApiAssetUpsertResult, ApiAssetDeleteResult, ApiAssetGetMeasuresResult, ApiAssetGetResult, ApiAssetSearchResult, ApiAssetUpdateResult, ApiAssetMigrateTenantResult, ApiAssetMetadataReplaceResult, ApiAssetGetLastMeasuresResult, ApiAssetMGetLastMeasuredAtResult, ApiAssetMGetLastMeasuresResult, ApiAssetGetLastMeasuredAtResult, ApiAssetUpdateModelLocales } from "./types/AssetApi";
5
5
  export declare class AssetsController {
6
6
  private plugin;
7
7
  private assetService;
@@ -36,4 +36,10 @@ export declare class AssetsController {
36
36
  migrateTenant(request: KuzzleRequest): Promise<ApiAssetMigrateTenantResult>;
37
37
  getLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetGetLastMeasuredAtResult>;
38
38
  mGetLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetMGetLastMeasuredAtResult>;
39
+ /**
40
+ * Update modelLocales of all assets related to the specified asset model.
41
+ * This operation is done to make the search assets feature up to date
42
+ * @param request
43
+ */
44
+ updateModelLocales(request: KuzzleRequest): Promise<ApiAssetUpdateModelLocales[]>;
39
45
  }
@@ -1,4 +1,4 @@
1
- import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
1
+ import { JSONObject, KDocument, KHit, SearchResult, UpdateByQueryResponse } from "kuzzle-sdk";
2
2
  import { MeasureContent, Measurement } from "../../../modules/measure";
3
3
  import { ApiDigitalTwinGetLastMeasuredAtRequest, ApiDigitalTwinGetLastMeasuredAtResult, ApiDigitalTwinGetLastMeasuresRequest, ApiDigitalTwinGetLastMeasuresResult, ApiDigitalTwinMGetLastMeasuredAtRequest, ApiDigitalTwinMGetLastMeasuredAtResult, ApiDigitalTwinMGetLastMeasuresRequest, ApiDigitalTwinMGetLastMeasuresResult, Metadata } from "../../shared";
4
4
  import { AssetContent } from "./AssetContent";
@@ -170,4 +170,8 @@ export type ApiAssetGetLastMeasuredAtRequest = ApiDigitalTwinGetLastMeasuredAtRe
170
170
  export type ApiAssetGetLastMeasuredAtResult = ApiDigitalTwinGetLastMeasuredAtResult;
171
171
  export type ApiAssetMGetLastMeasuredAtRequest = ApiDigitalTwinMGetLastMeasuredAtRequest<AssetsControllerName>;
172
172
  export type ApiAssetMGetLastMeasuredAtResult = ApiDigitalTwinMGetLastMeasuredAtResult;
173
+ export type ApiAssetUpdateModelLocales = {
174
+ engineIndex: string;
175
+ result: UpdateByQueryResponse<AssetContent>;
176
+ };
173
177
  export {};
@@ -1,5 +1,6 @@
1
1
  import { SchemaObject } from "ajv";
2
2
  import { JSONObject } from "kuzzle-sdk";
3
+ import { LocaleDetails } from "lib/modules/model";
3
4
  interface MeasureLocales {
4
5
  [localeString: string]: {
5
6
  friendlyName: string;
@@ -44,6 +45,9 @@ export interface MeasureValuesDetails {
44
45
  *}
45
46
  */
46
47
  export interface MeasureDefinition {
48
+ locales?: {
49
+ [valueName: string]: LocaleDetails;
50
+ };
47
51
  /**
48
52
  * Mappings for the measurement values in order to index the fields
49
53
  */
@@ -2,7 +2,7 @@ import { KuzzleRequest } from "kuzzle";
2
2
  import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
3
3
  import { DeviceManagerPlugin } from "../plugin";
4
4
  import { BaseService, SearchParams } from "../shared";
5
- import { AssetModelContent, DeviceModelContent, GroupModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
5
+ import { AssetModelContent, DeviceModelContent, GroupModelContent, LocaleDetails, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
6
6
  import { SchemaObject } from "ajv";
7
7
  import { MeasureValuesDetails } from "../measure";
8
8
  import { NamedMeasures } from "../decoder";
@@ -10,11 +10,15 @@ export declare class ModelService extends BaseService {
10
10
  constructor(plugin: DeviceManagerPlugin);
11
11
  registerAskEvents(): void;
12
12
  private checkModelsConflicts;
13
- writeAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures, tooltipModels: TooltipModels): Promise<KDocument<AssetModelContent>>;
13
+ writeAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures, tooltipModels: TooltipModels, locales: {
14
+ [valueName: string]: LocaleDetails;
15
+ }): Promise<KDocument<AssetModelContent>>;
14
16
  private checkDefaultValues;
15
17
  writeDevice(model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures): Promise<KDocument<DeviceModelContent>>;
16
18
  writeGroup(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups): Promise<KDocument<GroupModelContent>>;
17
- writeMeasure(type: string, valuesMappings: JSONObject, validationSchema?: SchemaObject, valuesDetails?: MeasureValuesDetails): Promise<KDocument<MeasureModelContent>>;
19
+ writeMeasure(type: string, valuesMappings: JSONObject, validationSchema?: SchemaObject, valuesDetails?: MeasureValuesDetails, locales?: {
20
+ [valueName: string]: LocaleDetails;
21
+ }): Promise<KDocument<MeasureModelContent>>;
18
22
  deleteAsset(_id: string): Promise<void>;
19
23
  deleteDevice(_id: string): Promise<void>;
20
24
  deleteGroup(_id: string): Promise<void>;
@@ -36,5 +40,7 @@ export declare class ModelService extends BaseService {
36
40
  /**
37
41
  * Update an asset model
38
42
  */
39
- updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
43
+ updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, locales: {
44
+ [valueName: string]: LocaleDetails;
45
+ }, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
40
46
  }
@@ -1,7 +1,7 @@
1
1
  import { DeviceManagerPlugin } from "../plugin";
2
2
  import { NamedMeasures } from "../decoder";
3
3
  import { MeasureDefinition } from "../measure";
4
- import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
4
+ import { LocaleDetails, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
5
5
  import { JSONObject } from "kuzzle-sdk";
6
6
  export declare class ModelsRegister {
7
7
  private config;
@@ -26,7 +26,9 @@ export declare class ModelsRegister {
26
26
  * @param tooltipModels - Optional model list for tooltip, containing labels and tooltip content.
27
27
  * @throws PluginImplementationError if the model name is not in PascalCase.
28
28
  */
29
- registerAsset(engineGroup: string, model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups, tooltipModels?: TooltipModels): void;
29
+ registerAsset(engineGroup: string, model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups, tooltipModels?: TooltipModels, locales?: {
30
+ [valueName: string]: LocaleDetails;
31
+ }): void;
30
32
  /**
31
33
  * Registers a device model.
32
34
  *
@@ -1,5 +1,5 @@
1
1
  import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
2
- import { AssetModelContent, DeviceModelContent, GroupModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
2
+ import { AssetModelContent, DeviceModelContent, GroupModelContent, LocaleDetails, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
3
3
  import { SchemaObject } from "ajv";
4
4
  import { MeasureValuesDetails } from "../../measure/types/MeasureDefinition";
5
5
  interface ModelsControllerRequest {
@@ -37,6 +37,9 @@ export interface ApiModelWriteAssetRequest extends ModelsControllerRequest {
37
37
  defaultValues?: JSONObject;
38
38
  measures?: AssetModelContent["asset"]["measures"];
39
39
  tooltipModels?: TooltipModels;
40
+ locales?: {
41
+ [valueName: string]: LocaleDetails;
42
+ };
40
43
  };
41
44
  }
42
45
  export type ApiModelWriteAssetResult = KDocument<AssetModelContent>;
@@ -68,6 +71,9 @@ export interface ApiModelWriteMeasureRequest extends ModelsControllerRequest {
68
71
  action: "writeMeasure";
69
72
  body: {
70
73
  type: string;
74
+ locales?: {
75
+ [valueName: string]: LocaleDetails;
76
+ };
71
77
  valuesMappings: JSONObject;
72
78
  validationSchema?: SchemaObject;
73
79
  valuesDetails?: MeasureValuesDetails;
@@ -85,6 +91,9 @@ export interface ApiModelUpdateAssetRequest extends ModelsControllerRequest {
85
91
  defaultValues?: JSONObject;
86
92
  measures?: AssetModelContent["asset"]["measures"];
87
93
  tooltipModels?: TooltipModels;
94
+ locales?: {
95
+ [valueName: string]: LocaleDetails;
96
+ };
88
97
  };
89
98
  }
90
99
  export type ApiModelUpdateAssetResult = KDocument<AssetModelContent>;
@@ -5,6 +5,9 @@ export interface MeasureModelContent extends KDocumentContent {
5
5
  type: "measure";
6
6
  measure: MeasureDefinition & {
7
7
  type: string;
8
+ locales?: {
9
+ [valueName: string]: LocaleDetails;
10
+ };
8
11
  };
9
12
  }
10
13
  export interface MetadataProperty {
@@ -265,6 +268,9 @@ export interface AssetModelContent extends KDocumentContent {
265
268
  * ]
266
269
  */
267
270
  tooltipModels?: TooltipModels;
271
+ locales?: {
272
+ [locale: string]: LocaleDetails;
273
+ };
268
274
  };
269
275
  }
270
276
  export interface DeviceModelContent extends KDocumentContent {
@@ -1,6 +1,6 @@
1
1
  import { JSONObject } from "kuzzle-sdk";
2
2
  import { Decoder, NamedMeasures } from "../../../modules/decoder";
3
- import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
3
+ import { LocaleDetails, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
4
4
  /**
5
5
  * Define an asset model
6
6
  *
@@ -94,7 +94,17 @@ import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from
94
94
  * }
95
95
  * ]
96
96
  * }
97
- * }
97
+ * },
98
+ * locales: {
99
+ * en: {
100
+ * friendlyName: 'Container (translation by model)',
101
+ * description: 'Containerized container',
102
+ * },
103
+ * fr: {
104
+ * friendlyName: 'Conteneur (traduit par model)',
105
+ * description: 'Conteneur conteneurisé',
106
+ * },
107
+ * },
98
108
  * }
99
109
  *
100
110
  */
@@ -123,6 +133,9 @@ export type AssetModelDefinition = {
123
133
  * Tooltip models
124
134
  */
125
135
  tooltipModels?: TooltipModels;
136
+ locales?: {
137
+ [valueName: string]: LocaleDetails;
138
+ };
126
139
  };
127
140
  /**
128
141
  * Define a device model
@@ -1,8 +1,12 @@
1
1
  import { JSONObject, KDocumentContent } from "kuzzle-sdk";
2
2
  import { Metadata } from "./Metadata";
3
3
  import { DigitalTwinMeasures } from "./DigitalTwinMeasures";
4
+ import { LocaleDetails } from "lib/modules/model";
4
5
  export interface DigitalTwinContent<TMeasures extends JSONObject = JSONObject, TMetadata extends Metadata = Metadata> extends KDocumentContent {
5
6
  model: string;
7
+ modelLocales?: {
8
+ [locale: string]: LocaleDetails;
9
+ };
6
10
  reference: string;
7
11
  metadata: TMetadata;
8
12
  measures: DigitalTwinMeasures<TMeasures>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kuzzle-device-manager-types",
3
- "version": "2.8.0-dev.2",
3
+ "version": "2.8.0-dev.4",
4
4
  "description": "Shared types for Kuzzle Device Manager",
5
5
  "author": "The Kuzzle Team (support@kuzzle.io)",
6
6
  "main": "index.js",