@nmshd/runtime 2.0.0-beta.2 → 2.0.0-beta.3

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 (32) hide show
  1. package/dist/buildInformation.js +4 -4
  2. package/dist/dataViews/DataViewExpander.d.ts +3 -3
  3. package/dist/dataViews/DataViewExpander.js +60 -34
  4. package/dist/dataViews/DataViewExpander.js.map +1 -1
  5. package/dist/dataViews/consumption/LocalAttributeDVO.d.ts +3 -3
  6. package/dist/dataViews/consumption/RelationshipSettingDVO.d.ts +5 -0
  7. package/dist/{types/consumption/RelationshipInfoDTO.js → dataViews/consumption/RelationshipSettingDVO.js} +1 -1
  8. package/dist/dataViews/consumption/RelationshipSettingDVO.js.map +1 -0
  9. package/dist/dataViews/consumption/index.d.ts +1 -0
  10. package/dist/dataViews/consumption/index.js +1 -0
  11. package/dist/dataViews/consumption/index.js.map +1 -1
  12. package/dist/dataViews/transport/RelationshipDVO.d.ts +5 -1
  13. package/dist/dataViews/transport/RelationshipDVO.js.map +1 -1
  14. package/dist/types/consumption/index.d.ts +0 -4
  15. package/dist/types/consumption/index.js +0 -4
  16. package/dist/types/consumption/index.js.map +1 -1
  17. package/lib-web/nmshd.runtime.js +78 -94
  18. package/lib-web/nmshd.runtime.js.map +1 -1
  19. package/lib-web/nmshd.runtime.min.js +1 -1
  20. package/lib-web/nmshd.runtime.min.js.map +1 -1
  21. package/package.json +1 -1
  22. package/dist/types/consumption/RelationshipAttributeDTO.d.ts +0 -6
  23. package/dist/types/consumption/RelationshipAttributeDTO.js +0 -3
  24. package/dist/types/consumption/RelationshipAttributeDTO.js.map +0 -1
  25. package/dist/types/consumption/RelationshipInfoDTO.d.ts +0 -13
  26. package/dist/types/consumption/RelationshipInfoDTO.js.map +0 -1
  27. package/dist/types/consumption/RelationshipThemeDTO.d.ts +0 -6
  28. package/dist/types/consumption/RelationshipThemeDTO.js +0 -3
  29. package/dist/types/consumption/RelationshipThemeDTO.js.map +0 -1
  30. package/dist/types/consumption/SharedItemDTO.d.ts +0 -12
  31. package/dist/types/consumption/SharedItemDTO.js +0 -3
  32. package/dist/types/consumption/SharedItemDTO.js.map +0 -1
