bruce-models 7.1.41 → 7.1.42

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.
@@ -123,5 +123,5 @@ __exportStar(require("./mcp/navigator-chat"), exports);
123
123
  __exportStar(require("./mcp/navigator-mcp-websocket"), exports);
124
124
  __exportStar(require("./change-set/change-set"), exports);
125
125
  // This is updated with the package.json version on build.
126
- exports.VERSION = "7.1.41";
126
+ exports.VERSION = "7.1.42";
127
127
  //# sourceMappingURL=bruce-models.js.map
@@ -26,19 +26,46 @@ var EntityCoords;
26
26
  */
27
27
  function GetEntityCoords(params) {
28
28
  return __awaiter(this, void 0, void 0, function* () {
29
- let { api, rootEntityId: entityId, req: reqParams } = params;
29
+ let { api, rootEntityId, req: reqParams } = params;
30
30
  if (!api) {
31
31
  api = environment_1.ENVIRONMENT.Api().GetBruceApi();
32
32
  }
33
- const cache = api.GetCacheItem(GetCacheKey(entityId), reqParams);
33
+ const entityIds = (Array.isArray(rootEntityId) ? rootEntityId : [rootEntityId]).filter(id => !!id);
34
+ if (!entityIds.length) {
35
+ throw ("Root Entity ID is required.");
36
+ }
37
+ const cacheKey = GetCacheKey(Array.isArray(rootEntityId) ? entityIds : entityIds[0]);
38
+ const cache = api.GetCacheItem(cacheKey, reqParams);
34
39
  if (cache === null || cache === void 0 ? void 0 : cache.found) {
35
40
  return cache.data;
36
41
  }
37
42
  const prom = new Promise((res, rej) => __awaiter(this, void 0, void 0, function* () {
43
+ var _a;
38
44
  try {
39
- const data = yield api.GET(`entity/${entityId}/ucs`, reqParams);
45
+ if (entityIds.length == 1) {
46
+ const data = yield api.GET(`entity/${entityIds[0]}/ucs`, reqParams);
47
+ res({
48
+ coords: data,
49
+ coordsMap: {
50
+ [entityIds[0]]: data
51
+ }
52
+ });
53
+ return;
54
+ }
55
+ const data = yield api.GET(`entity/ucs?rootId=${entityIds.map(encodeURIComponent).join(",")}`, reqParams);
56
+ const coords = (_a = data === null || data === void 0 ? void 0 : data.Items) === null || _a === void 0 ? void 0 : _a[0];
57
+ if (!coords) {
58
+ throw ("No Entity coordinates found.");
59
+ }
60
+ const coordsMap = {};
61
+ for (const item of data.Items || []) {
62
+ if (item === null || item === void 0 ? void 0 : item["Entity.ID"]) {
63
+ coordsMap[item["Entity.ID"]] = item;
64
+ }
65
+ }
40
66
  res({
41
- coords: data
67
+ coords,
68
+ coordsMap
42
69
  });
43
70
  }
44
71
  catch (e) {
@@ -46,7 +73,7 @@ var EntityCoords;
46
73
  }
47
74
  }));
48
75
  api.SetCacheItem({
49
- key: GetCacheKey(entityId),
76
+ key: cacheKey,
50
77
  value: prom,
51
78
  req: reqParams
52
79
  });
@@ -90,7 +117,7 @@ var EntityCoords;
90
117
  "test": params.test
91
118
  }, reqParams);
92
119
  if (!params.test) {
93
- api.Cache.Remove(GetCacheKey(entityId));
120
+ InvalidateCoordsCache(api, entityId);
94
121
  }
95
122
  return {
96
123
  coords: res
@@ -137,7 +164,7 @@ var EntityCoords;
137
164
  "test": params.test
138
165
  }, reqParams);
139
166
  if (!params.test) {
140
- api.Cache.Remove(GetCacheKey(entityId));
167
+ InvalidateCoordsCache(api, entityId);
141
168
  }
142
169
  return {
143
170
  coords: res
@@ -171,7 +198,7 @@ var EntityCoords;
171
198
  "test": params.test
172
199
  }, reqParams);
173
200
  if (!params.test) {
174
- api.Cache.Remove(GetCacheKey(entityId));
201
+ InvalidateCoordsCache(api, entityId);
175
202
  }
176
203
  return {
177
204
  coords: res
@@ -190,7 +217,8 @@ var EntityCoords;
190
217
  if (!api) {
191
218
  api = environment_1.ENVIRONMENT.Api().GetBruceApi();
192
219
  }
193
- return api.DELETE(`entity/${entityId}/ucs`, reqParams);
220
+ yield api.DELETE(`entity/${entityId}/ucs`, reqParams);
221
+ InvalidateCoordsCache(api, entityId);
194
222
  });
195
223
  }
196
224
  EntityCoords.UnlinkCoords = UnlinkCoords;
@@ -205,8 +233,35 @@ var EntityCoords;
205
233
  * @returns
206
234
  */
