@nmshd/runtime 2.0.0-beta.9 → 2.0.0

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 (452) hide show
  1. package/dist/DatabaseSchemaUpgrader.js.map +1 -1
  2. package/dist/Runtime.d.ts +3 -2
  3. package/dist/Runtime.js +27 -7
  4. package/dist/Runtime.js.map +1 -1
  5. package/dist/RuntimeConfig.d.ts +1 -1
  6. package/dist/buildInformation.js +5 -5
  7. package/dist/dataViews/DataViewExpander.d.ts +30 -13
  8. package/dist/dataViews/DataViewExpander.js +587 -125
  9. package/dist/dataViews/DataViewExpander.js.map +1 -1
  10. package/dist/dataViews/DataViewObject.d.ts +4 -6
  11. package/dist/dataViews/common/DVOError.d.ts +4 -0
  12. package/dist/dataViews/common/{Warning.js → DVOError.js} +1 -1
  13. package/dist/dataViews/common/DVOError.js.map +1 -0
  14. package/dist/dataViews/common/DVOWarning.d.ts +4 -0
  15. package/dist/dataViews/common/{Error.js → DVOWarning.js} +1 -1
  16. package/dist/dataViews/common/DVOWarning.js.map +1 -0
  17. package/dist/dataViews/common/index.d.ts +2 -2
  18. package/dist/dataViews/common/index.js +2 -2
  19. package/dist/dataViews/common/index.js.map +1 -1
  20. package/dist/dataViews/consumption/DecidableRequestItemDVOs.d.ts +18 -8
  21. package/dist/dataViews/consumption/LocalAttributeDVO.d.ts +49 -3
  22. package/dist/dataViews/consumption/LocalAttributeListenerDVO.d.ts +11 -0
  23. package/dist/dataViews/consumption/LocalAttributeListenerDVO.js +3 -0
  24. package/dist/dataViews/consumption/LocalAttributeListenerDVO.js.map +1 -0
  25. package/dist/dataViews/consumption/LocalRequestDVO.d.ts +4 -3
  26. package/dist/dataViews/consumption/PeerRelationshipTemplateDVO.d.ts +4 -2
  27. package/dist/dataViews/consumption/index.d.ts +1 -0
  28. package/dist/dataViews/consumption/index.js +1 -0
  29. package/dist/dataViews/consumption/index.js.map +1 -1
  30. package/dist/dataViews/content/AttributeDVOs.d.ts +33 -8
  31. package/dist/dataViews/content/RequestDVO.d.ts +2 -0
  32. package/dist/dataViews/content/RequestItemDVOs.d.ts +20 -8
  33. package/dist/dataViews/content/ResponseDVO.d.ts +8 -0
  34. package/dist/{useCases/consumption/attributes/ExtendedAttributeValue.js → dataViews/content/ResponseDVO.js} +1 -1
  35. package/dist/dataViews/content/ResponseDVO.js.map +1 -0
  36. package/dist/dataViews/content/ResponseItemDVOs.d.ts +51 -0
  37. package/dist/dataViews/content/ResponseItemDVOs.js +3 -0
  38. package/dist/dataViews/content/ResponseItemDVOs.js.map +1 -0
  39. package/dist/dataViews/content/index.d.ts +2 -0
  40. package/dist/dataViews/content/index.js +2 -0
  41. package/dist/dataViews/content/index.js.map +1 -1
  42. package/dist/dataViews/transport/RelationshipDVO.d.ts +1 -0
  43. package/dist/dataViews/transport/RelationshipTemplateDVO.d.ts +2 -0
  44. package/dist/events/EventProxy.js +8 -6
  45. package/dist/events/EventProxy.js.map +1 -1
  46. package/dist/events/consumption/AttributeListenerCreatedEvent.d.ts +6 -0
  47. package/dist/events/consumption/AttributeListenerCreatedEvent.js +12 -0
  48. package/dist/events/consumption/AttributeListenerCreatedEvent.js.map +1 -0
  49. package/dist/events/consumption/AttributeListenerTriggeredEvent.d.ts +11 -0
  50. package/dist/events/consumption/AttributeListenerTriggeredEvent.js +12 -0
  51. package/dist/events/consumption/AttributeListenerTriggeredEvent.js.map +1 -0
  52. package/dist/events/consumption/MessageProcessedEvent.d.ts +15 -0
  53. package/dist/events/consumption/MessageProcessedEvent.js +18 -0
  54. package/dist/events/consumption/MessageProcessedEvent.js.map +1 -0
  55. package/dist/events/consumption/RelationshipTemplateProcessedEvent.d.ts +17 -0
  56. package/dist/events/consumption/RelationshipTemplateProcessedEvent.js +22 -0
  57. package/dist/events/consumption/RelationshipTemplateProcessedEvent.js.map +1 -0
  58. package/dist/events/consumption/index.d.ts +4 -0
  59. package/dist/events/consumption/index.js +4 -0
  60. package/dist/events/consumption/index.js.map +1 -1
  61. package/dist/extensibility/AnonymousServices.js.map +1 -1
  62. package/dist/extensibility/ConsumptionServices.d.ts +3 -2
  63. package/dist/extensibility/ConsumptionServices.js +5 -2
  64. package/dist/extensibility/ConsumptionServices.js.map +1 -1
  65. package/dist/extensibility/TransportServices.js.map +1 -1
  66. package/dist/extensibility/facades/anonymous/AnonymousTokensFacade.js.map +1 -1
  67. package/dist/extensibility/facades/consumption/AttributeListenersFacade.d.ts +10 -0
  68. package/dist/extensibility/facades/consumption/AttributeListenersFacade.js +37 -0
  69. package/dist/extensibility/facades/consumption/AttributeListenersFacade.js.map +1 -0
  70. package/dist/extensibility/facades/consumption/AttributesFacade.d.ts +8 -4
  71. package/dist/extensibility/facades/consumption/AttributesFacade.js +14 -2
  72. package/dist/extensibility/facades/consumption/AttributesFacade.js.map +1 -1
  73. package/dist/extensibility/facades/consumption/DraftsFacade.js.map +1 -1
  74. package/dist/extensibility/facades/consumption/IncomingRequestsFacade.js.map +1 -1
  75. package/dist/extensibility/facades/consumption/OutgoingRequestsFacade.d.ts +5 -3
  76. package/dist/extensibility/facades/consumption/OutgoingRequestsFacade.js +8 -2
  77. package/dist/extensibility/facades/consumption/OutgoingRequestsFacade.js.map +1 -1
  78. package/dist/extensibility/facades/consumption/SettingsFacade.js.map +1 -1
  79. package/dist/extensibility/facades/consumption/index.d.ts +1 -0
  80. package/dist/extensibility/facades/consumption/index.js +1 -0
  81. package/dist/extensibility/facades/consumption/index.js.map +1 -1
  82. package/dist/extensibility/facades/transport/AccountFacade.d.ts +4 -4
  83. package/dist/extensibility/facades/transport/AccountFacade.js +8 -8
  84. package/dist/extensibility/facades/transport/AccountFacade.js.map +1 -1
  85. package/dist/extensibility/facades/transport/ChallengesFacade.js.map +1 -1
  86. package/dist/extensibility/facades/transport/DevicesFacade.js.map +1 -1
  87. package/dist/extensibility/facades/transport/FilesFacade.d.ts +4 -4
  88. package/dist/extensibility/facades/transport/FilesFacade.js +5 -5
  89. package/dist/extensibility/facades/transport/FilesFacade.js.map +1 -1
  90. package/dist/extensibility/facades/transport/IdentityFacade.js.map +1 -1
  91. package/dist/extensibility/facades/transport/MessagesFacade.js.map +1 -1
  92. package/dist/extensibility/facades/transport/RelationshipTemplatesFacade.js.map +1 -1
  93. package/dist/extensibility/facades/transport/RelationshipsFacade.d.ts +2 -4
  94. package/dist/extensibility/facades/transport/RelationshipsFacade.js +1 -7
  95. package/dist/extensibility/facades/transport/RelationshipsFacade.js.map +1 -1
  96. package/dist/extensibility/facades/transport/TokensFacade.js.map +1 -1
  97. package/dist/modules/AttributeListenerModule.d.ts +9 -0
  98. package/dist/modules/AttributeListenerModule.js +87 -0
  99. package/dist/modules/AttributeListenerModule.js.map +1 -0
  100. package/dist/modules/DeciderModule.d.ts +2 -0
  101. package/dist/modules/DeciderModule.js +29 -3
  102. package/dist/modules/DeciderModule.js.map +1 -1
  103. package/dist/modules/MessageModule.js +1 -1
  104. package/dist/modules/MessageModule.js.map +1 -1
  105. package/dist/modules/RequestModule.js +43 -50
  106. package/dist/modules/RequestModule.js.map +1 -1
  107. package/dist/modules/index.d.ts +1 -0
  108. package/dist/modules/index.js +1 -0
  109. package/dist/modules/index.js.map +1 -1
  110. package/dist/types/consumption/LocalAttributeDTO.d.ts +1 -0
  111. package/dist/types/consumption/LocalAttributeListenerDTO.d.ts +6 -0
  112. package/dist/types/consumption/LocalAttributeListenerDTO.js +3 -0
  113. package/dist/types/consumption/LocalAttributeListenerDTO.js.map +1 -0
  114. package/dist/types/consumption/index.d.ts +1 -0
  115. package/dist/types/consumption/index.js +1 -0
  116. package/dist/types/consumption/index.js.map +1 -1
  117. package/dist/types/transport/RelationshipTemplateDTO.d.ts +0 -1
  118. package/dist/useCases/anonymous/tokens/LoadPeerTokenAnonymousByIdAndKey.d.ts +5 -5
  119. package/dist/useCases/anonymous/tokens/LoadPeerTokenAnonymousByIdAndKey.js +9 -7
  120. package/dist/useCases/anonymous/tokens/LoadPeerTokenAnonymousByIdAndKey.js.map +1 -1
  121. package/dist/useCases/anonymous/tokens/LoadPeerTokenAnonymousByTruncatedReference.d.ts +5 -5
  122. package/dist/useCases/anonymous/tokens/LoadPeerTokenAnonymousByTruncatedReference.js +9 -6
  123. package/dist/useCases/anonymous/tokens/LoadPeerTokenAnonymousByTruncatedReference.js.map +1 -1
  124. package/dist/useCases/common/RuntimeErrors.d.ts +2 -19
  125. package/dist/useCases/common/RuntimeErrors.js +7 -46
  126. package/dist/useCases/common/RuntimeErrors.js.map +1 -1
  127. package/dist/useCases/common/SchemaRepository.js +1 -1
  128. package/dist/useCases/common/SchemaRepository.js.map +1 -1
  129. package/dist/useCases/common/Schemas.d.ts +21 -13
  130. package/dist/useCases/common/Schemas.js +15587 -2913
  131. package/dist/useCases/common/Schemas.js.map +1 -1
  132. package/dist/useCases/common/UseCase.js +1 -4
  133. package/dist/useCases/common/UseCase.js.map +1 -1
  134. package/dist/useCases/common/index.d.ts +3 -4
  135. package/dist/useCases/common/index.js +3 -4
  136. package/dist/useCases/common/index.js.map +1 -1
  137. package/dist/useCases/common/validation/IValidator.d.ts +1 -1
  138. package/dist/useCases/common/validation/SchemaValidator.d.ts +2 -2
  139. package/dist/useCases/common/validation/SchemaValidator.js +5 -3
  140. package/dist/useCases/common/validation/SchemaValidator.js.map +1 -1
  141. package/dist/useCases/common/validation/ValidatableStrings.d.ts +73 -0
  142. package/dist/useCases/common/validation/ValidatableStrings.js +3 -0
  143. package/dist/useCases/common/validation/ValidatableStrings.js.map +1 -0
  144. package/dist/useCases/common/validation/ValidationFailure.d.ts +6 -0
  145. package/dist/useCases/common/validation/ValidationFailure.js +11 -0
  146. package/dist/useCases/common/validation/ValidationFailure.js.map +1 -0
  147. package/dist/useCases/common/validation/ValidationResult.d.ts +11 -0
  148. package/dist/useCases/common/validation/ValidationResult.js +31 -0
  149. package/dist/useCases/common/validation/ValidationResult.js.map +1 -0
  150. package/dist/useCases/consumption/attributeListeners/AttributeListenerMapper.d.ts +6 -0
  151. package/dist/useCases/consumption/attributeListeners/AttributeListenerMapper.js +17 -0
  152. package/dist/useCases/consumption/attributeListeners/AttributeListenerMapper.js.map +1 -0
  153. package/dist/useCases/consumption/attributeListeners/GetAttributeListener.d.ts +16 -0
  154. package/dist/useCases/consumption/attributeListeners/GetAttributeListener.js +51 -0
  155. package/dist/useCases/consumption/attributeListeners/GetAttributeListener.js.map +1 -0
  156. package/dist/useCases/consumption/attributeListeners/GetAttributeListeners.d.ts +9 -0
  157. package/dist/useCases/consumption/attributeListeners/GetAttributeListeners.js +37 -0
  158. package/dist/useCases/consumption/attributeListeners/GetAttributeListeners.js.map +1 -0
  159. package/dist/useCases/consumption/attributeListeners/index.d.ts +3 -0
  160. package/dist/useCases/consumption/attributeListeners/index.js +20 -0
  161. package/dist/useCases/consumption/attributeListeners/index.js.map +1 -0
  162. package/dist/useCases/consumption/attributes/AttributeMapper.js +1 -0
  163. package/dist/useCases/consumption/attributes/AttributeMapper.js.map +1 -1
  164. package/dist/useCases/consumption/attributes/CreateAttribute.d.ts +4 -4
  165. package/dist/useCases/consumption/attributes/CreateAttribute.js +1 -1
  166. package/dist/useCases/consumption/attributes/CreateAttribute.js.map +1 -1
  167. package/dist/useCases/consumption/attributes/CreateSharedAttributeCopy.d.ts +6 -15
  168. package/dist/useCases/consumption/attributes/CreateSharedAttributeCopy.js +1 -1
  169. package/dist/useCases/consumption/attributes/CreateSharedAttributeCopy.js.map +1 -1
  170. package/dist/useCases/consumption/attributes/DeleteAttribute.d.ts +4 -7
  171. package/dist/useCases/consumption/attributes/DeleteAttribute.js +1 -1
  172. package/dist/useCases/consumption/attributes/DeleteAttribute.js.map +1 -1
  173. package/dist/useCases/consumption/attributes/ExecuteIdentityAttributeQuery.d.ts +2 -2
  174. package/dist/useCases/consumption/attributes/ExecuteIdentityAttributeQuery.js +1 -1
  175. package/dist/useCases/consumption/attributes/ExecuteIdentityAttributeQuery.js.map +1 -1
  176. package/dist/useCases/consumption/attributes/ExecuteRelationshipAttributeQuery.d.ts +4 -4
  177. package/dist/useCases/consumption/attributes/ExecuteRelationshipAttributeQuery.js +6 -3
  178. package/dist/useCases/consumption/attributes/ExecuteRelationshipAttributeQuery.js.map +1 -1
  179. package/dist/useCases/consumption/attributes/ExecuteThirdPartyRelationshipAttributeQuery.d.ts +13 -0
  180. package/dist/useCases/consumption/attributes/ExecuteThirdPartyRelationshipAttributeQuery.js +40 -0
  181. package/dist/useCases/consumption/attributes/ExecuteThirdPartyRelationshipAttributeQuery.js.map +1 -0
  182. package/dist/useCases/consumption/attributes/GetAttribute.d.ts +4 -7
  183. package/dist/useCases/consumption/attributes/GetAttribute.js +2 -3
  184. package/dist/useCases/consumption/attributes/GetAttribute.js.map +1 -1
  185. package/dist/useCases/consumption/attributes/GetAttributes.d.ts +3 -2
  186. package/dist/useCases/consumption/attributes/GetAttributes.js +3 -1
  187. package/dist/useCases/consumption/attributes/GetAttributes.js.map +1 -1
  188. package/dist/useCases/consumption/attributes/GetPeerAttributes.d.ts +2 -2
  189. package/dist/useCases/consumption/attributes/GetPeerAttributes.js +1 -1
  190. package/dist/useCases/consumption/attributes/GetPeerAttributes.js.map +1 -1
  191. package/dist/useCases/consumption/attributes/GetSharedToPeerAttributes.d.ts +2 -2
  192. package/dist/useCases/consumption/attributes/GetSharedToPeerAttributes.js +1 -1
  193. package/dist/useCases/consumption/attributes/GetSharedToPeerAttributes.js.map +1 -1
  194. package/dist/useCases/consumption/attributes/ShareAttribute.d.ts +26 -0
  195. package/dist/useCases/consumption/attributes/ShareAttribute.js +84 -0
  196. package/dist/useCases/consumption/attributes/ShareAttribute.js.map +1 -0
  197. package/dist/useCases/consumption/attributes/SucceedAttribute.d.ts +6 -9
  198. package/dist/useCases/consumption/attributes/SucceedAttribute.js +1 -1
  199. package/dist/useCases/consumption/attributes/SucceedAttribute.js.map +1 -1
  200. package/dist/useCases/consumption/attributes/UpdateAttribute.d.ts +6 -9
  201. package/dist/useCases/consumption/attributes/UpdateAttribute.js +1 -1
  202. package/dist/useCases/consumption/attributes/UpdateAttribute.js.map +1 -1
  203. package/dist/useCases/consumption/attributes/index.d.ts +2 -0
  204. package/dist/useCases/consumption/attributes/index.js +2 -0
  205. package/dist/useCases/consumption/attributes/index.js.map +1 -1
  206. package/dist/useCases/consumption/drafts/CreateDraft.d.ts +4 -4
  207. package/dist/useCases/consumption/drafts/CreateDraft.js +9 -7
  208. package/dist/useCases/consumption/drafts/CreateDraft.js.map +1 -1
  209. package/dist/useCases/consumption/drafts/DeleteDraft.d.ts +5 -5
  210. package/dist/useCases/consumption/drafts/DeleteDraft.js +9 -8
  211. package/dist/useCases/consumption/drafts/DeleteDraft.js.map +1 -1
  212. package/dist/useCases/consumption/drafts/GetDraft.d.ts +5 -5
  213. package/dist/useCases/consumption/drafts/GetDraft.js +9 -5
  214. package/dist/useCases/consumption/drafts/GetDraft.js.map +1 -1
  215. package/dist/useCases/consumption/drafts/GetDrafts.d.ts +6 -2
  216. package/dist/useCases/consumption/drafts/GetDrafts.js +10 -1
  217. package/dist/useCases/consumption/drafts/GetDrafts.js.map +1 -1
  218. package/dist/useCases/consumption/drafts/UpdateDraft.d.ts +5 -5
  219. package/dist/useCases/consumption/drafts/UpdateDraft.js +9 -7
  220. package/dist/useCases/consumption/drafts/UpdateDraft.js.map +1 -1
  221. package/dist/useCases/consumption/index.d.ts +1 -0
  222. package/dist/useCases/consumption/index.js +1 -0
  223. package/dist/useCases/consumption/index.js.map +1 -1
  224. package/dist/useCases/consumption/requests/AcceptIncomingRequest.js.map +1 -1
  225. package/dist/useCases/consumption/requests/CanAcceptIncomingRequest.js.map +1 -1
  226. package/dist/useCases/consumption/requests/CanCreateOutgoingRequest.d.ts +8 -4
  227. package/dist/useCases/consumption/requests/CanCreateOutgoingRequest.js +8 -5
  228. package/dist/useCases/consumption/requests/CanCreateOutgoingRequest.js.map +1 -1
  229. package/dist/useCases/consumption/requests/CanRejectIncomingRequest.js.map +1 -1
  230. package/dist/useCases/consumption/requests/CheckPrerequisitesOfIncomingRequest.d.ts +3 -10
  231. package/dist/useCases/consumption/requests/CheckPrerequisitesOfIncomingRequest.js +8 -13
  232. package/dist/useCases/consumption/requests/CheckPrerequisitesOfIncomingRequest.js.map +1 -1
  233. package/dist/useCases/consumption/requests/CompleteIncomingRequest.d.ts +5 -14
  234. package/dist/useCases/consumption/requests/CompleteIncomingRequest.js +23 -33
  235. package/dist/useCases/consumption/requests/CompleteIncomingRequest.js.map +1 -1
  236. package/dist/useCases/consumption/requests/CompleteOutgoingRequest.d.ts +3 -10
  237. package/dist/useCases/consumption/requests/CompleteOutgoingRequest.js +9 -16
  238. package/dist/useCases/consumption/requests/CompleteOutgoingRequest.js.map +1 -1
  239. package/dist/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.d.ts +3 -9
  240. package/dist/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js.map +1 -1
  241. package/dist/useCases/consumption/requests/CreateOutgoingRequest.d.ts +4 -7
  242. package/dist/useCases/consumption/requests/CreateOutgoingRequest.js +2 -4
  243. package/dist/useCases/consumption/requests/CreateOutgoingRequest.js.map +1 -1
  244. package/dist/useCases/consumption/requests/DiscardOutgoingRequest.d.ts +11 -0
  245. package/dist/useCases/consumption/requests/DiscardOutgoingRequest.js +41 -0
  246. package/dist/useCases/consumption/requests/DiscardOutgoingRequest.js.map +1 -0
  247. package/dist/useCases/consumption/requests/GetIncomingRequest.d.ts +2 -5
  248. package/dist/useCases/consumption/requests/GetIncomingRequest.js.map +1 -1
  249. package/dist/useCases/consumption/requests/GetIncomingRequests.js.map +1 -1
  250. package/dist/useCases/consumption/requests/GetOutgoingRequest.d.ts +2 -5
  251. package/dist/useCases/consumption/requests/GetOutgoingRequest.js.map +1 -1
  252. package/dist/useCases/consumption/requests/GetOutgoingRequests.js.map +1 -1
  253. package/dist/useCases/consumption/requests/ReceivedIncomingRequest.d.ts +2 -6
  254. package/dist/useCases/consumption/requests/ReceivedIncomingRequest.js +2 -2
  255. package/dist/useCases/consumption/requests/ReceivedIncomingRequest.js.map +1 -1
  256. package/dist/useCases/consumption/requests/RejectIncomingRequest.js.map +1 -1
  257. package/dist/useCases/consumption/requests/RequestMapper.js.map +1 -1
  258. package/dist/useCases/consumption/requests/RequireManualDecisionOfIncomingRequest.d.ts +2 -5
  259. package/dist/useCases/consumption/requests/RequireManualDecisionOfIncomingRequest.js.map +1 -1
  260. package/dist/useCases/consumption/requests/SentOutgoingRequest.d.ts +3 -9
  261. package/dist/useCases/consumption/requests/SentOutgoingRequest.js.map +1 -1
  262. package/dist/useCases/consumption/requests/index.d.ts +2 -0
  263. package/dist/useCases/consumption/requests/index.js +2 -0
  264. package/dist/useCases/consumption/requests/index.js.map +1 -1
  265. package/dist/useCases/consumption/settings/CreateSetting.d.ts +8 -8
  266. package/dist/useCases/consumption/settings/CreateSetting.js +9 -13
  267. package/dist/useCases/consumption/settings/CreateSetting.js.map +1 -1
  268. package/dist/useCases/consumption/settings/DeleteSetting.d.ts +5 -5
  269. package/dist/useCases/consumption/settings/DeleteSetting.js +9 -6
  270. package/dist/useCases/consumption/settings/DeleteSetting.js.map +1 -1
  271. package/dist/useCases/consumption/settings/GetSetting.d.ts +5 -5
  272. package/dist/useCases/consumption/settings/GetSetting.js +9 -6
  273. package/dist/useCases/consumption/settings/GetSetting.js.map +1 -1
  274. package/dist/useCases/consumption/settings/GetSettings.d.ts +6 -2
  275. package/dist/useCases/consumption/settings/GetSettings.js +10 -1
  276. package/dist/useCases/consumption/settings/GetSettings.js.map +1 -1
  277. package/dist/useCases/consumption/settings/UpdateSetting.d.ts +5 -5
  278. package/dist/useCases/consumption/settings/UpdateSetting.js +9 -7
  279. package/dist/useCases/consumption/settings/UpdateSetting.js.map +1 -1
  280. package/dist/useCases/transport/account/DisableAutoSync.js.map +1 -1
  281. package/dist/useCases/transport/account/EnableAutoSync.js.map +1 -1
  282. package/dist/useCases/transport/account/GetDeviceInfo.js.map +1 -1
  283. package/dist/useCases/transport/account/GetIdentityInfo.js.map +1 -1
  284. package/dist/useCases/transport/account/GetSyncInfo.js.map +1 -1
  285. package/dist/useCases/transport/account/LoadItemFromTruncatedReference.d.ts +34 -0
  286. package/dist/useCases/transport/account/LoadItemFromTruncatedReference.js +112 -0
  287. package/dist/useCases/transport/account/LoadItemFromTruncatedReference.js.map +1 -0
  288. package/dist/useCases/transport/account/RegisterPushNotificationToken.d.ts +3 -3
  289. package/dist/useCases/transport/account/RegisterPushNotificationToken.js +8 -13
  290. package/dist/useCases/transport/account/RegisterPushNotificationToken.js.map +1 -1
  291. package/dist/useCases/transport/account/SyncDatawallet.js.map +1 -1
  292. package/dist/useCases/transport/account/SyncEverything.js.map +1 -1
  293. package/dist/useCases/transport/account/index.d.ts +1 -0
  294. package/dist/useCases/transport/account/index.js +1 -0
  295. package/dist/useCases/transport/account/index.js.map +1 -1
  296. package/dist/useCases/transport/challenges/CreateChallenge.d.ts +2 -6
  297. package/dist/useCases/transport/challenges/CreateChallenge.js +3 -4
  298. package/dist/useCases/transport/challenges/CreateChallenge.js.map +1 -1
  299. package/dist/useCases/transport/challenges/ValidateChallenge.d.ts +2 -3
  300. package/dist/useCases/transport/challenges/ValidateChallenge.js +7 -7
  301. package/dist/useCases/transport/challenges/ValidateChallenge.js.map +1 -1
  302. package/dist/useCases/transport/devices/CreateDevice.d.ts +4 -4
  303. package/dist/useCases/transport/devices/CreateDevice.js +9 -8
  304. package/dist/useCases/transport/devices/CreateDevice.js.map +1 -1
  305. package/dist/useCases/transport/devices/CreateDeviceOnboardingToken.d.ts +6 -6
  306. package/dist/useCases/transport/devices/CreateDeviceOnboardingToken.js +10 -15
  307. package/dist/useCases/transport/devices/CreateDeviceOnboardingToken.js.map +1 -1
  308. package/dist/useCases/transport/devices/DeleteDevice.d.ts +5 -5
  309. package/dist/useCases/transport/devices/DeleteDevice.js +9 -8
  310. package/dist/useCases/transport/devices/DeleteDevice.js.map +1 -1
  311. package/dist/useCases/transport/devices/GetDevice.d.ts +5 -5
  312. package/dist/useCases/transport/devices/GetDevice.js +9 -6
  313. package/dist/useCases/transport/devices/GetDevice.js.map +1 -1
  314. package/dist/useCases/transport/devices/GetDeviceOnboardingInfo.d.ts +7 -3
  315. package/dist/useCases/transport/devices/GetDeviceOnboardingInfo.js +10 -1
  316. package/dist/useCases/transport/devices/GetDeviceOnboardingInfo.js.map +1 -1
  317. package/dist/useCases/transport/devices/GetDevices.js.map +1 -1
  318. package/dist/useCases/transport/devices/UpdateDevice.d.ts +5 -5
  319. package/dist/useCases/transport/devices/UpdateDevice.js +9 -8
  320. package/dist/useCases/transport/devices/UpdateDevice.js.map +1 -1
  321. package/dist/useCases/transport/files/CreateQrCodeForFile.d.ts +2 -5
  322. package/dist/useCases/transport/files/CreateQrCodeForFile.js.map +1 -1
  323. package/dist/useCases/transport/files/CreateTokenForFile.d.ts +3 -9
  324. package/dist/useCases/transport/files/CreateTokenForFile.js.map +1 -1
  325. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.d.ts +3 -9
  326. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js.map +1 -1
  327. package/dist/useCases/transport/files/DownloadFile.d.ts +2 -5
  328. package/dist/useCases/transport/files/DownloadFile.js.map +1 -1
  329. package/dist/useCases/transport/files/GetFile.d.ts +2 -5
  330. package/dist/useCases/transport/files/GetFile.js.map +1 -1
  331. package/dist/useCases/transport/files/GetFiles.d.ts +6 -2
  332. package/dist/useCases/transport/files/GetFiles.js +10 -1
  333. package/dist/useCases/transport/files/GetFiles.js.map +1 -1
  334. package/dist/useCases/transport/files/{LoadPeerFile.d.ts → GetOrLoadFile.d.ts} +10 -17
  335. package/dist/useCases/transport/files/{LoadPeerFile.js → GetOrLoadFile.js} +21 -22
  336. package/dist/useCases/transport/files/GetOrLoadFile.js.map +1 -0
  337. package/dist/useCases/transport/files/UploadOwnFile.d.ts +9 -5
  338. package/dist/useCases/transport/files/UploadOwnFile.js +25 -23
  339. package/dist/useCases/transport/files/UploadOwnFile.js.map +1 -1
  340. package/dist/useCases/transport/files/index.d.ts +1 -1
  341. package/dist/useCases/transport/files/index.js +1 -1
  342. package/dist/useCases/transport/files/index.js.map +1 -1
  343. package/dist/useCases/transport/identity/CheckIdentity.d.ts +5 -5
  344. package/dist/useCases/transport/identity/CheckIdentity.js +9 -6
  345. package/dist/useCases/transport/identity/CheckIdentity.js.map +1 -1
  346. package/dist/useCases/transport/messages/DownloadAttachment.d.ts +6 -6
  347. package/dist/useCases/transport/messages/DownloadAttachment.js +9 -9
  348. package/dist/useCases/transport/messages/DownloadAttachment.js.map +1 -1
  349. package/dist/useCases/transport/messages/GetAttachmentMetadata.d.ts +6 -6
  350. package/dist/useCases/transport/messages/GetAttachmentMetadata.js +9 -9
  351. package/dist/useCases/transport/messages/GetAttachmentMetadata.js.map +1 -1
  352. package/dist/useCases/transport/messages/GetMessage.d.ts +5 -5
  353. package/dist/useCases/transport/messages/GetMessage.js +9 -8
  354. package/dist/useCases/transport/messages/GetMessage.js.map +1 -1
  355. package/dist/useCases/transport/messages/GetMessages.d.ts +4 -4
  356. package/dist/useCases/transport/messages/GetMessages.js +9 -5
  357. package/dist/useCases/transport/messages/GetMessages.js.map +1 -1
  358. package/dist/useCases/transport/messages/SendMessage.d.ts +9 -6
  359. package/dist/useCases/transport/messages/SendMessage.js +9 -9
  360. package/dist/useCases/transport/messages/SendMessage.js.map +1 -1
  361. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.d.ts +8 -9
  362. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.js +20 -18
  363. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.js.map +1 -1
  364. package/dist/useCases/transport/relationshipTemplates/CreateQrCodeForOwnRelationshipTemplate.d.ts +5 -5
  365. package/dist/useCases/transport/relationshipTemplates/CreateQrCodeForOwnRelationshipTemplate.js +9 -6
  366. package/dist/useCases/transport/relationshipTemplates/CreateQrCodeForOwnRelationshipTemplate.js.map +1 -1
  367. package/dist/useCases/transport/relationshipTemplates/CreateTokenForOwnRelationshipTemplate.d.ts +6 -6
  368. package/dist/useCases/transport/relationshipTemplates/CreateTokenForOwnRelationshipTemplate.js +9 -7
  369. package/dist/useCases/transport/relationshipTemplates/CreateTokenForOwnRelationshipTemplate.js.map +1 -1
  370. package/dist/useCases/transport/relationshipTemplates/CreateTokenQrCodeForOwnRelationshipTemplate.d.ts +6 -6
  371. package/dist/useCases/transport/relationshipTemplates/CreateTokenQrCodeForOwnRelationshipTemplate.js +9 -7
  372. package/dist/useCases/transport/relationshipTemplates/CreateTokenQrCodeForOwnRelationshipTemplate.js.map +1 -1
  373. package/dist/useCases/transport/relationshipTemplates/GetRelationshipTemplate.d.ts +5 -5
  374. package/dist/useCases/transport/relationshipTemplates/GetRelationshipTemplate.js +9 -6
  375. package/dist/useCases/transport/relationshipTemplates/GetRelationshipTemplate.js.map +1 -1
  376. package/dist/useCases/transport/relationshipTemplates/GetRelationshipTemplates.d.ts +6 -3
  377. package/dist/useCases/transport/relationshipTemplates/GetRelationshipTemplates.js +12 -5
  378. package/dist/useCases/transport/relationshipTemplates/GetRelationshipTemplates.js.map +1 -1
  379. package/dist/useCases/transport/relationshipTemplates/LoadPeerRelationshipTemplate.d.ts +3 -10
  380. package/dist/useCases/transport/relationshipTemplates/LoadPeerRelationshipTemplate.js +3 -4
  381. package/dist/useCases/transport/relationshipTemplates/LoadPeerRelationshipTemplate.js.map +1 -1
  382. package/dist/useCases/transport/relationshipTemplates/RelationshipTemplateMapper.js +0 -1
  383. package/dist/useCases/transport/relationshipTemplates/RelationshipTemplateMapper.js.map +1 -1
  384. package/dist/useCases/transport/relationships/AcceptRelationshipChange.d.ts +6 -6
  385. package/dist/useCases/transport/relationships/AcceptRelationshipChange.js +9 -8
  386. package/dist/useCases/transport/relationships/AcceptRelationshipChange.js.map +1 -1
  387. package/dist/useCases/transport/relationships/CreateRelationship.d.ts +5 -5
  388. package/dist/useCases/transport/relationships/CreateRelationship.js +9 -7
  389. package/dist/useCases/transport/relationships/CreateRelationship.js.map +1 -1
  390. package/dist/useCases/transport/relationships/GetAttributesForRelationship.d.ts +4 -4
  391. package/dist/useCases/transport/relationships/GetAttributesForRelationship.js +1 -1
  392. package/dist/useCases/transport/relationships/GetAttributesForRelationship.js.map +1 -1
  393. package/dist/useCases/transport/relationships/GetRelationship.d.ts +5 -5
  394. package/dist/useCases/transport/relationships/GetRelationship.js +9 -6
  395. package/dist/useCases/transport/relationships/GetRelationship.js.map +1 -1
  396. package/dist/useCases/transport/relationships/GetRelationshipByAddress.d.ts +5 -5
  397. package/dist/useCases/transport/relationships/GetRelationshipByAddress.js +9 -6
  398. package/dist/useCases/transport/relationships/GetRelationshipByAddress.js.map +1 -1
  399. package/dist/useCases/transport/relationships/GetRelationships.d.ts +6 -2
  400. package/dist/useCases/transport/relationships/GetRelationships.js +10 -1
  401. package/dist/useCases/transport/relationships/GetRelationships.js.map +1 -1
  402. package/dist/useCases/transport/relationships/RejectRelationshipChange.d.ts +6 -6
  403. package/dist/useCases/transport/relationships/RejectRelationshipChange.js +9 -8
  404. package/dist/useCases/transport/relationships/RejectRelationshipChange.js.map +1 -1
  405. package/dist/useCases/transport/relationships/RevokeRelationshipChange.d.ts +6 -6
  406. package/dist/useCases/transport/relationships/RevokeRelationshipChange.js +9 -8
  407. package/dist/useCases/transport/relationships/RevokeRelationshipChange.js.map +1 -1
  408. package/dist/useCases/transport/relationships/index.d.ts +0 -1
  409. package/dist/useCases/transport/relationships/index.js +0 -1
  410. package/dist/useCases/transport/relationships/index.js.map +1 -1
  411. package/dist/useCases/transport/tokens/CreateOwnToken.d.ts +6 -5
  412. package/dist/useCases/transport/tokens/CreateOwnToken.js +19 -14
  413. package/dist/useCases/transport/tokens/CreateOwnToken.js.map +1 -1
  414. package/dist/useCases/transport/tokens/GetQRCodeForToken.d.ts +5 -5
  415. package/dist/useCases/transport/tokens/GetQRCodeForToken.js +9 -6
  416. package/dist/useCases/transport/tokens/GetQRCodeForToken.js.map +1 -1
  417. package/dist/useCases/transport/tokens/GetToken.d.ts +5 -5
  418. package/dist/useCases/transport/tokens/GetToken.js +9 -6
  419. package/dist/useCases/transport/tokens/GetToken.js.map +1 -1
  420. package/dist/useCases/transport/tokens/GetTokens.d.ts +6 -2
  421. package/dist/useCases/transport/tokens/GetTokens.js +10 -1
  422. package/dist/useCases/transport/tokens/GetTokens.js.map +1 -1
  423. package/dist/useCases/transport/tokens/LoadPeerToken.d.ts +21 -10
  424. package/dist/useCases/transport/tokens/LoadPeerToken.js +36 -35
  425. package/dist/useCases/transport/tokens/LoadPeerToken.js.map +1 -1
  426. package/lib-web/nmshd.runtime.js +48486 -45079
  427. package/lib-web/nmshd.runtime.js.map +1 -1
  428. package/lib-web/nmshd.runtime.min.js +7 -7
  429. package/lib-web/nmshd.runtime.min.js.map +1 -1
  430. package/package.json +24 -30
  431. package/dist/dataViews/common/Error.d.ts +0 -4
  432. package/dist/dataViews/common/Error.js.map +0 -1
  433. package/dist/dataViews/common/Warning.d.ts +0 -4
  434. package/dist/dataViews/common/Warning.js.map +0 -1
  435. package/dist/useCases/common/RuntimeValidator.d.ts +0 -4
  436. package/dist/useCases/common/RuntimeValidator.js +0 -14
  437. package/dist/useCases/common/RuntimeValidator.js.map +0 -1
  438. package/dist/useCases/common/validation/AddressValidator.d.ts +0 -6
  439. package/dist/useCases/common/validation/AddressValidator.js +0 -25
  440. package/dist/useCases/common/validation/AddressValidator.js.map +0 -1
  441. package/dist/useCases/common/validation/DateValidator.d.ts +0 -6
  442. package/dist/useCases/common/validation/DateValidator.js +0 -26
  443. package/dist/useCases/common/validation/DateValidator.js.map +0 -1
  444. package/dist/useCases/common/validation/IdValidator.d.ts +0 -7
  445. package/dist/useCases/common/validation/IdValidator.js +0 -25
  446. package/dist/useCases/common/validation/IdValidator.js.map +0 -1
  447. package/dist/useCases/consumption/attributes/ExtendedAttributeValue.d.ts +0 -10
  448. package/dist/useCases/consumption/attributes/ExtendedAttributeValue.js.map +0 -1
  449. package/dist/useCases/transport/files/LoadPeerFile.js.map +0 -1
  450. package/dist/useCases/transport/relationships/CreateRelationshipChange.d.ts +0 -18
  451. package/dist/useCases/transport/relationships/CreateRelationshipChange.js +0 -47
  452. package/dist/useCases/transport/relationships/CreateRelationshipChange.js.map +0 -1