@@ -436,10 +436,10 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
436
436
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
437
437
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
438
438
  exports.buildInformation = {
439
- version: "2.0.0-beta.2",
440
- build: "88",
441
- date: "2022-07-20T13:11:40+00:00",
442
- commit: "b0f4fb5fba9d441e73f60a9882a0fcb0837abf6c",
439
+ version: "2.0.0-beta.3",
440
+ build: "89",
441
+ date: "2022-07-21T13:40:04+00:00",
442
+ commit: "2303603c9a8d836d650a9b7ead5a9b44538756b5",
443
443
  dependencies: {"@js-soft/docdb-querytranslator":"1.1.0","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.3","@js-soft/ts-utils":"^2.0.1","@nmshd/consumption":"2.0.0-alpha.30","@nmshd/content":"2.0.0-alpha.45","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.3","ajv":"^8.11.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","fluent-ts-validator":"3.0.3","json-stringify-safe":"^5.0.1","luxon":"^3.0.1","qrcode":"1.5.1","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
444
444
  libraries: {
445
445
  serval: ts_serval_1.buildInformation,
@@ -925,7 +925,7 @@ let DataViewExpander = class DataViewExpander {
925
925
  if (!localAttribute) {
926
926
  throw new Error("Attribute not found");
927
927
  }
928
- const owner = await this.expandAddress(attribute.content.owner);
928
+ const owner = attribute.content.owner;
929
929
  let name = `i18n://dvo.attribute.name.${valueType}`;
930
930
  let description = `i18n://dvo.attribute.description.${valueType}`;
931
931
  if (localAttribute.content instanceof content_1.RelationshipAttribute) {
@@ -935,7 +935,7 @@ let DataViewExpander = class DataViewExpander {
935
935
  const renderHints = localAttribute.content.value.renderHints.toJSON();
936
936
  const valueHints = localAttribute.content.value.valueHints.toJSON();
937
937
  if (localAttribute.shareInfo) {
938
- const peer = await this.expandAddress(localAttribute.shareInfo.peer.toString());
938
+ const peer = localAttribute.shareInfo.peer.toString();
939
939
  if (localAttribute.shareInfo.sourceAttribute) {
940
940
  // Own Shared Attribute
941
941
  return {
@@ -1206,12 +1206,40 @@ let DataViewExpander = class DataViewExpander {
1206
1206
  const changePromises = relationship.changes.map((change) => this.expandRelationshipChangeDTO(relationship, change));
1207
1207
  return await Promise.all(changePromises);
1208
1208
  }
1209
- async createRelationshipDVO(relationship, relationshipInfo) {
1210
- // TODO: re-enable when we can query relationship info
1211
- // if (!relationshipInfo) {
1212
- // const relationshipInfoResult = await this.consumption.relationshipInfo.getRelationshipInfoByRelationship({ relationshipId: relationship.id });
1213
- // relationshipInfo = relationshipInfoResult.value;
1214
- // }
1209
+ async createRelationshipDVO(relationship) {
1210
+ let relationshipSetting;
1211
+ const settingResult = await this.consumption.settings.getSettings({ query: { reference: relationship.id } });
1212
+ if (settingResult.value.length > 0) {
1213
+ relationshipSetting = settingResult.value[0].value;
1214
+ }
1215
+ else {
1216
+ relationshipSetting = {
1217
+ isPinned: false
1218
+ };
1219
+ }
1220
+ const nameRelevantAttributeTypes = ["DisplayName", "GivenName", "MiddleName", "Surname", "Sex"];
1221
+ const stringByType = {};
1222
+ const relationshipAttributesResult = await this.consumption.attributes.getPeerAttributes({ onlyValid: true, peer: relationship.peer });
1223
+ const expandedAttributes = await this.expandLocalAttributeDTOs(relationshipAttributesResult.value);
1224
+ const attributesByType = {};
1225
+ for (const attribute of expandedAttributes) {
1226
+ const valueType = attribute.content.value["@type"];
1227
+ const item = attributesByType[valueType];
1228
+ if (item) {
1229
+ item.push(attribute);
1230
+ }
1231
+ else {
1232
+ attributesByType[valueType] = [attribute];
1233
+ }
1234
+ if (nameRelevantAttributeTypes.includes(valueType)) {
1235
+ if (stringByType[valueType]) {
1236
+ stringByType[valueType] += ` ${attribute.content.value.value}`;
1237
+ }
1238
+ else {
1239
+ stringByType[valueType] = `${attribute.content.value.value}`;
1240
+ }
1241
+ }
1242
+ }
1215
1243
  let direction = RelationshipDVO_1.RelationshipDirection.Incoming;
1216
1244
  if (this.identityController.isMe(transport_1.CoreAddress.from(relationship.changes[0].request.createdBy))) {
1217
1245
  direction = RelationshipDVO_1.RelationshipDirection.Outgoing;
@@ -1233,55 +1261,53 @@ let DataViewExpander = class DataViewExpander {
1233
1261
  statusText = DataViewTranslateable_1.DataViewTranslateable.transport.relationshipActive;
1234
1262
  }
1235
1263
  const changes = await this.expandRelationshipChangeDTOs(relationship);
1264
+ let name;
1265
+ if (stringByType["DisplayName"]) {
1266
+ name = stringByType["DisplayName"];
1267
+ }
1268
+ else if (stringByType["GivenName"] && stringByType["Surname"]) {
1269
+ name = `${stringByType["GivenName"]} ${stringByType["Surname"]}`;
1270
+ }
1271
+ else if (stringByType["Sex"] && stringByType["Surname"]) {
1272
+ name = `i18n://dvo.identity.Salutation.${stringByType["Sex"]} ${stringByType["Surname"]}`;
1273
+ }
1274
+ else {
1275
+ name = relationship.peer.substring(3, 9);
1276
+ }
1236
1277
  return {
1237
1278
  id: relationship.id,
1238
- name: relationshipInfo?.userTitle ?? relationshipInfo?.title ?? "",
1239
- description: relationshipInfo?.userDescription ?? relationshipInfo?.description ?? "",
1279
+ name: relationshipSetting.userTitle ?? name,
1280
+ description: relationshipSetting.userDescription ?? statusText,
1240
1281
  date: relationship.changes[0].request.createdAt,
1241
1282
  image: "",
1242
1283
  type: "RelationshipDVO",
1243
1284
  status: relationship.status,
1244
1285
  statusText: statusText,
1245
1286
  direction: direction,
1246
- isPinned: relationshipInfo?.isPinned ?? false,
1247
- theme: {
1248
- image: relationshipInfo?.theme?.image,
1249
- headerImage: relationshipInfo?.theme?.imageBar,
1250
- backgroundColor: relationshipInfo?.theme?.backgroundColor,
1251
- foregroundColor: relationshipInfo?.theme?.foregroundColor
1252
- },
1287
+ isPinned: relationshipSetting.isPinned,
1288
+ attributeMap: attributesByType,
1289
+ items: expandedAttributes,
1290
+ nameMap: stringByType,
1253
1291
  changes: changes,
1254
1292
  changeCount: changes.length
1255
1293
  };
1256
1294
  }
1257
1295
  async expandRelationshipDTO(relationship) {
1258
- // TODO: re-enable when we can query relationship info
1259
- // const relationshipInfoResult = await this.consumption.relationshipInfo.getRelationshipInfoByRelationship({ relationshipId: relationship.id });
1260
- // const relationshipInfo = relationshipInfoResult.value;
1261
- // const name = relationshipInfo.userTitle ? relationshipInfo.userTitle : relationshipInfo.title;
1262
- // let description = relationshipInfo.userDescription ? relationshipInfo.userDescription : relationshipInfo.description;
1263
- const name = relationship.peer.substring(3, 9);
1264
- const initials = (name.match(/\b\w/g) ?? []).join("");
1265
1296
  const relationshipDVO = await this.createRelationshipDVO(relationship);
1266
- const description = relationshipDVO.statusText;
1267
- // TODO: re-enable when we can query relationship info
1268
- /*
1269
- if (!description) {
1270
- description = relationshipDVO.statusText;
1271
- }
1272
- */
1297
+ const initials = (relationshipDVO.name.match(/\b\w/g) ?? []).join("");
1273
1298
  return {
1274
1299
  type: "IdentityDVO",
1275
1300
  id: relationship.peer,
1276
- name: name,
1301
+ name: relationshipDVO.name,
1277
1302
  date: relationshipDVO.date,
1278
- description: description,
1303
+ description: relationshipDVO.description,
1279
1304
  publicKey: relationship.peerIdentity.publicKey,
1280
1305
  realm: relationship.peerIdentity.realm,
1281
1306
  initials,
1282
1307
  isSelf: false,
1283
1308
  hasRelationship: true,
1284
- relationship: relationshipDVO
1309
+ relationship: relationshipDVO,
1310
+ items: relationshipDVO.items
1285
1311
  };
1286
1312
  }
1287
1313
  async expandIdentityForAddress(address) {
@@ -1535,6 +1561,19 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1535
1561
 
1536
1562
  /***/ }),
1537
1563
 
1564
+ /***/ "./dist/dataViews/consumption/RelationshipSettingDVO.js":
1565
+ /*!**************************************************************!*\
1566
+ !*** ./dist/dataViews/consumption/RelationshipSettingDVO.js ***!
1567
+ \**************************************************************/
1568
+ /***/ ((__unused_webpack_module, exports) => {
1569
+
1570
+ "use strict";
1571
+
1572
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1573
+ //# sourceMappingURL=RelationshipSettingDVO.js.map
1574
+
1575
+ /***/ }),
1576
+
1538
1577
  /***/ "./dist/dataViews/consumption/index.js":
1539
1578
  /*!*********************************************!*\
1540
1579
  !*** ./dist/dataViews/consumption/index.js ***!
@@ -1562,6 +1601,7 @@ __exportStar(__webpack_require__(/*! ./DecidableRequestItemDVOs */ "./dist/dataV
1562
1601
  __exportStar(__webpack_require__(/*! ./LocalAttributeDVO */ "./dist/dataViews/consumption/LocalAttributeDVO.js"), exports);
1563
1602
  __exportStar(__webpack_require__(/*! ./LocalRequestDVO */ "./dist/dataViews/consumption/LocalRequestDVO.js"), exports);
1564
1603
  __exportStar(__webpack_require__(/*! ./PeerRelationshipTemplateDVO */ "./dist/dataViews/consumption/PeerRelationshipTemplateDVO.js"), exports);
1604
+ __exportStar(__webpack_require__(/*! ./RelationshipSettingDVO */ "./dist/dataViews/consumption/RelationshipSettingDVO.js"), exports);
1565
1605
  //# sourceMappingURL=index.js.map
1566
1606
 
1567
1607
  /***/ }),
@@ -4224,45 +4264,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
4224
4264
 
4225
4265
  /***/ }),
4226
4266
 
4227
- /***/ "./dist/types/consumption/RelationshipAttributeDTO.js":
4228
- /*!************************************************************!*\
4229
- !*** ./dist/types/consumption/RelationshipAttributeDTO.js ***!
4230
- \************************************************************/
4231
- /***/ ((__unused_webpack_module, exports) => {
4232
-
4233
- "use strict";
4234
-
4235
- Object.defineProperty(exports, "__esModule", ({ value: true }));
4236
- //# sourceMappingURL=RelationshipAttributeDTO.js.map
4237
-
4238
- /***/ }),
4239
-
4240
- /***/ "./dist/types/consumption/RelationshipInfoDTO.js":
4241
- /*!*******************************************************!*\
4242
- !*** ./dist/types/consumption/RelationshipInfoDTO.js ***!
4243
- \*******************************************************/
4244
- /***/ ((__unused_webpack_module, exports) => {
4245
-
4246
- "use strict";
4247
-
4248
- Object.defineProperty(exports, "__esModule", ({ value: true }));
4249
- //# sourceMappingURL=RelationshipInfoDTO.js.map
4250
-
4251
- /***/ }),
4252
-
4253
- /***/ "./dist/types/consumption/RelationshipThemeDTO.js":
4254
- /*!********************************************************!*\
4255
- !*** ./dist/types/consumption/RelationshipThemeDTO.js ***!
4256
- \********************************************************/
4257
- /***/ ((__unused_webpack_module, exports) => {
4258
-
4259
- "use strict";
4260
-
4261
- Object.defineProperty(exports, "__esModule", ({ value: true }));
4262
- //# sourceMappingURL=RelationshipThemeDTO.js.map
4263
-
4264
- /***/ }),
4265
-
4266
4267
  /***/ "./dist/types/consumption/RequestValidationResultDTO.js":
4267
4268
  /*!**************************************************************!*\
4268
4269
  !*** ./dist/types/consumption/RequestValidationResultDTO.js ***!
@@ -4289,19 +4290,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
4289
4290
 
4290
4291
  /***/ }),
4291
4292
 
4292
- /***/ "./dist/types/consumption/SharedItemDTO.js":
4293
- /*!*************************************************!*\
4294
- !*** ./dist/types/consumption/SharedItemDTO.js ***!
4295
- \*************************************************/
4296
- /***/ ((__unused_webpack_module, exports) => {
4297
-
4298
- "use strict";
4299
-
4300
- Object.defineProperty(exports, "__esModule", ({ value: true }));
4301
- //# sourceMappingURL=SharedItemDTO.js.map
4302
-
4303
- /***/ }),
4304
-
4305
4293
  /***/ "./dist/types/consumption/index.js":
4306
4294
  /*!*****************************************!*\
4307
4295
  !*** ./dist/types/consumption/index.js ***!
@@ -4328,12 +4316,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
4328
4316
  __exportStar(__webpack_require__(/*! ./DraftDTO */ "./dist/types/consumption/DraftDTO.js"), exports);
4329
4317
  __exportStar(__webpack_require__(/*! ./LocalAttributeDTO */ "./dist/types/consumption/LocalAttributeDTO.js"), exports);
4330
4318
  __exportStar(__webpack_require__(/*! ./LocalRequestDTO */ "./dist/types/consumption/LocalRequestDTO.js"), exports);
4331
- __exportStar(__webpack_require__(/*! ./RelationshipAttributeDTO */ "./dist/types/consumption/RelationshipAttributeDTO.js"), exports);
4332
- __exportStar(__webpack_require__(/*! ./RelationshipInfoDTO */ "./dist/types/consumption/RelationshipInfoDTO.js"), exports);
4333
- __exportStar(__webpack_require__(/*! ./RelationshipThemeDTO */ "./dist/types/consumption/RelationshipThemeDTO.js"), exports);
4334
4319
  __exportStar(__webpack_require__(/*! ./RequestValidationResultDTO */ "./dist/types/consumption/RequestValidationResultDTO.js"), exports);
4335
4320
  __exportStar(__webpack_require__(/*! ./SettingDTO */ "./dist/types/consumption/SettingDTO.js"), exports);
4336
- __exportStar(__webpack_require__(/*! ./SharedItemDTO */ "./dist/types/consumption/SharedItemDTO.js"), exports);
4337
4321
  //# sourceMappingURL=index.js.map
4338
4322
 
4339
4323
  /***/ }),