207
235
  function GetCacheKey(entityId) {
208
- return api_1.Api.ECacheKey.EntityCoords + api_1.Api.ECacheKey.Entity + api_1.Api.ECacheKey.Id + entityId;
236
+ const isList = Array.isArray(entityId);
237
+ const id = isList ? entityId.join(",") : entityId;
238
+ return api_1.Api.ECacheKey.EntityCoords + api_1.Api.ECacheKey.Entity + (isList ? api_1.Api.ECacheKey.ListId : api_1.Api.ECacheKey.Id) + id;
209
239
  }
210
240
  EntityCoords.GetCacheKey = GetCacheKey;
241
+ /**
242
+ * Invalidates all cached coords that involve the given Entity ID.
243
+ *
244
+ * Example:
245
+ * ```
246
+ * const api: BruceApi.Api = ...;
247
+ * InvalidateCoordsCache(api, "123");
248
+ * ```
249
+ * @param api
250
+ * @param entityId Single Entity whose cached coords should be invalidated.
251
+ */
252
+ function InvalidateCoordsCache(api, entityId) {
253
+ // Remove the exact single-entity cache entry.
254
+ api.Cache.Remove(GetCacheKey(entityId));
255
+ // Remove any multi-Entity cache entries whose ID list includes this Entity.
256
+ const multiPrefix = api_1.Api.ECacheKey.EntityCoords + api_1.Api.ECacheKey.Entity + api_1.Api.ECacheKey.ListId;
257
+ api.Cache.RemoveBy(key => {
258
+ const k = String(key);
259
+ if (!k.startsWith(multiPrefix)) {
260
+ return false;
261
+ }
262
+ return k.slice(multiPrefix.length).split(",").includes(entityId);
263
+ });
264
+ }
265
+ EntityCoords.InvalidateCoordsCache = InvalidateCoordsCache;
211
266
  })(EntityCoords = exports.EntityCoords || (exports.EntityCoords = {}));
212
267
  //# sourceMappingURL=entity-coords.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-coords.js","sourceRoot":"","sources":["../../../src/entity/entity-coords.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAiC;AAIjC,gDAA6C;AAC7C,mDAA+C;AAE/C;;GAEG;AACH,IAAiB,YAAY,CAoT5B;AApTD,WAAiB,YAAY;IACZ,+BAAkB,GAAG,gBAAgB,CAAC;IAsFnD;;;;OAIG;IACH,SAAsB,eAAe,CAAC,MAKrC;;YAIG,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE;gBACN,GAAG,GAAG,yBAAW,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;aACzC;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;YACjE,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAE;gBACd,OAAO,KAAK,CAAC,IAAI,CAAC;aACrB;YACD,MAAM,IAAI,GAAiB,IAAI,OAAO,CAAC,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;gBACtD,IAAI;oBACA,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,QAAQ,MAAM,EAAE,SAAS,CAAC,CAAC;oBAChE,GAAG,CAAC;wBACA,MAAM,EAAE,IAAI;qBACf,CAAC,CAAC;iBACN;gBAAC,OAAO,CAAC,EAAE;oBACR,GAAG,CAAC,CAAC,CAAC,CAAC;iBACV;YACL,CAAC,CAAA,CAAC,CAAC;YACH,GAAG,CAAC,YAAY,CAAC;gBACb,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC;gBAC1B,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAlCqB,4BAAe,kBAkCpC,CAAA;IAED;;;;OAIG;IACH,SAAsB,qBAAqB,CAAC,MAKvB;;YAIjB,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE;gBACN,GAAG,GAAG,yBAAW,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;aACzC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACd,MAAM,YAAY,CAAC;oBACf,GAAG;oBACH,YAAY,EAAE,QAAQ;oBACtB,GAAG,EAAE,SAAS;iBACjB,CAAC,CAAC;aACN;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,sBAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,sBAAS,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5G,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,QAAQ,MAAM,EAAE;gBACjD,KAAK,EAAE;oBACH,WAAW,EAAE,IAAI;oBACjB,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE;wBACR,UAAU,EAAE,KAAK,CAAC,QAAQ;wBAC1B,WAAW,EAAE,KAAK,CAAC,SAAS;wBAC5B,UAAU,EAAE,KAAK,CAAC,QAAQ;wBAC1B,aAAa,EAAE;4BACX,WAAW,EAAE,QAAQ;yBACxB;qBACJ;iBACJ;gBACD,MAAM,EAAE,MAAM,CAAC,IAAI;aACtB,EAAE,SAAS,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACd,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC3C;YACD,OAAO;gBACH,MAAM,EAAE,GAAG;aACd,CAAC;QACN,CAAC;KAAA;IA5CqB,kCAAqB,wBA4C1C,CAAA;IAED;;;;OAIG;IACH,SAAsB,oBAAoB,CAAC,MAQvB;;;YAIhB,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE;gBACN,GAAG,GAAG,yBAAW,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;aACzC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACd,MAAM,YAAY,CAAC;oBACf,GAAG;oBACH,YAAY,EAAE,QAAQ;oBACtB,GAAG,EAAE,SAAS;iBACjB,CAAC,CAAC;aACN;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,QAAQ,GAAG,IAAI,CAAC;YAC5C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,QAAQ,MAAM,EAAE;gBACjD,KAAK,EAAE;oBACH,WAAW,EAAE,IAAI;oBACjB,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE;wBACR,aAAa,EAAE;4BACX,MAAM,EAAE,OAAO,GAAG,IAAI;4BACtB,WAAW,EAAE,QAAQ;yBACxB;qBACJ;oBACD,WAAW,EAAE;wBACT,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;qBAC7B;iBACJ;gBACD,gBAAgB,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK;gBAChD,MAAM,EAAE,MAAM,CAAC,IAAI;aACtB,EAAE,SAAS,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACd,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC3C;YACD,OAAO;gBACH,MAAM,EAAE,GAAG;aACd,CAAC;;KACL;IAjDqB,iCAAoB,uBAiDzC,CAAA;IAED;;;;OAIG;IACH,SAAsB,mBAAmB,CAAC,MAKvB;;YAIf,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE;gBACN,GAAG,GAAG,yBAAW,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;aACzC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACd,MAAM,YAAY,CAAC;oBACf,GAAG;oBACH,YAAY,EAAE,QAAQ;oBACtB,GAAG,EAAE,SAAS;iBACjB,CAAC,CAAC;aACN;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,QAAQ,MAAM,EAAE;gBACjD,KAAK,EAAE;oBACH,WAAW,EAAE,KAAK;iBACrB;gBACD,MAAM,EAAE,MAAM,CAAC,IAAI;aACtB,EAAE,SAAS,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACd,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC3C;YACD,OAAO;gBACH,MAAM,EAAE,GAAG;aACd,CAAC;QACN,CAAC;KAAA;IAlCqB,gCAAmB,sBAkCxC,CAAA;IAED;;;;OAIG;IACH,SAAsB,YAAY,CAAC,MAKlC;;YACG,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE;gBACN,GAAG,GAAG,yBAAW,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;aACzC;YAED,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,QAAQ,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;KAAA;IAZqB,yBAAY,eAYjC,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,WAAW,CAAC,QAAgB;QACxC,OAAO,SAAG,CAAC,SAAS,CAAC,YAAY,GAAG,SAAG,CAAC,SAAS,CAAC,MAAM,GAAG,SAAG,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC;IAC3F,CAAC;IAFe,wBAAW,cAE1B,CAAA;AACL,CAAC,EApTgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAoT5B"}