@@ -88,7 +88,7 @@ let DataViewExpander = class DataViewExpander {
88
88
  }
89
89
  return await this.expandLocalAttributeDTO(content);
90
90
  default:
91
- throw useCases_1.RuntimeErrors.general.notImplemented();
91
+ throw useCases_1.RuntimeErrors.general.notSupported(`No expander is defined for the @type '${type}'.`);
92
92
  }
93
93
  }
94
94
  async expandMessageDTO(message) {
@@ -236,40 +236,54 @@ let DataViewExpander = class DataViewExpander {
236
236
  async expandRelationshipTemplateDTO(template) {
237
237
  let onNewRelationship;
238
238
  let onExistingRelationship;
239
- let name = "i18n://dvo.template.name";
240
- if (template.content["@type"] === "RelationshipTemplateBody") {
241
- const templateBody = content_1.RelationshipTemplateBody.from(template.content).toJSON();
242
- if (templateBody.title) {
243
- name = templateBody.title;
239
+ const createdBy = await this.expandAddress(template.createdBy);
240
+ const type = template.isOwn ? "RelationshipTemplateDVO" : "PeerRelationshipTemplateDVO";
241
+ let name = template.isOwn ? "i18n://dvo.template.outgoing.name" : "i18n://dvo.template.incoming.name";
242
+ const description = template.isOwn ? "i18n://dvo.template.outgoing.description" : "i18n://dvo.template.incoming.description";
243
+ let expandedLocalRequest;
244
+ if (template.content["@type"] === "RelationshipTemplateContent") {
245
+ const templateContent = content_1.RelationshipTemplateContent.from(template.content).toJSON();
246
+ if (templateContent.title) {
247
+ name = templateContent.title;
244
248
  }
245
249
  let localRequest;
246
250
  if (!template.isOwn) {
247
- const onNewRelationshipRequest = await this.consumption.incomingRequests.getRequests({
251
+ const incomingRequestResult = await this.consumption.incomingRequests.getRequests({
248
252
  query: {
249
- "source.reference": template.id
253
+ "source.reference": template.id,
254
+ status: consumption_1.LocalRequestStatus.ManualDecisionRequired
250
255
  }
251
256
  });
252
- localRequest = onNewRelationshipRequest.value[0];
253
- return {
254
- name,
255
- type: "PeerRelationshipTemplateDVO",
256
- date: template.createdAt,
257
- ...template,
258
- createdBy: await this.expandAddress(template.createdBy),
259
- onNewRelationship: await this.expandLocalRequestDTO(localRequest)
260
- };
257
+ if (incomingRequestResult.value.length > 0) {
258
+ localRequest = incomingRequestResult.value[0];
259
+ expandedLocalRequest = await this.expandLocalRequestDTO(localRequest);
260
+ }
261
+ else {
262
+ const completedRequestResult = await this.consumption.incomingRequests.getRequests({
263
+ query: {
264
+ "source.reference": template.id,
265
+ status: [consumption_1.LocalRequestStatus.Decided, consumption_1.LocalRequestStatus.Completed]
266
+ }
267
+ });
268
+ if (completedRequestResult.value.length > 0) {
269
+ localRequest = completedRequestResult.value[0];
270
+ expandedLocalRequest = await this.expandLocalRequestDTO(localRequest);
271
+ }
272
+ }
261
273
  }
262
- onNewRelationship = await this.expandRequest(templateBody.onNewRelationship);
263
- if (templateBody.onExistingRelationship) {
264
- onExistingRelationship = await this.expandRequest(templateBody.onExistingRelationship);
274
+ onNewRelationship = await this.expandRequest(templateContent.onNewRelationship);
275
+ if (templateContent.onExistingRelationship) {
276
+ onExistingRelationship = await this.expandRequest(templateContent.onExistingRelationship);
265
277
  }
266
278
  }
267
279
  return {
268
280
  name,
269
- type: "RelationshipTemplateDVO",
281
+ description,
282
+ type,
270
283
  date: template.createdAt,
271
284
  ...template,
272
- createdBy: await this.expandAddress(template.createdBy),
285
+ createdBy,
286
+ request: expandedLocalRequest,
273
287
  onNewRelationship,
274
288
  onExistingRelationship
275
289
  };
@@ -278,11 +292,13 @@ let DataViewExpander = class DataViewExpander {
278
292
  const templatePromises = templates.map((template) => this.expandRelationshipTemplateDTO(template));
279
293
  return await Promise.all(templatePromises);
280
294
  }
281
- async expandRequest(request, localRequestDTO) {
295
+ async expandRequest(request, localRequestDTO, localResponseDVO) {
282
296
  const id = request.id ? request.id : "";
283
297
  const itemDVOs = [];
284
- for (const requestItem of request.items) {
285
- itemDVOs.push(await this.expandRequestGroupOrItem(requestItem, localRequestDTO));
298
+ for (let i = 0; i < request.items.length; i++) {
299
+ const requestItem = request.items[i];
300
+ const responseItem = localResponseDVO?.content.items[i];
301
+ itemDVOs.push(await this.expandRequestGroupOrItem(requestItem, localRequestDTO, responseItem));
286
302
  }
287
303
  return {
288
304
  id: id,
@@ -290,16 +306,16 @@ let DataViewExpander = class DataViewExpander {
290
306
  type: "RequestDVO",
291
307
  date: request.expiresAt,
292
308
  ...request,
293
- items: itemDVOs
309
+ items: itemDVOs,
310
+ response: localResponseDVO?.content
294
311
  };
295
312
  }
296
- /*
297
- public async expandRequests(requests: RequestJSON[]): Promise<RequestDVO[]> {
313
+ async expandRequests(requests) {
298
314
  const requestPromises = requests.map((request) => this.expandRequest(request));
299
315
  return await Promise.all(requestPromises);
300
316
  }
301
- */
302
- async expandRequestItem(requestItem, localRequestDTO) {
317
+ async expandRequestItem(requestItem, localRequestDTO, responseItemDVO) {
318
+ let error;
303
319
  let isDecidable = false;
304
320
  if (localRequestDTO && !localRequestDTO.isOwn && (localRequestDTO.status === "DecisionRequired" || localRequestDTO.status === "ManualDecisionRequired")) {
305
321
  isDecidable = true;
@@ -308,13 +324,24 @@ let DataViewExpander = class DataViewExpander {
308
324
  case "ReadAttributeRequestItem":
309
325
  const readAttributeRequestItem = requestItem;
310
326
  if (isDecidable) {
327
+ const processedQuery = await this.processAttributeQuery(readAttributeRequestItem.query);
328
+ // ThirdPartyAttributeQueries without results cannot be changed.
329
+ if (processedQuery.type === "ProcessedThirdPartyRelationshipAttributeQueryDVO" && processedQuery.results.length === 0) {
330
+ isDecidable = false;
331
+ error = {
332
+ code: "dvo.requestItem.error.noResultsForThirdPartyRelationshipAttributeQuery",
333
+ message: "There are no matching Attributes for this ThirdPartyRelationshipAttributeQuery. You cannot set any"
334
+ };
335
+ }
311
336
  return {
312
337
  ...readAttributeRequestItem,
313
338
  type: "DecidableReadAttributeRequestItemDVO",
314
339
  id: "",
315
- name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.ReadAttributeRequestItem.name",
316
- query: await this.processIdentityAttributeQuery(readAttributeRequestItem.query),
317
- isDecidable
340
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.DecidableReadAttributeRequestItem.name",
341
+ query: processedQuery,
342
+ isDecidable,
343
+ error,
344
+ response: responseItemDVO
318
345
  };
319
346
  }
320
347
  return {
@@ -322,28 +349,49 @@ let DataViewExpander = class DataViewExpander {
322
349
  type: "ReadAttributeRequestItemDVO",
323
350
  id: "",
324
351
  name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.ReadAttributeRequestItem.name",
325
- query: this.expandIdentityAttributeQuery(readAttributeRequestItem.query),
326
- isDecidable
352
+ query: await this.expandAttributeQuery(readAttributeRequestItem.query),
353
+ isDecidable,
354
+ response: responseItemDVO
327
355
  };
328
356
  case "CreateAttributeRequestItem":
329
357
  const createAttributeRequestItem = requestItem;
358
+ const attribute = await this.expandAttribute(createAttributeRequestItem.attribute);
359
+ let isIdentityAttribute = false;
360
+ if (attribute.type === "DraftIdentityAttributeDVO") {
361
+ isIdentityAttribute = true;
362
+ }
363
+ const name = requestItem.title;
364
+ const description = requestItem.description;
365
+ let fallbackName;
330
366
  if (isDecidable) {
367
+ fallbackName = "i18n://dvo.requestItem.DecidableCreateRelationshipAttributeRequestItem.name";
368
+ if (isIdentityAttribute) {
369
+ fallbackName = "i18n://dvo.requestItem.DecidableCreateIdentityAttributeRequestItem.name";
370
+ }
331
371
  return {
332
372
  ...createAttributeRequestItem,
333
373
  type: "DecidableCreateAttributeRequestItemDVO",
334
374
  id: "",
335
- name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.CreateAttributeRequestItem.name",
336
- attribute: await this.expandAttribute(createAttributeRequestItem.attribute),
337
- isDecidable
375
+ name: name ?? fallbackName,
376
+ description: description ?? fallbackName,
377
+ attribute,
378
+ isDecidable,
379
+ response: responseItemDVO
338
380
  };
339
381
  }
382
+ fallbackName = "i18n://dvo.requestItem.CreateRelationshipAttributeRequestItem.name";
383
+ if (isIdentityAttribute) {
384
+ fallbackName = "i18n://dvo.requestItem.CreateIdentityAttributeRequestItem.name";
385
+ }
340
386
  return {
341
387
  ...createAttributeRequestItem,
342
388
  type: "CreateAttributeRequestItemDVO",
343
389
  id: "",
344
- name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.CreateAttributeRequestItem.name",
345
- attribute: await this.expandAttribute(createAttributeRequestItem.attribute),
346
- isDecidable
390
+ name: name ?? fallbackName,
391
+ description: description ?? fallbackName,
392
+ attribute,
393
+ isDecidable,
394
+ response: responseItemDVO
347
395
  };
348
396
  case "ProposeAttributeRequestItem":
349
397
  const proposeAttributeRequestItem = requestItem;
@@ -355,10 +403,11 @@ let DataViewExpander = class DataViewExpander {
355
403
  ...proposeAttributeRequestItem,
356
404
  type: "DecidableProposeAttributeRequestItemDVO",
357
405
  id: "",
358
- name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.ProposeAttributeRequestItem.name",
406
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.DecidableProposeAttributeRequestItem.name",
359
407
  attribute: await this.expandAttribute(proposeAttributeRequestItem.attribute),
360
- query: await this.processIdentityAttributeQuery(proposeAttributeRequestItem.query),
361
- isDecidable
408
+ query: await this.processAttributeQuery(proposeAttributeRequestItem.query),
409
+ isDecidable,
410
+ response: responseItemDVO
362
411
  };
363
412
  }
364
413
  return {
@@ -367,34 +416,100 @@ let DataViewExpander = class DataViewExpander {
367
416
  id: "",
368
417
  name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.ProposeAttributeRequestItem.name",
369
418
  attribute: await this.expandAttribute(proposeAttributeRequestItem.attribute),
370
- query: this.expandIdentityAttributeQuery(proposeAttributeRequestItem.query),
371
- isDecidable
419
+ query: await this.expandAttributeQuery(proposeAttributeRequestItem.query),
420
+ isDecidable,
421
+ response: responseItemDVO
372
422
  };
373
423
  case "ShareAttributeRequestItem":
374
424
  const shareAttributeRequestItem = requestItem;
375
- const attributeResult = await this.consumption.attributes.getAttribute({ id: shareAttributeRequestItem.attributeId });
376
- const attribute = attributeResult.value;
377
- const attributeDVO = await this.expandLocalAttributeDTO(attribute);
378
- const shareWith = await this.expandAddress(shareAttributeRequestItem.shareWith);
425
+ const attributeDVO = await this.expandAttribute(shareAttributeRequestItem.attribute);
379
426
  if (isDecidable) {
380
427
  return {
381
428
  ...shareAttributeRequestItem,
382
429
  type: "DecidableShareAttributeRequestItemDVO",
383
430
  id: "",
384
- name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.ProposeAttributeRequestItem.name",
431
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.DecidableProposeAttributeRequestItem.name",
385
432
  attribute: attributeDVO,
386
- shareWith,
387
- isDecidable
433
+ isDecidable,
434
+ response: responseItemDVO
388
435
  };
389
436
  }
437
+ // We have to manually copy the attribute id here, otherwise we could not link to the local attribute
438
+ const shareAttributeResponseItem = responseItemDVO;
439
+ if (shareAttributeResponseItem) {
440
+ attributeDVO.id = shareAttributeResponseItem.attributeId;
441
+ }
390
442
  return {
391
443
  ...shareAttributeRequestItem,
392
444
  type: "ShareAttributeRequestItemDVO",
393
445
  id: "",
394
446
  name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.ProposeAttributeRequestItem.name",
395
447
  attribute: attributeDVO,
396
- shareWith,
397
- isDecidable
448
+ isDecidable,
449
+ response: responseItemDVO
450
+ };
451
+ case "AuthenticationRequestItem":
452
+ const authenticationRequestItem = requestItem;
453
+ if (isDecidable) {
454
+ return {
455
+ ...authenticationRequestItem,
456
+ type: "DecidableAuthenticationRequestItemDVO",
457
+ id: "",
458
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.DecidableAuthenticationRequestItem.name",
459
+ isDecidable,
460
+ response: responseItemDVO
461
+ };
462
+ }
463
+ return {
464
+ ...authenticationRequestItem,
465
+ type: "AuthenticationRequestItemDVO",
466
+ id: "",
467
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.AuthenticationRequestItem.name",
468
+ isDecidable,
469
+ response: responseItemDVO
470
+ };
471
+ case "ConsentRequestItem":
472
+ const consentRequestItem = requestItem;
473
+ if (isDecidable) {
474
+ return {
475
+ ...consentRequestItem,
476
+ type: "DecidableConsentRequestItemDVO",
477
+ id: "",
478
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.DecidableConsentRequestItem.name",
479
+ isDecidable,
480
+ response: responseItemDVO
481
+ };
482
+ }
483
+ return {
484
+ ...consentRequestItem,
485
+ type: "ConsentRequestItemDVO",
486
+ id: "",
487
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.ConsentRequestItem.name",
488
+ isDecidable,
489
+ response: responseItemDVO
490
+ };
491
+ case "RegisterAttributeListenerRequestItem":
492
+ const registerAttributeListenerRequestItem = requestItem;
493
+ const queryDVO = (await this.expandAttributeQuery(registerAttributeListenerRequestItem.query));
494
+ if (isDecidable) {
495
+ return {
496
+ ...registerAttributeListenerRequestItem,
497
+ type: "DecidableRegisterAttributeListenerRequestItemDVO",
498
+ id: "",
499
+ query: queryDVO,
500
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.DecidableRegisterAttributeListenerRequestItem.name",
501
+ isDecidable,
502
+ response: responseItemDVO
503
+ };
504
+ }
505
+ return {
506
+ ...registerAttributeListenerRequestItem,
507
+ type: "RegisterAttributeListenerRequestItemDVO",
508
+ id: "",
509
+ query: queryDVO,
510
+ name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.RegisterAttributeListenerRequestItem.name",
511
+ isDecidable,
512
+ response: responseItemDVO
398
513
  };
399
514
  default:
400
515
  return {
@@ -402,20 +517,24 @@ let DataViewExpander = class DataViewExpander {
402
517
  type: "RequestItemDVO",
403
518
  id: "",
404
519
  name: requestItem.title ? requestItem.title : "i18n://dvo.requestItem.name",
405
- isDecidable
520
+ isDecidable,
521
+ response: responseItemDVO
406
522
  };
407
523
  }
408
524
  }
409
- async expandRequestGroupOrItem(requestGroupOrItem, localRequestDTO) {
525
+ async expandRequestGroupOrItem(requestGroupOrItem, localRequestDTO, responseGroupOrItemDVO) {
410
526
  if (requestGroupOrItem["@type"] === "RequestItemGroup") {
411
527
  let isDecidable = false;
412
528
  if (localRequestDTO && !localRequestDTO.isOwn && (localRequestDTO.status === "DecisionRequired" || localRequestDTO.status === "ManualDecisionRequired")) {
413
529
  isDecidable = true;
414
530
  }
415
- const group = requestGroupOrItem;
531
+ const requestGroup = requestGroupOrItem;
532
+ const responseGroup = responseGroupOrItemDVO;
416
533
  const itemDVOs = [];
417
- for (const requestItem of group.items) {
418
- itemDVOs.push(await this.expandRequestItem(requestItem, localRequestDTO));
534
+ for (let i = 0; i < requestGroup.items.length; i++) {
535
+ const requestItem = requestGroup.items[i];
536
+ const responseItem = responseGroup?.items[i];
537
+ itemDVOs.push(await this.expandRequestItem(requestItem, localRequestDTO, responseItem));
419
538
  }
420
539
  return {
421
540
  type: "RequestItemGroupDVO",
@@ -423,41 +542,183 @@ let DataViewExpander = class DataViewExpander {
423
542
  isDecidable,
424
543
  title: requestGroupOrItem.title,
425
544
  description: requestGroupOrItem.description,
426
- mustBeAccepted: requestGroupOrItem.mustBeAccepted
545
+ mustBeAccepted: requestGroupOrItem.mustBeAccepted,
546
+ response: responseGroup
427
547
  };
428
548
  }
429
- return await this.expandRequestItem(requestGroupOrItem, localRequestDTO);
549
+ return await this.expandRequestItem(requestGroupOrItem, localRequestDTO, responseGroupOrItemDVO);
550
+ }
551
+ async expandResponseItem(responseItem) {
552
+ if (responseItem.result === "Accepted") {
553
+ const name = `i18n://dvo.responseItem.${responseItem["@type"]}.acceptedName`;
554
+ switch (responseItem["@type"]) {
555
+ case "ReadAttributeAcceptResponseItem":
556
+ const readAttributeResponseItem = responseItem;
557
+ const localAttributeResultForRead = await this.consumption.attributes.getAttribute({ id: readAttributeResponseItem.attributeId });
558
+ const localAttributeDVOForRead = await this.expandLocalAttributeDTO(localAttributeResultForRead.value);
559
+ return {
560
+ ...readAttributeResponseItem,
561
+ type: "ReadAttributeAcceptResponseItemDVO",
562
+ id: readAttributeResponseItem.attributeId,
563
+ name: name,
564
+ attribute: localAttributeDVOForRead
565
+ };
566
+ case "CreateAttributeAcceptResponseItem":
567
+ const createAttributeResponseItem = responseItem;
568
+ const localAttributeResultForCreate = await this.consumption.attributes.getAttribute({ id: createAttributeResponseItem.attributeId });
569
+ const localAttributeDVOForCreate = await this.expandLocalAttributeDTO(localAttributeResultForCreate.value);
570
+ return {
571
+ ...createAttributeResponseItem,
572
+ type: "CreateAttributeAcceptResponseItemDVO",
573
+ id: createAttributeResponseItem.attributeId,
574
+ name: name,
575
+ attribute: localAttributeDVOForCreate
576
+ };
577
+ case "ProposeAttributeAcceptResponseItem":
578
+ const proposeAttributeResponseItem = responseItem;
579
+ const localAttributeResultForPropose = await this.consumption.attributes.getAttribute({ id: proposeAttributeResponseItem.attributeId });
580
+ const localAttributeDVOForPropose = await this.expandLocalAttributeDTO(localAttributeResultForPropose.value);
581
+ return {
582
+ ...proposeAttributeResponseItem,
583
+ type: "ProposeAttributeAcceptResponseItemDVO",
584
+ id: proposeAttributeResponseItem.attributeId,
585
+ name: name,
586
+ attribute: localAttributeDVOForPropose
587
+ };
588
+ case "ShareAttributeAcceptResponseItem":
589
+ const shareAttributeResponseItem = responseItem;
590
+ const localAttributeResultForShare = await this.consumption.attributes.getAttribute({ id: shareAttributeResponseItem.attributeId });
591
+ const localAttributeDVOForShare = await this.expandLocalAttributeDTO(localAttributeResultForShare.value);
592
+ return {
593
+ ...shareAttributeResponseItem,
594
+ type: "ShareAttributeAcceptResponseItemDVO",
595
+ id: shareAttributeResponseItem.attributeId,
596
+ name: name,
597
+ attribute: localAttributeDVOForShare
598
+ };
599
+ case "RegisterAttributeListenerAcceptResponseItem":
600
+ const registerAttributeListenerResponseItem = responseItem;
601
+ const localAttributeListenerResult = await this.consumption.attributeListeners.getAttributeListener({ id: registerAttributeListenerResponseItem.listenerId });
602
+ const localAttributeListener = await this.expandLocalAttributeListenerDTO(localAttributeListenerResult.value);
603
+ return {
604
+ ...registerAttributeListenerResponseItem,
605
+ type: "RegisterAttributeListenerAcceptResponseItemDVO",
606
+ id: registerAttributeListenerResponseItem.listenerId,
607
+ name: name,
608
+ listener: localAttributeListener
609
+ };
610
+ default:
611
+ return {
612
+ ...responseItem,
613
+ type: "AcceptResponseItemDVO",
614
+ id: "",
615
+ name: name
616
+ };
617
+ }
618
+ }
619
+ else if (responseItem.result === "Rejected") {
620
+ const rejectResponseItem = responseItem;
621
+ return {
622
+ ...rejectResponseItem,
623
+ type: "RejectResponseItemDVO",
624
+ id: "",
625
+ name: "i18n://dvo.responseItem.rejected"
626
+ };
627
+ }
628
+ else {
629
+ const errorResponseItem = responseItem;
630
+ return {
631
+ ...errorResponseItem,
632
+ type: "ErrorResponseItemDVO",
633
+ id: "",
634
+ name: "i18n://dvo.responseItem.error"
635
+ };
636
+ }
637
+ }
638
+ async expandLocalAttributeListenerDTO(attributeListener) {
639
+ const query = (await this.expandAttributeQuery(attributeListener.query));
640
+ const peer = await this.expandIdentityForAddress(attributeListener.peer);
641
+ return {
642
+ type: "LocalAttributeListenerDVO",
643
+ name: "dvo.localAttributeListener.name",
644
+ description: "dvo.localAttributeListener.description",
645
+ ...attributeListener,
646
+ query,
647
+ peer
648
+ };
649
+ }
650
+ async expandResponseGroupOrItem(responseGroupOrItem) {
651
+ if (responseGroupOrItem["@type"] === "ResponseItemGroup") {
652
+ const group = responseGroupOrItem;
653
+ const itemDVOs = [];
654
+ for (const requestItem of group.items) {
655
+ itemDVOs.push(await this.expandResponseItem(requestItem));
656
+ }
657
+ return {
658
+ type: "ResponseItemGroupDVO",
659
+ items: itemDVOs
660
+ };
661
+ }
662
+ return await this.expandResponseItem(responseGroupOrItem);
430
663
  }
431
664
  async expandLocalRequestDTO(request) {
432
- const requestDVO = await this.expandRequest(request.content, request);
665
+ const response = request.response ? await this.expandLocalResponseDTO(request.response, request) : undefined;
666
+ const requestDVO = await this.expandRequest(request.content, request, response);
433
667
  const peerDVO = await this.expandAddress(request.peer);
434
668
  let isDecidable = false;
435
669
  if (!request.isOwn && (request.status === "DecisionRequired" || request.status === "ManualDecisionRequired")) {
436
670
  isDecidable = true;
437
671
  }
672
+ const directionLabel = request.isOwn ? "outgoing" : "incoming";
673
+ const statusText = `i18n://dvo.localRequest.status.${request.status}`;
674
+ const sourceType = request.source?.type ?? "unknown";
675
+ const requestIdOutOfResponse = request.response ? request.response.content.requestId : "";
438
676
  return {
439
677
  ...request,
440
- id: request.id,
678
+ id: request.id ? request.id : requestIdOutOfResponse,
441
679
  content: requestDVO,
442
680
  items: requestDVO.items,
443
- name: "i18n://dvo.localRequest.name",
681
+ name: `i18n://dvo.localRequest.${sourceType}.${directionLabel}.${request.status}.name`,
682
+ directionText: `i18n://dvo.localRequest.direction.${directionLabel}`,
683
+ description: `i18n://dvo.localRequest.${sourceType}.${directionLabel}.${request.status}.description`,
684
+ sourceTypeText: `i18n://dvo.localRequest.sourceType.${sourceType}`,
444
685
  type: "LocalRequestDVO",
445
686
  date: request.createdAt,
446
687
  createdBy: request.isOwn ? this.expandSelf() : peerDVO,
447
688
  decider: request.isOwn ? peerDVO : this.expandSelf(),
448
689
  peer: peerDVO,
449
- response: request.response ? this.expandLocalResponseDTO(request.response) : undefined,
450
- statusText: `i18n://dvo.localRequest.status.${request.status}`,
690
+ response,
691
+ statusText: statusText,
451
692
  isDecidable
452
693
  };
453
694
  }
454
- expandLocalResponseDTO(response) {
695
+ async expandLocalRequestDTOs(localRequests) {
696
+ const localRequestPromises = localRequests.map((localRequest) => this.expandLocalRequestDTO(localRequest));
697
+ return await Promise.all(localRequestPromises);
698
+ }
699
+ async expandResponse(response, request) {
700
+ const itemDVOs = [];
701
+ for (const responseItem of response.items) {
702
+ itemDVOs.push(await this.expandResponseGroupOrItem(responseItem));
703
+ }
455
704
  return {
705
+ id: request.id,
706
+ name: "i18n://dvo.response.name",
707
+ type: "ResponseDVO",
456
708
  ...response,
457
- id: "",
709
+ items: itemDVOs
710
+ };
711
+ }
712
+ async expandLocalResponseDTO(response, request) {
713
+ const responseDVO = await this.expandResponse(response.content, request);
714
+ return {
715
+ ...response,
716
+ id: request.id,
458
717
  name: "i18n://dvo.localResponse.name",
459
718
  type: "LocalResponseDVO",
460
- date: response.createdAt
719
+ date: response.createdAt,
720
+ content: responseDVO,
721
+ items: response.content.items
461
722
  };
462
723
  }
463
724
  async expandLocalAttributeDTO(attribute) {
@@ -469,14 +730,69 @@ let DataViewExpander = class DataViewExpander {
469
730
  const owner = attribute.content.owner;
470
731
  let name = `i18n://dvo.attribute.name.${valueType}`;
471
732
  let description = `i18n://dvo.attribute.description.${valueType}`;
472
- if (localAttribute.content instanceof content_1.RelationshipAttribute) {
473
- name = "";
474
- description = "";
475
- }
476
733
  const renderHints = localAttribute.content.value.renderHints.toJSON();
477
734
  const valueHints = localAttribute.content.value.valueHints.toJSON();
478
735
  if (localAttribute.shareInfo) {
479
736
  const peer = localAttribute.shareInfo.peer.toString();
737
+ if (localAttribute.content instanceof content_1.RelationshipAttribute) {
738
+ const relationshipAttribute = localAttribute.content;
739
+ const value = relationshipAttribute.value;
740
+ if ("title" in value) {
741
+ name = value.title;
742
+ }
743
+ if ("description" in value && !!value.description) {
744
+ description = value.description;
745
+ }
746
+ // Peer Relationship Attribute
747
+ if (relationshipAttribute.owner === localAttribute.shareInfo.peer) {
748
+ return {
749
+ type: "PeerRelationshipAttributeDVO",
750
+ id: attribute.id,
751
+ name,
752
+ key: relationshipAttribute.key,
753
+ confidentiality: relationshipAttribute.confidentiality,
754
+ description,
755
+ content: attribute.content,
756
+ value: attribute.content.value,
757
+ date: attribute.createdAt,
758
+ owner,
759
+ renderHints,
760
+ valueHints,
761
+ isValid: true,
762
+ createdAt: attribute.createdAt,
763
+ isOwn: false,
764
+ peer: peer,
765
+ isDraft: false,
766
+ requestReference: localAttribute.shareInfo.requestReference.toString(),
767
+ valueType,
768
+ isTechnical: relationshipAttribute.isTechnical
769
+ };
770
+ }
771
+ // Own Relationship Attribute
772
+ return {
773
+ type: "OwnRelationshipAttributeDVO",
774
+ id: attribute.id,
775
+ name,
776
+ key: relationshipAttribute.key,
777
+ confidentiality: relationshipAttribute.confidentiality,
778
+ description,
779
+ content: attribute.content,
780
+ value: attribute.content.value,
781
+ date: attribute.createdAt,
782
+ owner,
783
+ renderHints,
784
+ valueHints,
785
+ isValid: true,
786
+ createdAt: attribute.createdAt,
787
+ isOwn: true,
788
+ peer: peer,
789
+ isDraft: false,
790
+ requestReference: localAttribute.shareInfo.requestReference.toString(),
791
+ valueType,
792
+ isTechnical: relationshipAttribute.isTechnical
793
+ };
794
+ }
795
+ const identityAttribute = localAttribute.content;
480
796
  if (localAttribute.shareInfo.sourceAttribute) {
481
797
  // Own Shared Attribute
482
798
  return {
@@ -497,7 +813,8 @@ let DataViewExpander = class DataViewExpander {
497
813
  isDraft: false,
498
814
  requestReference: localAttribute.shareInfo.requestReference.toString(),
499
815
  sourceAttribute: localAttribute.shareInfo.sourceAttribute.toString(),
500
- tags: []
816
+ tags: identityAttribute.tags ? identityAttribute.tags : [],
817
+ valueType
501
818
  };
502
819
  }
503
820
  // Peer Attribute
@@ -518,9 +835,11 @@ let DataViewExpander = class DataViewExpander {
518
835
  peer: peer,
519
836
  isDraft: false,
520
837
  requestReference: localAttribute.shareInfo.requestReference.toString(),
521
- tags: []
838
+ tags: identityAttribute.tags ? identityAttribute.tags : [],
839
+ valueType
522
840
  };
523
841
  }
842
+ const identityAttribute = localAttribute.content;
524
843
  const sharedToPeerAttributes = await this.consumption.attributes.getAttributes({ query: { "shareInfo.sourceAttribute": attribute.id } });
525
844
  const sharedToPeerDVOs = await this.expandLocalAttributeDTOs(sharedToPeerAttributes.value);
526
845
  // Own Source Attribute
@@ -540,57 +859,91 @@ let DataViewExpander = class DataViewExpander {
540
859
  isOwn: true,
541
860
  isDraft: false,
542
861
  sharedWith: sharedToPeerDVOs,
543
- tags: []
862
+ tags: identityAttribute.tags ? identityAttribute.tags : [],
863
+ valueType
544
864
  };
545
865
  }
546
866
  async expandLocalAttributeDTOs(attributes) {
547
867
  const attributesPromise = attributes.map((attribute) => this.expandLocalAttributeDTO(attribute));
548
868
  return await Promise.all(attributesPromise);
549
869
  }
870
+ async expandAttributeQuery(query) {
871
+ switch (query["@type"]) {
872
+ case "IdentityAttributeQuery":
873
+ return this.expandIdentityAttributeQuery(query);
874
+ case "RelationshipAttributeQuery":
875
+ return await this.expandRelationshipAttributeQuery(query);
876
+ case "ThirdPartyRelationshipAttributeQuery":
877
+ return await this.expandThirdPartyRelationshipAttributeQuery(query);
878
+ default:
879
+ throw new Error("Wrong attribute query");
880
+ }
881
+ }
550
882
  expandIdentityAttributeQuery(query) {
551
883
  const valueType = query.valueType;
552
884
  const name = `i18n://dvo.attribute.name.${valueType}`;
553
885
  const description = `i18n://dvo.attribute.description.${valueType}`;
554
- const valueTypeClass = ts_serval_1.SerializableBase.getModule(valueType, 1);
555
- if (!valueTypeClass) {
556
- throw new Error(`No class implementation found for ${valueType}`);
557
- }
558
- let renderHints = {
559
- "@type": "RenderHints",
560
- editType: content_1.RenderHintsEditType.InputLike,
561
- technicalType: content_1.RenderHintsTechnicalType.String
562
- };
563
- let valueHints = {
564
- "@type": "ValueHints",
565
- max: 200
886
+ const hints = this.getHintsForValueType(valueType);
887
+ return {
888
+ type: "IdentityAttributeQueryDVO",
889
+ id: "",
890
+ name,
891
+ description,
892
+ valueType,
893
+ validFrom: query.validFrom,
894
+ validTo: query.validTo,
895
+ renderHints: hints.renderHints,
896
+ valueHints: hints.valueHints,
897
+ isProcessed: false
566
898
  };
567
- if (valueTypeClass.renderHints && valueTypeClass.renderHints instanceof content_1.RenderHints) {
568
- renderHints = valueTypeClass.renderHints.toJSON();
899
+ }
900
+ async expandRelationshipAttributeQuery(query) {
901
+ const valueType = query.attributeCreationHints.valueType;
902
+ let name = "i18n://dvo.attributeQuery.name.ThirdPartyRelationshipAttributeQuery";
903
+ let description = "i18n://dvo.attributeQuery.name.ThirdPartyRelationshipAttributeQuery";
904
+ if (query.attributeCreationHints.title) {
905
+ name = query.attributeCreationHints.title;
569
906
  }
570
- if (valueTypeClass.valueHints && valueTypeClass.valueHints instanceof content_1.ValueHints) {
571
- valueHints = valueTypeClass.valueHints.toJSON();
907
+ if (query.attributeCreationHints.description) {
908
+ description = query.attributeCreationHints.description;
909
+ }
910
+ const hints = this.getHintsForValueType(valueType);
911
+ if (query.attributeCreationHints.valueHints) {
912
+ hints.valueHints = query.attributeCreationHints.valueHints;
572
913
  }
573
914
  return {
574
- type: "IdentityAttributeQueryDVO",
915
+ type: "RelationshipAttributeQueryDVO",
575
916
  id: "",
576
917
  name,
577
918
  description,
578
- valueType,
579
919
  validFrom: query.validFrom,
580
920
  validTo: query.validTo,
581
- renderHints,
582
- valueHints,
921
+ owner: await this.expandAddress(query.owner),
922
+ key: query.key,
923
+ attributeCreationHints: query.attributeCreationHints,
924
+ renderHints: hints.renderHints,
925
+ valueHints: hints.valueHints,
926
+ isProcessed: false,
927
+ valueType
928
+ };
929
+ }
930
+ async expandThirdPartyRelationshipAttributeQuery(query) {
931
+ const name = "i18n://dvo.attributeQuery.name.ThirdPartyRelationshipAttributeQuery";
932
+ const description = "i18n://dvo.attributeQuery.name.ThirdPartyRelationshipAttributeQuery";
933
+ return {
934
+ type: "ThirdPartyRelationshipAttributeQueryDVO",
935
+ id: "",
936
+ name,
937
+ description,
938
+ validFrom: query.validFrom,
939
+ validTo: query.validTo,
940
+ owner: await this.expandAddress(query.owner),
941
+ thirdParty: await this.expandAddress(query.thirdParty),
942
+ key: query.key,
583
943
  isProcessed: false
584
944
  };
585
945
  }
586
- async processIdentityAttributeQuery(query) {
587
- const matchedAttributeDTOs = await this.consumption.attributes.executeIdentityAttributeQuery({
588
- query
589
- });
590
- const matchedAttributeDVOs = await this.expandLocalAttributeDTOs(matchedAttributeDTOs.value);
591
- const valueType = query.valueType;
592
- const name = `i18n://dvo.attribute.name.${valueType}`;
593
- const description = `i18n://dvo.attribute.description.${valueType}`;
946
+ getHintsForValueType(valueType) {
594
947
  const valueTypeClass = ts_serval_1.SerializableBase.getModule(valueType, 1);
595
948
  if (!valueTypeClass) {
596
949
  throw new Error(`No class implementation found for ${valueType}`);
@@ -610,46 +963,147 @@ let DataViewExpander = class DataViewExpander {
610
963
  if (valueTypeClass.valueHints && valueTypeClass.valueHints instanceof content_1.ValueHints) {
611
964
  valueHints = valueTypeClass.valueHints.toJSON();
612
965
  }
966
+ return { renderHints, valueHints };
967
+ }
968
+ async processAttributeQuery(attributeQuery) {
969
+ switch (attributeQuery["@type"]) {
970
+ case "IdentityAttributeQuery":
971
+ return await this.processIdentityAttributeQuery(attributeQuery);
972
+ case "RelationshipAttributeQuery":
973
+ return await this.processRelationshipAttributeQuery(attributeQuery);
974
+ case "ThirdPartyRelationshipAttributeQuery":
975
+ return await this.processThirdPartyRelationshipAttributeQuery(attributeQuery);
976
+ default:
977
+ throw new Error("Wrong attribute query");
978
+ }
979
+ }
980
+ async processIdentityAttributeQuery(query) {
981
+ const matchedAttributeDTOs = await this.consumption.attributes.executeIdentityAttributeQuery({
982
+ query
983
+ });
984
+ const matchedAttributeDVOs = await this.expandLocalAttributeDTOs(matchedAttributeDTOs.value);
613
985
  return {
986
+ ...this.expandIdentityAttributeQuery(query),
614
987
  type: "ProcessedIdentityAttributeQueryDVO",
615
- id: "",
988
+ results: matchedAttributeDVOs,
989
+ isProcessed: true
990
+ };
991
+ }
992
+ async processRelationshipAttributeQuery(query) {
993
+ const matchedAttributeDTOResult = await this.consumption.attributes.executeRelationshipAttributeQuery({
994
+ query
995
+ });
996
+ if (matchedAttributeDTOResult.isError) {
997
+ if (matchedAttributeDTOResult.error.code !== "error.runtime.recordNotFound") {
998
+ throw matchedAttributeDTOResult.error;
999
+ }
1000
+ return {
1001
+ ...(await this.expandRelationshipAttributeQuery(query)),
1002
+ type: "ProcessedRelationshipAttributeQueryDVO",
1003
+ results: [],
1004
+ isProcessed: true
1005
+ };
1006
+ }
1007
+ const matchedAttributeDVOs = await this.expandLocalAttributeDTO(matchedAttributeDTOResult.value);
1008
+ return {
1009
+ ...(await this.expandRelationshipAttributeQuery(query)),
1010
+ type: "ProcessedRelationshipAttributeQueryDVO",
1011
+ results: [matchedAttributeDVOs],
1012
+ isProcessed: true
1013
+ };
1014
+ }
1015
+ async processThirdPartyRelationshipAttributeQuery(query) {
1016
+ const matchedAttributeDTOResult = await this.consumption.attributes.executeThirdPartyRelationshipAttributeQuery({
1017
+ query
1018
+ });
1019
+ if (matchedAttributeDTOResult.isError) {
1020
+ if (matchedAttributeDTOResult.error.code !== "error.runtime.recordNotFound") {
1021
+ throw matchedAttributeDTOResult.error;
1022
+ }
1023
+ return {
1024
+ ...(await this.expandThirdPartyRelationshipAttributeQuery(query)),
1025
+ type: "ProcessedThirdPartyRelationshipAttributeQueryDVO",
1026
+ results: [],
1027
+ isProcessed: true
1028
+ };
1029
+ }
1030
+ const matchedAttributeDVO = await this.expandLocalAttributeDTO(matchedAttributeDTOResult.value);
1031
+ const correctlyTypedAttribute = matchedAttributeDVO;
1032
+ return {
1033
+ ...(await this.expandThirdPartyRelationshipAttributeQuery(query)),
1034
+ type: "ProcessedThirdPartyRelationshipAttributeQueryDVO",
1035
+ results: [correctlyTypedAttribute],
1036
+ renderHints: correctlyTypedAttribute.renderHints,
1037
+ valueHints: correctlyTypedAttribute.valueHints,
1038
+ valueType: correctlyTypedAttribute.valueType,
1039
+ isProcessed: true
1040
+ };
1041
+ }
1042
+ async expandIdentityAttribute(attribute, attributeInstance) {
1043
+ const valueType = attribute.value["@type"];
1044
+ const name = `i18n://dvo.attribute.name.${valueType}`;
1045
+ const description = `i18n://dvo.attribute.description.${valueType}`;
1046
+ const renderHints = attributeInstance.value.renderHints.toJSON();
1047
+ const valueHints = attributeInstance.value.valueHints.toJSON();
1048
+ const owner = await this.expandAddress(attribute.owner);
1049
+ return {
1050
+ type: "DraftIdentityAttributeDVO",
1051
+ content: attribute,
616
1052
  name,
617
1053
  description,
618
- valueType,
619
- validFrom: query.validFrom,
620
- validTo: query.validTo,
621
- results: matchedAttributeDVOs,
1054
+ id: "",
1055
+ owner: owner,
622
1056
  renderHints,
623
1057
  valueHints,
624
- isProcessed: true
1058
+ value: attribute.value,
1059
+ isDraft: true,
1060
+ isOwn: owner.isSelf,
1061
+ valueType,
1062
+ tags: attributeInstance.tags ? attributeInstance.tags : []
625
1063
  };
626
1064
  }
627
- async expandAttribute(attribute) {
628
- const attributeInstance = ts_serval_1.Serializable.fromAny(attribute);
1065
+ async expandRelationshipAttribute(attribute, attributeInstance) {
629
1066
  const valueType = attribute.value["@type"];
630
1067
  let name = `i18n://dvo.attribute.name.${valueType}`;
631
1068
  let description = `i18n://dvo.attribute.description.${valueType}`;
632
1069
  const renderHints = attributeInstance.value.renderHints.toJSON();
633
1070
  const valueHints = attributeInstance.value.valueHints.toJSON();
634
- if (attributeInstance instanceof content_1.RelationshipAttribute) {
635
- name = ""; // attributeInstance.value.title;
636
- description = ""; // attributeInstance.value.description;
1071
+ const value = attributeInstance.value;
1072
+ if ("title" in value) {
1073
+ name = value.title;
1074
+ }
1075
+ if ("description" in value && !!value.description) {
1076
+ description = value.description;
637
1077
  }
638
1078
  const owner = await this.expandAddress(attribute.owner);
639
1079
  return {
640
- type: "DraftAttributeDVO",
1080
+ type: "DraftRelationshipAttributeDVO",
641
1081
  content: attribute,
642
1082
  name,
643
1083
  description,
1084
+ key: attribute.key,
1085
+ confidentiality: attribute.confidentiality,
1086
+ isTechnical: !!attribute.isTechnical,
644
1087
  id: "",
645
1088
  owner: owner,
646
1089
  renderHints,
647
1090
  valueHints,
648
1091
  value: attribute.value,
649
1092
  isDraft: true,
650
- isOwn: owner.isSelf
1093
+ isOwn: owner.isSelf,
1094
+ valueType
651
1095
  };
652
1096
  }
1097
+ async expandAttribute(attribute) {
1098
+ const attributeInstance = ts_serval_1.Serializable.fromUnknown(attribute);
1099
+ if (attributeInstance instanceof content_1.IdentityAttribute) {
1100
+ return await this.expandIdentityAttribute(attribute, attributeInstance);
1101
+ }
1102
+ else if (attributeInstance instanceof content_1.RelationshipAttribute) {
1103
+ return await this.expandRelationshipAttribute(attribute, attributeInstance);
1104
+ }
1105
+ throw new Error("Wrong attribute instance");
1106
+ }
653
1107
  async expandAttributes(attributes) {
654
1108
  const attributesPromise = attributes.map((attribute) => this.expandAttribute(attribute));
655
1109
  return await Promise.all(attributesPromise);
@@ -686,7 +1140,7 @@ let DataViewExpander = class DataViewExpander {
686
1140
  if (this.identityController.isMe(transport_1.CoreAddress.from(address))) {
687
1141
  return this.expandSelf();
688
1142
  }
689
- const result = await this.transport.relationships.getRelationshipByAddress({ address: address });
1143
+ const result = await this.transport.relationships.getRelationshipByAddress({ address });
690
1144
  if (result.isError) {
691
1145
  return this.expandUnknown(address);
692
1146
  }
@@ -758,7 +1212,6 @@ let DataViewExpander = class DataViewExpander {
758
1212
  isPinned: false
759
1213
  };
760
1214
  }
761
- const nameRelevantAttributeTypes = ["DisplayName", "GivenName", "MiddleName", "Surname", "Sex"];
762
1215
  const stringByType = {};
763
1216
  const relationshipAttributesResult = await this.consumption.attributes.getPeerAttributes({ onlyValid: true, peer: relationship.peer });
764
1217
  const expandedAttributes = await this.expandLocalAttributeDTOs(relationshipAttributesResult.value);
@@ -772,12 +1225,14 @@ let DataViewExpander = class DataViewExpander {
772
1225
  else {
773
1226
  attributesByType[valueType] = [attribute];
774
1227
  }
1228
+ const nameRelevantAttributeTypes = ["DisplayName", "GivenName", "MiddleName", "Surname", "Sex"];
775
1229
  if (nameRelevantAttributeTypes.includes(valueType)) {
776
- if (stringByType[valueType]) {
777
- stringByType[valueType] += ` ${attribute.content.value.value}`;
1230
+ const attributeValue = attribute.content.value;
1231
+ if (stringByType[valueType] && valueType === "GivenName") {
1232
+ stringByType[valueType] += ` ${attributeValue.value}`;
778
1233
  }
779
1234
  else {
780
- stringByType[valueType] = `${attribute.content.value.value}`;
1235
+ stringByType[valueType] = attributeValue.value;
781
1236
  }
782
1237
  }
783
1238
  }
@@ -806,12 +1261,18 @@ let DataViewExpander = class DataViewExpander {
806
1261
  if (stringByType["DisplayName"]) {
807
1262
  name = stringByType["DisplayName"];
808
1263
  }
1264
+ else if (stringByType["MiddleName"] && stringByType["GivenName"] && stringByType["Surname"]) {
1265
+ name = `${stringByType["GivenName"]} ${stringByType["MiddleName"]} ${stringByType["Surname"]}`;
1266
+ }
809
1267
  else if (stringByType["GivenName"] && stringByType["Surname"]) {
810
1268
  name = `${stringByType["GivenName"]} ${stringByType["Surname"]}`;
811
1269
  }
812
1270
  else if (stringByType["Sex"] && stringByType["Surname"]) {
813
1271
  name = `i18n://dvo.identity.Salutation.${stringByType["Sex"]} ${stringByType["Surname"]}`;
814
1272
  }
1273
+ else if (stringByType["Surname"]) {
1274
+ name = `${stringByType["Surname"]}`;
1275
+ }
815
1276
  else {
816
1277
  name = relationship.peer.substring(3, 9);
817
1278
  }
@@ -830,7 +1291,8 @@ let DataViewExpander = class DataViewExpander {
830
1291
  items: expandedAttributes,
831
1292
  nameMap: stringByType,
832
1293
  changes: changes,
833
- changeCount: changes.length
1294
+ changeCount: changes.length,
1295
+ templateId: relationship.template.id
834
1296
  };
835
1297
  }
836
1298
  async expandRelationshipDTO(relationship) {
@@ -886,7 +1348,7 @@ let DataViewExpander = class DataViewExpander {
886
1348
  return await Promise.all(relationshipPromises);
887
1349
  }
888
1350
  async expandFileId(id) {
889
- const result = await this.transport.files.getFile({ id: id });
1351
+ const result = await this.transport.files.getFile({ id });
890
1352
  if (result.isError) {
891
1353
  throw result.error;
892
1354
  }