kuzzle-device-manager 2.3.2 → 2.4.0-beta.1-1

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 (36) hide show
  1. package/dist/lib/modules/asset/AssetsController.d.ts +5 -0
  2. package/dist/lib/modules/asset/AssetsController.js +48 -15
  3. package/dist/lib/modules/asset/AssetsController.js.map +1 -1
  4. package/dist/lib/modules/asset/collections/assetsMappings.js +1 -0
  5. package/dist/lib/modules/asset/collections/assetsMappings.js.map +1 -1
  6. package/dist/lib/modules/asset/types/AssetApi.d.ts +10 -0
  7. package/dist/lib/modules/decoder/PayloadService.js +1 -0
  8. package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
  9. package/dist/lib/modules/device/DeviceService.js +1 -0
  10. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  11. package/dist/lib/modules/device/DevicesController.d.ts +5 -0
  12. package/dist/lib/modules/device/DevicesController.js +46 -16
  13. package/dist/lib/modules/device/DevicesController.js.map +1 -1
  14. package/dist/lib/modules/device/collections/deviceMappings.d.ts +3 -0
  15. package/dist/lib/modules/device/collections/deviceMappings.js +1 -0
  16. package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
  17. package/dist/lib/modules/device/types/DeviceApi.d.ts +10 -0
  18. package/dist/lib/modules/measure/MeasureExporter.d.ts +23 -33
  19. package/dist/lib/modules/measure/MeasureExporter.js +55 -88
  20. package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
  21. package/dist/lib/modules/measure/MeasureService.js +10 -0
  22. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  23. package/dist/lib/modules/shared/index.d.ts +1 -0
  24. package/dist/lib/modules/shared/index.js +1 -0
  25. package/dist/lib/modules/shared/index.js.map +1 -1
  26. package/dist/lib/modules/shared/services/AbstractExporter.d.ts +52 -0
  27. package/dist/lib/modules/shared/services/AbstractExporter.js +87 -0
  28. package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -0
  29. package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +14 -0
  30. package/dist/lib/modules/shared/services/DigitalTwinExporter.js +94 -0
  31. package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -0
  32. package/dist/lib/modules/shared/services/index.d.ts +2 -0
  33. package/dist/lib/modules/shared/services/index.js +19 -0
  34. package/dist/lib/modules/shared/services/index.js.map +1 -0
  35. package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +1 -0
  36. package/package.json +2 -1
@@ -1,37 +1,31 @@
1
1
  /// <reference types="node" />
2
- import { PassThrough } from "node:stream";
3
- import { JSONObject, User } from "kuzzle";
4
- import { DeviceManagerPlugin } from "../plugin";
2
+ /// <reference types="node" />
3
+ import { UUID } from "node:crypto";
4
+ import { KHit, User } from "kuzzle";
5
+ import { AbstractExporter, Column, ExportParams } from "../shared";
5
6
  import { MeasureContent } from "./exports";