1
+ {"version":3,"file":"entity-coords.js","sourceRoot":"","sources":["../../../src/entity/entity-coords.ts"],"names":[],"mappings":"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"}
@@ -105,4 +105,4 @@ export * from "./tracking/tracking";
105
105
  export * from "./mcp/navigator-chat";
106
106
  export * from "./mcp/navigator-mcp-websocket";
107
107
  export * from "./change-set/change-set";
108
- export declare const VERSION = "7.1.41";
108
+ export declare const VERSION = "7.1.42";
@@ -1,6 +1,7 @@
1
1
  import { Api } from "../api/api";
2
2
  import { BruceApi } from "../api/bruce-api";
3
3
  import { Carto } from "../common/carto";
4
+ import { IDictionary } from "../common/dictionary";
4
5
  import { Transform } from "../common/transform";
5
6
  /**
6
7
  * This is a utility to help calculate and manage UCS coordinates for entities.
@@ -36,6 +37,10 @@ export declare namespace EntityCoords {
36
37
  transform?: Transform.ITransform;
37
38
  location?: Carto.ICarto;
38
39
  }
40
+ interface IEntityCoordsRes {
41
+ coords: IEntityCoords;
42
+ coordsMap: IDictionary<IEntityCoords>;
43
+ }
39
44
  /**
40
45
  * Params for shifting an entity to be relative to a point.
41
46
  */
@@ -68,11 +73,9 @@ export declare namespace EntityCoords {
68
73
  */
69
74
  function GetEntityCoords(params: {
70
75
  api?: BruceApi.Api;
71
- rootEntityId: string;
76
+ rootEntityId: string | string[];
72
77
  req?: Api.IReqParams;
73
- }): Promise<{
74
- coords: IEntityCoords;
75
- }>;
78
+ }): Promise<IEntityCoordsRes>;
76
79
  /**
77
80
  * Returns coordinates for an entity when relative to a point.
78
81
  * @param params
@@ -130,5 +133,17 @@ export declare namespace EntityCoords {
130
133
  * @param entityId
131
134
  * @returns
132
135
  */
133
- function GetCacheKey(entityId: string): string;
136
+ function GetCacheKey(entityId: string | string[]): string;
137
+ /**
138
+ * Invalidates all cached coords that involve the given Entity ID.
139
+ *
140
+ * Example:
141
+ * ```
142
+ * const api: BruceApi.Api = ...;
143
+ * InvalidateCoordsCache(api, "123");
144
+ * ```
145
+ * @param api
146
+ * @param entityId Single Entity whose cached coords should be invalidated.
147
+ */
148
+ function InvalidateCoordsCache(api: BruceApi.Api, entityId: string): void;
134
149
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-models",
3
- "version": "7.1.41",
3
+ "version": "7.1.42",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-models.umd.js",