6
- type ExportOptions = {
7
- sort?: JSONObject;
8
- query?: JSONObject;
9
- from?: number;
10
- size?: number;
7
+ interface MeasureSearchParams extends ExportParams {
8
+ id: string;
9
+ type?: string;
11
10
  startAt?: string;
12
11
  endAt?: string;
13
- type?: string;
14
- };
15
- type ExportParams = {
16
- query: JSONObject;
17
- target: "asset" | "device";
18
- model: string;
19
- sort: JSONObject;
12
+ }
13
+ interface MeasuresSearchOptions {
14
+ from?: number;
15
+ size?: number;
16
+ }
17
+ interface MeasureExportParams extends ExportParams {
20
18
  id: string;
21
- };
22
- export declare class MeasureExporter {
23
- private plugin;
24
- private engineId;
25
- private target?;
26
- private get sdk();
27
- constructor(plugin: DeviceManagerPlugin, engineId: string, { target }?: {
28
- target?: "asset" | "device";
29
- });
19
+ model: string;
20
+ }
21
+ export declare class MeasureExporter extends AbstractExporter<MeasureExportParams> {
22
+ protected exportRedisKey(engineId: string, exportId: string): string;
23
+ protected getLink(engineId: string, exportId: UUID, params: MeasureExportParams): string;
30
24
  /**
31
25
  * Searches for measures and return them in a standard JSON
32
26
  */
33
- search(digitalTwinId: string, { size, from, endAt, startAt, query, sort, type, }: ExportOptions): Promise<{
34
- measures: import("kuzzle").KHit<MeasureContent<any, any>>[];
27
+ search(engineId: string, params: MeasureSearchParams, options?: MeasuresSearchOptions): Promise<{
28
+ measures: KHit<MeasureContent<any, any>>[];
35
29
  total: number;
36
30
  }>;
37
31
  /**
@@ -43,20 +37,16 @@ export declare class MeasureExporter {
43
37
  *
44
38
  * Never return a rejected promise and write potential error on the stream
45
39
  */
46
- prepareExport(user: User, digitalTwinId: string, { endAt, startAt, query, sort, type, }: ExportOptions): Promise<{
47
- link: string;
48
- }>;
40
+ prepareExport(engineId: string, user: User, params: MeasureSearchParams): Promise<string>;
41
+ protected formatHit(columns: Column[], hit: KHit<MeasureContent>): any[];
49
42
  /**
50
43
  * Retrieve a prepared export and write each document as a CSV in the stream
51
44
  *
52
45
  * This method never returns a rejected promise, but write potential error in
53
46
  * the stream.
54
47
  */
55
- sendExport(stream: PassThrough, exportId: string): Promise<void>;
48
+ sendExport(engineId: string, exportId: string): Promise<import("stream").PassThrough>;
56
49
  private generateMeasureColumns;
57
- getExport(exportId: string): Promise<ExportParams>;
58
- private exportRedisKey;
59
50
  private prepareMeasureSearch;
60
- private getEngine;
61
51
  }
62
52
  export {};
@@ -4,28 +4,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MeasureExporter = void 0;
7
- const node_crypto_1 = require("node:crypto");
8
- const sync_1 = require("csv-stringify/sync");
9
7
  const kuzzle_1 = require("kuzzle");
10
8
  const lodash_1 = __importDefault(require("lodash"));
11
9
  const plugin_1 = require("../plugin");
12
10
  const shared_1 = require("../shared");
13
- const TWO_MINUTES = 2 * 60;
14
- class MeasureExporter {
15
- get sdk() {
16
- return this.plugin.context.accessors.sdk;
11
+ class MeasureExporter extends shared_1.AbstractExporter {
12
+ exportRedisKey(engineId, exportId) {
13
+ return `exports:measures:${engineId}:${exportId}`;
17
14
  }
18
- constructor(plugin, engineId, { target } = {}) {
19
- this.plugin = plugin;
20
- this.engineId = engineId;
21
- this.target = target;
15
+ getLink(engineId, exportId, params) {
16
+ return `/_/device-manager/${engineId}/${this.target}/${params.id}/measures/_export/${exportId}`;
22
17
  }
23
18
  /**
24
19
  * Searches for measures and return them in a standard JSON
25
20
  */
26
- async search(digitalTwinId, { size = 25, from = 0, endAt, startAt, query, sort = { measuredAt: "desc" }, type, }) {
27
- const { searchQuery } = await this.prepareMeasureSearch(digitalTwinId, startAt, endAt, query, type);
28
- const result = await this.sdk.document.search(this.engineId, plugin_1.InternalCollection.MEASURES, { query: searchQuery, sort }, { from, lang: "koncorde", size: size });
21
+ async search(engineId, params, options) {
22
+ const searchQuery = this.prepareMeasureSearch(params);
23
+ const result = await this.sdk.document.search(engineId, plugin_1.InternalCollection.MEASURES, {
24
+ query: searchQuery,
25
+ sort: params.sort ?? { measuredAt: "desc" },
26
+ }, {
27
+ from: options?.from ?? 0,
28
+ lang: "koncorde",
29
+ size: options?.size ?? 25,
30
+ });
29
31
  return { measures: result.hits, total: result.total };
30
32
  }
31
33
  /**
@@ -37,28 +39,26 @@ class MeasureExporter {
37
39
  *
38
40
  * Never return a rejected promise and write potential error on the stream
39
41
  */
40
- async prepareExport(user, digitalTwinId, { endAt, startAt, query, sort = { measuredAt: "desc" }, type, }) {
41
- const { digitalTwin, searchQuery } = await this.prepareMeasureSearch(digitalTwinId, startAt, endAt, query, type);
42
+ async prepareExport(engineId, user, params) {
43
+ const digitalTwin = await this.sdk.document.get(engineId, this.target, params.id);
44
+ const searchQuery = this.prepareMeasureSearch(params);
42
45
  const exportParams = {
43
- id: digitalTwinId,
46
+ id: params.id,
44
47
  model: digitalTwin._source.model,
45
48
  query: searchQuery,
46
- sort,
47
- target: this.target,
49
+ sort: params.sort ?? { measuredAt: "desc" },
48
50
  };
49
- const exportId = (0, node_crypto_1.randomUUID)();
50
- await this.sdk.ms.setex(this.exportRedisKey(exportId), JSON.stringify(exportParams), TWO_MINUTES);
51
- let link = `/_/device-manager/${this.engineId}/${this.target}s/${digitalTwinId}/measures/_export/${exportId}`;
52
- if (user._id !== "-1") {
53
- const { result } = await this.sdk.as(user).query({
54
- action: "createToken",
55
- controller: "auth",
56
- expiresIn: TWO_MINUTES * 1000,
57
- singleUse: true,
58
- });
59
- link += `?jwt=${result.token}`;
60
- }
61
- return { link };
51
+ return super.prepareExport(engineId, user, exportParams);
52
+ }
53
+ formatHit(columns, hit) {
54
+ return columns.map(({ header: measureName, isMeasure, path }) => {
55
+ if (isMeasure &&
56
+ this.target === plugin_1.InternalCollection.ASSETS &&
57
+ hit._source.asset?.measureName !== measureName) {
58
+ return null;
59
+ }
60
+ return lodash_1.default.get(hit, path, null);
61
+ });
62
62
  }
63
63
  /**
64
64
  * Retrieve a prepared export and write each document as a CSV in the stream
@@ -66,16 +66,17 @@ class MeasureExporter {
66
66
  * This method never returns a rejected promise, but write potential error in
67
67
  * the stream.
68
68
  */
69
- async sendExport(stream, exportId) {
69
+ async sendExport(engineId, exportId) {
70
70
  try {
71
- const { query, sort, model, target } = await this.getExport(exportId);
72
- let result = await this.sdk.document.search(this.engineId, plugin_1.InternalCollection.MEASURES, { query, sort }, { lang: "koncorde", size: 200 });
73
- const engine = await this.getEngine();
74
- const modelDocument = await (0, shared_1.ask)(`ask:device-manager:model:${target}:get`, {
71
+ const { query, sort, model } = await this.getExport(engineId, exportId);
72
+ const result = await this.sdk.document.search(engineId, plugin_1.InternalCollection.MEASURES, { query, sort }, { lang: "koncorde", size: 200 });
73
+ const targetModel = this.target === plugin_1.InternalCollection.ASSETS ? "asset" : "device";
74
+ const engine = await this.getEngine(engineId);
75
+ const modelDocument = await (0, shared_1.ask)(`ask:device-manager:model:${targetModel}:get`, {
75
76
  engineGroup: engine.group,
76
77
  model,
77
78
  });
78
- const measureColumns = await this.generateMeasureColumns(modelDocument[target].measures);
79
+ const measureColumns = await this.generateMeasureColumns(modelDocument[targetModel].measures);
79
80
  const columns = [
80
81
  { header: "Payload Id", path: "_id" },
81
82
  { header: "Measured At", path: "_source.measuredAt" },
@@ -86,29 +87,12 @@ class MeasureExporter {
86
87
  { header: "Asset Model", path: "_source.asset.model" },
87
88
  ...measureColumns,
88
89
  ];
89
- stream.write((0, sync_1.stringify)([columns.map((column) => column.header)]));
90
- while (result) {
91
- for (const hit of result.hits) {
92
- stream.write((0, sync_1.stringify)([
93
- columns.map(({ header: measureName, isMeasure, path }) => {
94
- if (isMeasure &&
95
- target === "asset" &&
96
- hit._source.asset?.measureName !== measureName) {
97
- return null;
98
- }
99
- return lodash_1.default.get(hit, path, null);
100
- }),
101
- ]));
102
- }
103
- result = await result.next();
104
- }
105
- await this.sdk.ms.del(this.exportRedisKey(exportId));
90
+ const stream = this.getExportStream(result, columns);
91
+ await this.sdk.ms.del(this.exportRedisKey(engineId, exportId));
92
+ return stream;
106
93
  }
107
94
  catch (error) {
108
- stream.write(error.message);
109
- }
110
- finally {
111
- stream.end();
95
+ this.log.error(error);
112
96
  }
113
97
  }
114
98
  async generateMeasureColumns(documentMeasures) {
@@ -155,23 +139,10 @@ class MeasureExporter {
155
139
  }
156
140
  return measures;
157
141
  }
158
- async getExport(exportId) {
159
- const exportParams = await this.sdk.ms.get(this.exportRedisKey(exportId));
160
- if (!exportParams) {
161
- throw new kuzzle_1.NotFoundError(`Export "${exportId}" not found or expired.`);
162
- }
163
- return JSON.parse(exportParams);
164
- }
165
- exportRedisKey(exportId) {
166
- return `exports:measures:${this.engineId}:${exportId}`;
167
- }
168
- async prepareMeasureSearch(digitalTwinId, startAt, endAt, query, type) {
142
+ prepareMeasureSearch(params) {
169
143
  if (!this.target) {
170
144
  throw new kuzzle_1.InternalError('Missing "target" parameter');
171
145
  }
172
- const digitalTwin = await this.sdk.document.get(this.engineId, this.target === "asset"
173
- ? plugin_1.InternalCollection.ASSETS
174
- : plugin_1.InternalCollection.DEVICES, digitalTwinId);
175
146
  const measuredAtRange = {
176
147
  range: {
177
148
  measuredAt: {
@@ -180,36 +151,32 @@ class MeasureExporter {
180
151
  },
181
152
  },
182
153
  };
183
- if (startAt) {
184
- measuredAtRange.range.measuredAt.gte = new Date(startAt).getTime();
154
+ if (params.startAt) {
155
+ measuredAtRange.range.measuredAt.gte = new Date(params.startAt).getTime();
185
156
  }
186
- if (endAt) {
187
- measuredAtRange.range.measuredAt.lte = new Date(endAt).getTime();
157
+ if (params.endAt) {
158
+ measuredAtRange.range.measuredAt.lte = new Date(params.endAt).getTime();
188
159
  }
189
160
  const searchQuery = {
190
161
  and: [measuredAtRange],
191
162
  };
192
- if (this.target === "asset") {
163
+ if (this.target === plugin_1.InternalCollection.ASSETS) {
193
164
  searchQuery.and.push({
194
- equals: { "asset._id": digitalTwinId },
165
+ equals: { "asset._id": params.id },
195
166
  });
196
167
  }
197
168
  else {
198
169
  searchQuery.and.push({
199
- equals: { "origin._id": digitalTwinId },
170
+ equals: { "origin._id": params.id },
200
171
  });
201
172
  }
202
- if (type) {
203
- searchQuery.and.push({ equals: { type } });
173
+ if (params.type) {
174
+ searchQuery.and.push({ equals: { type: params.type } });
204
175
  }
205
- if (query) {
206
- searchQuery.and.push(query);
176
+ if (params.query) {
177
+ searchQuery.and.push(params.query);
207
178
  }
208
- return { digitalTwin, searchQuery };
209
- }
210
- async getEngine() {
211
- const engine = await this.sdk.document.get(this.plugin.config.adminIndex, plugin_1.InternalCollection.CONFIG, `engine-device-manager--${this.engineId}`);
212
- return engine._source.engine;
179
+ return searchQuery;
213
180
  }
214
181
  }
215
182
  exports.MeasureExporter = MeasureExporter;
@@ -1 +1 @@
1
- {"version":3,"file":"MeasureExporter.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureExporter.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AAGzC,6CAA+C;AAC/C,mCAMgB;AAChB,oDAAuB;AAOvB,sCAAoE;AACpE,sCAAmE;AAenE,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC;AAgB3B,MAAa,eAAe;IAG1B,IAAY,GAAG;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;IAC3C,CAAC;IAED,YACU,MAA2B,EAC3B,QAAgB,EACxB,EAAE,MAAM,KAAsC,EAAE;QAFxC,WAAM,GAAN,MAAM,CAAqB;QAC3B,aAAQ,GAAR,QAAQ,CAAQ;QAGxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,aAAqB,EACrB,EACE,IAAI,GAAG,EAAE,EACT,IAAI,GAAG,CAAC,EACR,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAC7B,IAAI,GACU;QAEhB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACrD,aAAa,EACb,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,CACL,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,IAAI,CAAC,QAAQ,EACb,2BAAkB,CAAC,QAAQ,EAC3B,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAC5B,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CACvC,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACxD,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,IAAU,EACV,aAAqB,EACrB,EACE,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAC7B,IAAI,GACU;QAEhB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAClE,aAAa,EACb,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,CACL,CAAC;QAEF,MAAM,YAAY,GAAiB;YACjC,EAAE,EAAE,aAAa;YACjB,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK;YAChC,KAAK,EAAE,WAAW;YAClB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAA,wBAAU,GAAE,CAAC;QAE9B,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC5B,WAAW,CACZ,CAAC;QAEF,IAAI,IAAI,GAAG,qBAAqB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,qBAAqB,QAAQ,EAAE,CAAC;QAE9G,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;YACrB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBAC/C,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,WAAW,GAAG,IAAI;gBAC7B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,IAAI,IAAI,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;SAChC;QAED,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAAmB,EAAE,QAAgB;QACpD,IAAI;YACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEtE,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CACzC,IAAI,CAAC,QAAQ,EACb,2BAAkB,CAAC,QAAQ,EAC3B,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,CAChC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,MAAM,IAAA,YAAG,EAC7B,4BAA4B,MAAM,MAAM,EACxC;gBACE,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,KAAK;aACN,CACF,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACtD,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,CAC/B,CAAC;YAEF,MAAM,OAAO,GAAa;gBACxB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE;gBACrC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBACrD,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChD,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBACnD,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,4BAA4B,EAAE;gBAC9D,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACjD,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE;gBACtD,GAAG,cAAc;aAClB,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAS,EAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAElE,OAAO,MAAM,EAAE;gBACb,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;oBAC7B,MAAM,CAAC,KAAK,CACV,IAAA,gBAAS,EAAC;wBACR,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;4BACvD,IACE,SAAS;gCACT,MAAM,KAAK,OAAO;gCAClB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,EAC9C;gCACA,OAAO,IAAI,CAAC;6BACb;4BAED,OAAO,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAChC,CAAC,CAAC;qBACH,CAAC,CACH,CAAC;iBACH;gBAED,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;aAC9B;YAED,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;SACtD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC7B;gBAAS;YACR,MAAM,CAAC,GAAG,EAAE,CAAC;SACd;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,gBAA+B;QAE/B;;;;;;;;;;;WAWG;QACH,MAAM,qBAAqB,GAA6B,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAwC,EAAE,CAAC;QAEzD,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,gBAAgB,EAAE;YAC7C,IAAI,CAAC,CAAC,IAAI,IAAI,qBAAqB,CAAC,EAAE;gBACpC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,YAAG,EAC3B,sCAAsC,EACtC,EAAE,IAAI,EAAE,CACT,CAAC;gBAEF,qBAAqB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CACvC,IAAA,sBAAa,EAAC,OAAO,CAAC,cAAc,CAAC,CACtC,CAAC;aACH;YAED,KAAK,MAAM,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;gBACjD;;;;;mBAKG;gBACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAErE;;;;;mBAKG;gBACH,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;gBAElE,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM;oBACN,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,kBAAkB,IAAI,EAAE;iBAC/B,CAAC,CAAC;aACJ;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,sBAAa,CAAC,WAAW,QAAQ,yBAAyB,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAiB,CAAC;IAClD,CAAC;IAEO,cAAc,CAAC,QAAgB;QACrC,OAAO,oBAAoB,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,aAAqB,EACrB,OAAgB,EAChB,KAAc,EACd,KAAkB,EAClB,IAAa;QAEb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,IAAI,sBAAa,CAAC,4BAA4B,CAAC,CAAC;SACvD;QAED,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CACzB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,KAAK,OAAO;YACrB,CAAC,CAAC,2BAAkB,CAAC,MAAM;YAC3B,CAAC,CAAC,2BAAkB,CAAC,OAAO,EAC9B,aAAa,CACd,CAAC;QAEJ,MAAM,eAAe,GAAG;YACtB,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,MAAM,CAAC,gBAAgB;iBAC7B;aACF;SACF,CAAC;QAEF,IAAI,OAAO,EAAE;YACX,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;SACpE;QAED,IAAI,KAAK,EAAE;YACT,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SAClE;QAED,MAAM,WAAW,GAAe;YAC9B,GAAG,EAAE,CAAC,eAAe,CAAC;SACvB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;YAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE;aACvC,CAAC,CAAC;SACJ;aAAM;YACL,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE;aACxC,CAAC,CAAC;SACJ;QAED,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SAC5C;QAED,IAAI,KAAK,EAAE;YACT,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAC7B,2BAAkB,CAAC,MAAM,EACzB,0BAA0B,IAAI,CAAC,QAAQ,EAAE,CAC1C,CAAC;QAEF,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF;AApUD,0CAoUC"}
1
+ {"version":3,"file":"MeasureExporter.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureExporter.ts"],"names":[],"mappings":";;;;;;AACA,mCAA+D;AAC/D,oDAAuB;AAOvB,sCAA+C;AAC/C,sCAOmB;AAsBnB,MAAa,eAAgB,SAAQ,yBAAqC;IAC9D,cAAc,CAAC,QAAgB,EAAE,QAAgB;QACzD,OAAO,oBAAoB,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACpD,CAAC;IAES,OAAO,CACf,QAAgB,EAChB,QAAc,EACd,MAA2B;QAE3B,OAAO,qBAAqB,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,qBAAqB,QAAQ,EAAE,CAAC;IAClG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,MAA2B,EAC3B,OAA+B;QAE/B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,QAAQ,EACR,2BAAkB,CAAC,QAAQ,EAC3B;YACE,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;SAC5C,EACD;YACE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC;YACxB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;SAC1B,CACF,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACxD,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,IAAU,EACV,MAA2B;QAE3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAC7C,QAAQ,EACR,IAAI,CAAC,MAAM,EACX,MAAM,CAAC,EAAE,CACV,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,YAAY,GAAwB;YACxC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK;YAChC,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;SAC5C,CAAC;QAEF,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAES,SAAS,CAAC,OAAiB,EAAE,GAAyB;QAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9D,IACE,SAAS;gBACT,IAAI,CAAC,MAAM,KAAK,2BAAkB,CAAC,MAAM;gBACzC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,EAC9C;gBACA,OAAO,IAAI,CAAC;aACb;YAED,OAAO,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB;QACjD,IAAI;YACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAExE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC3C,QAAQ,EACR,2BAAkB,CAAC,QAAQ,EAC3B,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,CAChC,CAAC;YAEF,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,KAAK,2BAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,MAAM,IAAA,YAAG,EAC7B,4BAA4B,WAAW,MAAM,EAC7C;gBACE,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,KAAK;aACN,CACF,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACtD,aAAa,CAAC,WAAW,CAAC,CAAC,QAAQ,CACpC,CAAC;YAEF,MAAM,OAAO,GAAa;gBACxB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE;gBACrC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBACrD,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChD,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBACnD,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,4BAA4B,EAAE;gBAC9D,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACjD,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE;gBACtD,GAAG,cAAc;aAClB,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAE/D,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACvB;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,gBAA+B;QAE/B;;;;;;;;;;;WAWG;QACH,MAAM,qBAAqB,GAA6B,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAwC,EAAE,CAAC;QAEzD,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,gBAAgB,EAAE;YAC7C,IAAI,CAAC,CAAC,IAAI,IAAI,qBAAqB,CAAC,EAAE;gBACpC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,YAAG,EAC3B,sCAAsC,EACtC,EAAE,IAAI,EAAE,CACT,CAAC;gBAEF,qBAAqB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CACvC,IAAA,sBAAa,EAAC,OAAO,CAAC,cAAc,CAAC,CACtC,CAAC;aACH;YAED,KAAK,MAAM,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;gBACjD;;;;;mBAKG;gBACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAErE;;;;;mBAKG;gBACH,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;gBAElE,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM;oBACN,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,kBAAkB,IAAI,EAAE;iBAC/B,CAAC,CAAC;aACJ;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,oBAAoB,CAAC,MAA2B;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,IAAI,sBAAa,CAAC,4BAA4B,CAAC,CAAC;SACvD;QAED,MAAM,eAAe,GAAG;YACtB,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,MAAM,CAAC,gBAAgB;iBAC7B;aACF;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;SAC3E;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACzE;QAED,MAAM,WAAW,GAAe;YAC9B,GAAG,EAAE,CAAC,eAAe,CAAC;SACvB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,2BAAkB,CAAC,MAAM,EAAE;YAC7C,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE;aACnC,CAAC,CAAC;SACJ;aAAM;YACL,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE;aACpC,CAAC,CAAC;SACJ;QAED,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACzD;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACpC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAlPD,0CAkPC"}
@@ -130,6 +130,7 @@ class MeasureService {
130
130
  if (!device._source.measures) {
131
131
  device._source.measures = {};
132
132
  }
133
+ let lastMeasuredAt = 0;
133
134
  for (const measurement of measurements) {
134
135
  if (measurement.origin.type === "computed") {
135
136
  continue;
@@ -140,6 +141,9 @@ class MeasureService {
140
141
  previousMeasure.measuredAt >= measurement.measuredAt) {
141
142
  continue;
142
143
  }
144
+ if (measurement.measuredAt > lastMeasuredAt) {
145
+ lastMeasuredAt = measurement.measuredAt;
146
+ }
143
147
  device._source.measures[measureName] = {
144
148
  measuredAt: measurement.measuredAt,
145
149
  name: measureName,
@@ -149,6 +153,7 @@ class MeasureService {
149
153
  values: measurement.values,
150
154
  };
151
155
  }
156
+ device._source.lastMeasuredAt = lastMeasuredAt;
152
157
  }
153
158
  // @todo there shouldn't be any logic related to asset historization here, but no other choices for now. It needs to be re-architected
154
159
  /**
@@ -162,6 +167,7 @@ class MeasureService {
162
167
  if (!asset._source.measures) {
163
168
  asset._source.measures = {};
164
169
  }
170
+ let lastMeasuredAt = 0;
165
171
  for (const measurement of measurements) {
166
172
  if (measurement.origin.type === "computed") {
167
173
  continue;
@@ -180,6 +186,9 @@ class MeasureService {
180
186
  previousMeasure.measuredAt >= measurement.measuredAt) {
181
187
  continue;
182
188
  }
189
+ if (measurement.measuredAt > lastMeasuredAt) {
190
+ lastMeasuredAt = measurement.measuredAt;
191
+ }
183
192
  asset._source.measures[measureName] = {
184
193
  measuredAt: measurement.measuredAt,
185
194
  name: measureName,
@@ -190,6 +199,7 @@ class MeasureService {
190
199
  };
191
200
  assetStates.set(measurement.measuredAt, JSON.parse(JSON.stringify(asset)));
192
201
  }
202
+ asset._source.lastMeasuredAt = lastMeasuredAt;
193
203
  return assetStates;
194
204
  }
195
205
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":";;;;;;AAAA,mCAMgB;AAChB,oDAAuB;AAEvB,oCAOkB;AAElB,sCAImB;AACnB,sCAA8E;AAa9E,MAAa,cAAc;IAIzB,IAAY,GAAG;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;IACpC,CAAC;IAED,IAAY,GAAG;QACb,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B,IAAA,cAAK,EACH,gCAAgC,EAChC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,MAAM,IAAI,CAAC,MAAM,CACf,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,YAAY,CACrB,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,KAAK,CAAC,MAAM,CACjB,MAAgC,EAChC,YAA8C,EAC9C,QAAkB,EAClB,YAAsB;QAEtB,MAAM,IAAA,aAAI,EAAC,kBAAkB,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;;YACpD,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CACf,wCAAwC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CACpE,CAAC;gBACF,OAAO;aACR;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACxC,QAAQ,EACR,MAAM,CAAC,OAAO,CAAC,OAAO,CACvB,CAAC;YACF,MAAM,qBAAqB,GACzB,KAAK,KAAK,IAAI;gBACZ,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEzD,gBAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CACjC,MAAM,EACN,KAAK,EACL,YAAY,EACZ,YAAY,CACb,CAAC;YAEF,IAAI,KAAK,EAAE;gBACT,MAAA,KAAK,CAAC,OAAO,EAAC,QAAQ,QAAR,QAAQ,GAAK,EAAE,EAAC;aAC/B;YAED;;;;eAIG;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB,wCAAwC,EACxC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAC5B,CAAC;YAEF,IAAI,QAAQ,EAAE;gBACZ,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB,UAAU,QAAQ,yCAAyC,EAC3D,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAC5B,CAAC;aACH;YAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAElD,IAAI,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;YAC7D,IAAI,KAAK,EAAE;gBACT,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/D;YAED,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB,wCAAwC,EACxC;gBACE,KAAK;gBACL,MAAM;gBACN,QAAQ;aACT,CACF,CAAC;YAEF,IAAI,QAAQ,EAAE;gBACZ,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB,UAAU,QAAQ,yCAAyC,EAC3D,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAC5B,CAAC;aACH;YAED,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,GAAG,CAAC,QAAQ;iBACd,MAAM,CACL,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,2BAAkB,CAAC,OAAO,EAC1B,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,OAAO,CACf;iBACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,IAAA,kBAAS,EACb,KAAK,EACL,IAAI,wBAAe,CACjB,yBAAyB,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CACzD,CACF,CAAC;YACJ,CAAC,CAAC,CACL,CAAC;YAEF,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,GAAG,CAAC,QAAQ;qBACd,MAAM,CACL,QAAQ,EACR,2BAAkB,CAAC,OAAO,EAC1B,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,OAAO,CACf;qBACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,MAAM,IAAA,kBAAS,EACb,KAAK,EACL,IAAI,wBAAe,CACjB,gCAAgC,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAChE,CACF,CAAC;gBACJ,CAAC,CAAC,CACL,CAAC;gBAEF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,GAAG,CAAC,QAAQ;qBACd,OAAO,CACN,QAAQ,EACR,2BAAkB,CAAC,QAAQ,EAC3B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAC/C;qBACA,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;oBACnB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;wBACvB,MAAM,IAAI,wBAAe,CACvB,yBAAyB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAC5C,CAAC;qBACH;gBACH,CAAC,CAAC,CACL,CAAC;gBAEF,IAAI,KAAK,EAAE;oBACT,mEAAmE;oBACnE,uDAAuD;oBACvD,oDAAoD;oBACpD,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,GAAG,CAAC,QAAQ;yBACd,MAAM,CACL,QAAQ,EACR,2BAAkB,CAAC,MAAM,EACzB,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,OAAO,CACd;yBACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACf,MAAM,IAAA,kBAAS,EACb,KAAK,EACL,IAAI,wBAAe,CACjB,wBAAwB,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CACvD,CACF,CAAC;oBACJ,CAAC,CAAC,CACL,CAAC;oBAEF,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAClB,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,KAAK,CAAC,OAAO,CAAC,QAAQ,CACvB,CACF,CAAC;iBACH;aACF;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE5B;;;;;;eAMG;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB,uCAAuC,EACvC;gBACE,KAAK;gBACL,MAAM;gBACN,QAAQ;aACT,CACF,CAAC;YAEF,IAAI,QAAQ,EAAE;gBACZ,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB,UAAU,QAAQ,wCAAwC,EAC1D,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAC5B,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAC1B,MAAgC,EAChC,YAA8B;QAE9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC5B,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;SAC9B;QAED,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC1C,SAAS;aACV;YAED,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;YACnD,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE7D,IACE,eAAe;gBACf,eAAe,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,EACpD;gBACA,SAAS;aACV;YAED,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;gBACrC,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;gBAChC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY;gBAC7C,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,CAAC;SACH;IACH,CAAC;IAED,sIAAsI;IACtI;;;;OAIG;IACK,mBAAmB,CACzB,KAA8B,EAC9B,YAA8B;QAE9B,8EAA8E;QAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;QAE/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;SAC7B;QAED,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC1C,SAAS;aACV;YAED,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE;gBAC9B,SAAS;aACV;YAED,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;YAClD,yEAAyE;YACzE,qCAAqC;YACrC,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,SAAS;aACV;YACD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE5D,IACE,eAAe;gBACf,eAAe,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,EACpD;gBACA,SAAS;aACV;YAED,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;gBACpC,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;gBAChC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY;gBAC7C,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,CAAC;YAEF,WAAW,CAAC,GAAG,CACb,WAAW,CAAC,UAAU,EACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAClC,CAAC;SACH;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,MAAgC,EAChC,KAAqC,EACrC,YAAkC,EAClC,YAAsB;QAEtB,MAAM,QAAQ,GAAqB,EAAE,CAAC;QAEtC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,qCAAqC;YACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CACnD,MAAM,EACN,KAAK,EACL,WAAW,CAAC,WAAW,CACxB,CAAC;YAEF,MAAM,YAAY,GAChB,KAAK,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI;gBACzC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,uBAAe,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAE9D,MAAM,cAAc,GAAmB;gBACrC,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,MAAM,EAAE;oBACN,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;oBACjC,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,YAAY;oBACZ,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;oBACnC,IAAI,EAAE,QAAQ;iBACf;gBACD,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,CAAC;YAEF,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC/B;QAED,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAClE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,QAAgB,EAChB,OAAe;QAEf,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QAED,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CACvC,QAAQ,EACR,2BAAkB,CAAC,MAAM,EACzB,OAAO,CACR,CAAC;YAEF,OAAO,KAAK,CAAC;SACd;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,wBAAwB,OAAO,IAAI,CAAC,CAAC;YAEpE,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,MAAgC,EAChC,KAA8B,EAC9B,iBAAyB;QAEzB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CACjD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAClC,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,wBAAe,CACvB,WAAW,MAAM,CAAC,GAAG,6BAA6B,KAAK,CAAC,GAAG,GAAG,CAC/D,CAAC;SACH;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,iBAAiB,CACtC,CAAC;QACF,sEAAsE;QACtE,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,WAAW,CAAC,KAAK,CAAC;IAC3B,CAAC;CACF;AA/aD,wCA+aC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,WAA2D,EAC3D,QAAgB,EAChB,qBAA+B,EAC/B,aAAuB;IAEvB,MAAM,eAAe,GAAG,IAAA,mBAAU,EAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;IACzE,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAEnE,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE;QAClD,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChE,IAAI,OAAO,EAAE,UAAU,KAAK,UAAU,EAAE;gBACtC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACjC;SACF;QAED,MAAM,KAAK,GAA6B;YACtC,OAAO,EAAE;gBACP,KAAK,EAAE,YAAY;aACpB;YACD,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,qBAAqB,CAAC;QAEpD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,qBAAqB,EAAE;YACvE,KAA8C,CAAC,QAAQ,GAAG;gBACzD,KAAK,EAAE,eAAe;aACvB,CAAC;YAEF,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC;SAC7C;QAED,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,UAAU,CAAC,OAAO;YACzB,KAAK;YACL,EAAE,EAAE,UAAU,CAAC,GAAG;YAClB,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;KACJ;IAED,OAAO,IAAA,YAAG,EACR,sCAAsC,EACtC;QACE,QAAQ;QACR,0EAA0E;QAC1E,0EAA0E;QAC1E,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE;KAC/B,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from "./services";
1
2
  export * from "./Module";
2
3
  export * from "./types/DigitalTwinContent";
3
4
  export * from "./types/Metadata";
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./services"), exports);
17
18
  __exportStar(require("./Module"), exports);
18
19
  __exportStar(require("./types/DigitalTwinContent"), exports);
19
20
  __exportStar(require("./types/Metadata"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,6DAA2C;AAC3C,mDAAiC;AACjC,0DAAwC;AACxC,qDAAmC;AACnC,+CAA6B;AAC7B,wDAAsC;AACtC,8CAA4B;AAC5B,oDAAkC;AAClC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,6DAA2C;AAC3C,mDAAiC;AACjC,0DAAwC;AACxC,qDAAmC;AACnC,+CAA6B;AAC7B,wDAAsC;AACtC,8CAA4B;AAC5B,oDAAkC;AAClC,qDAAmC"}
@@ -0,0 +1,52 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { UUID } from "node:crypto";
4
+ import { PassThrough, Readable } from "node:stream";
5
+ import { JSONObject, KDocumentContentGeneric, KHit, SearchResult, User } from "kuzzle";
6
+ import { EngineContent } from "kuzzle-plugin-commons";
7
+ import { DeviceManagerPlugin, InternalCollection } from "../../plugin";
8
+ export interface ExporterOption {
9
+ /**
10
+ * Expiration time of export in seconds before being invalid
11
+ */
12
+ expireTime: number;
13
+ }
14
+ export interface ExportParams {
15
+ query: JSONObject;
16
+ sort?: JSONObject;
17
+ }
18
+ export interface Column {
19
+ header: string;
20
+ path: string;
21
+ isMeasure?: boolean;
22
+ }
23
+ export declare abstract class AbstractExporter<P extends ExportParams = ExportParams> {
24
+ protected plugin: DeviceManagerPlugin;
25
+ protected target: InternalCollection;
26
+ protected config: ExporterOption;
27
+ constructor(plugin: DeviceManagerPlugin, target: InternalCollection, config?: Partial<ExporterOption>);
28
+ protected get sdk(): import("kuzzle").EmbeddedSDK;
29
+ protected get ms(): any;
30
+ protected get log(): {
31
+ debug: (message: any) => void;
32
+ error: (message: any) => void;
33
+ info: (message: any) => void;
34
+ silly: (message: any) => void;
35
+ verbose: (message: any) => void;
36
+ warn: (message: any) => void;
37
+ };
38
+ protected getEngine(engineId: string): Promise<EngineContent>;
39
+ protected abstract exportRedisKey(engineId: string, exportId: string): string;
40
+ protected abstract getLink(engineId: string, exportId: UUID, params: P): string;
41
+ /**
42
+ * Retrieve a prepared export and write each document as a CSV in the stream
43
+ *
44
+ * This method never returns a rejected promise, but write potential error in
45
+ * the stream.
46
+ */
47
+ abstract sendExport(engineId: string, exportId: string): Promise<Readable>;
48
+ prepareExport(engineId: string, user: User, params: P): Promise<string>;
49
+ protected formatHit(columns: Column[], hit: KHit<KDocumentContentGeneric>): string[];
50
+ getExport(engineId: string, exportId: string): Promise<P>;
51
+ getExportStream(request: SearchResult<KHit<KDocumentContentGeneric>>, columns: Column[]): Promise<PassThrough>;
52
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AbstractExporter = void 0;
7
+ const node_crypto_1 = require("node:crypto");
8
+ const node_stream_1 = require("node:stream");
9
+ const sync_1 = require("csv-stringify/sync");
10
+ const kuzzle_1 = require("kuzzle");
11
+ const lodash_1 = __importDefault(require("lodash"));
12
+ const plugin_1 = require("../../plugin");
13
+ class AbstractExporter {
14
+ constructor(plugin, target, config = {}) {
15
+ this.plugin = plugin;
16
+ this.target = target;
17
+ this.config = {
18
+ expireTime: 2 * 60,
19
+ };
20
+ if (Object.keys(config).length > 0) {
21
+ this.config = {
22
+ ...this.config,
23
+ ...config,
24
+ };
25
+ }
26
+ }
27
+ get sdk() {
28
+ return this.plugin.context.accessors.sdk;
29
+ }
30
+ get ms() {
31
+ return this.sdk.ms;
32
+ }
33
+ get log() {
34
+ return this.plugin.context.log;
35
+ }
36
+ async getEngine(engineId) {
37
+ const engine = await this.sdk.document.get(this.plugin.config.adminIndex, plugin_1.InternalCollection.CONFIG, `engine-device-manager--${engineId}`);
38
+ return engine._source.engine;
39
+ }
40
+ async prepareExport(engineId, user, params) {
41
+ const exportId = (0, node_crypto_1.randomUUID)();
42
+ await this.ms.setex(this.exportRedisKey(engineId, exportId), JSON.stringify(params), this.config.expireTime);
43
+ let link = this.getLink(engineId, exportId, params);
44
+ if (user._id !== "-1") {
45
+ const { result } = await this.sdk.as(user).query({
46
+ action: "createToken",
47
+ controller: "auth",
48
+ expiresIn: this.config.expireTime * 1000,
49
+ singleUse: true,
50
+ });
51
+ link += `?jwt=${result.token}`;
52
+ }
53
+ return link;
54
+ }
55
+ formatHit(columns, hit) {
56
+ return columns.map(({ path }) => lodash_1.default.get(hit, path, null));
57
+ }
58
+ async getExport(engineId, exportId) {
59
+ const exportParams = await this.sdk.ms.get(this.exportRedisKey(engineId, exportId));
60
+ if (!exportParams) {
61
+ throw new kuzzle_1.NotFoundError(`Export "${exportId}" not found or expired.`);
62
+ }
63
+ return JSON.parse(exportParams);
64
+ }
65
+ async getExportStream(request, columns) {
66
+ const stream = new node_stream_1.PassThrough();
67
+ let result = request;
68
+ try {
69
+ stream.write((0, sync_1.stringify)([columns.map((column) => column.header)]));
70
+ while (result) {
71
+ for (const hit of result.hits) {
72
+ stream.write((0, sync_1.stringify)([this.formatHit(columns, hit)]));
73
+ }
74
+ result = await result.next();
75
+ }
76
+ }
77
+ catch (error) {
78
+ stream.write(error.message);
79
+ }
80
+ finally {
81
+ stream.end();
82
+ }
83
+ return stream;
84
+ }
85
+ }
86
+ exports.AbstractExporter = AbstractExporter;
87
+ //# sourceMappingURL=AbstractExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractExporter.js","sourceRoot":"","sources":["../../../../../lib/modules/shared/services/AbstractExporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { UUID } from "node:crypto";
4
+ import { AbstractExporter } from "./AbstractExporter";
5
+ export declare class DigitalTwinExporter extends AbstractExporter {
6
+ protected exportRedisKey(engineId: string, exportId: string): string;
7
+ protected getLink(engineId: string, exportId: UUID): string;
8
+ sendExport(engineId: string, exportId: string): Promise<import("stream").PassThrough>;
9
+ /**
10
+ * Get the deduplicated Named Measures get from models
11
+ */
12
+ private getNamedMeasures;
13
+ private generateMeasureColumns;
14
+ }