@nmshd/runtime 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,10 +7,10 @@ const content_1 = require("@nmshd/content");
7
7
  const crypto_1 = require("@nmshd/crypto");
8
8
  const transport_1 = require("@nmshd/transport");
9
9
  exports.buildInformation = {
10
- version: "3.0.0",
11
- build: "176",
12
- date: "2023-12-04T13:24:23+00:00",
13
- commit: "3828122d5ed75b552ee87bd2780a0dc293c5cf00",
10
+ version: "3.0.1",
11
+ build: "177",
12
+ date: "2023-12-05T14:35:42+00:00",
13
+ commit: "925dfa548d17ca3b0bb184e99bca28906092ec74",
14
14
  dependencies: {"@js-soft/docdb-querytranslator":"1.1.2","@js-soft/logging-abstractions":"1.0.1","@js-soft/ts-serval":"2.0.10","@js-soft/ts-utils":"^2.3.3","@nmshd/consumption":"3.7.4","@nmshd/content":"2.8.1","@nmshd/crypto":"2.0.5","@nmshd/transport":"2.1.4","ajv":"^8.12.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.4.4","qrcode":"1.5.3","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
15
15
  libraries: {
16
16
  serval: ts_serval_1.buildInformation,
@@ -46,7 +46,9 @@ declare class Notifications {
46
46
  }
47
47
  declare class Attributes {
48
48
  isNoIdentityAttribute(attributeId: CoreId | string): ApplicationError;
49
- identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId: CoreId | string, peer: CoreAddress | string, ownSharedIdentityAttribute: CoreId | string): ApplicationError;
49
+ identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId: CoreId | string, peer: CoreAddress | string, ownSharedIdentityAttributeId: CoreId | string): ApplicationError;
50
+ anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId: CoreId | string, peer: CoreAddress | string, ownSharedIdentityAttributeId: CoreId | string): ApplicationError;
51
+ canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeId: CoreId | string): ApplicationError;
50
52
  detectedErroneousAttribute(attributeId: CoreId | string, message?: string): ApplicationError;
51
53
  }
52
54
  export declare class RuntimeErrors {
@@ -107,8 +107,14 @@ class Attributes {
107
107
  isNoIdentityAttribute(attributeId) {
108
108
  return new ts_utils_1.ApplicationError("error.runtime.attributes.isNoIdentityAttribute", `Attribute '${attributeId.toString()}' is not an identity attribute.`);
109
109
  }
110
- identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttribute) {
111
- return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${ownSharedIdentityAttribute.toString}.`);
110
+ identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
111
+ return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
112
+ }
113
+ anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
114
+ return new ts_utils_1.ApplicationError("error.runtime.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer", `Another version of identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of previously shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
115
+ }
116
+ canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeId) {
117
+ return new ts_utils_1.ApplicationError("error.runtime.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute", `Identity attribute '${repositoryAttributeId.toString()}' is not the latest version the attribute. Peers can only be notified about the latest version of an identity attribute.`);
112
118
  }
113
119
  detectedErroneousAttribute(attributeId, message) {
114
120
  let msg = `Detected an error regarding attribute '${attributeId.toString()}'.`;
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeErrors.js","sourceRoot":"","sources":["../../../src/useCases/common/RuntimeErrors.ts"],"names":[],"mappings":";;;AAAA,gDAAqD;AAErD,2DAAwD;AAExD,MAAM,OAAO;IACF,OAAO,CAAC,OAAe,EAAE,IAAU;QACtC,OAAO,IAAI,2BAAgB,CAAC,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,2BAAgB,CAAC,kCAAkC,EAAE,gFAAgF,CAAC,CAAC;IACtJ,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,2BAAgB,CAAC,8BAA8B,EAAE,6FAA6F,CAAC,CAAC;IAC/J,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,2BAAgB,CAAC,8BAA8B,EAAE,yEAAyE,CAAC,CAAC;IAC3I,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,2BAAgB,CAAC,0BAA0B,EAAE,yFAAyF,CAAC,CAAC;IACvJ,CAAC;IAEM,cAAc,CAAC,UAA8B;QAChD,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,UAAU,YAAY,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,oEAAoE,CAAC,CAAC;IAChL,CAAC;IAEM,yBAAyB,CAAC,OAAe;QAC5C,OAAO,IAAI,2BAAgB,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAEM,oBAAoB,CAAC,OAAe;QACvC,OAAO,IAAI,2BAAgB,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAEM,cAAc,CAAC,OAAgB;QAClC,OAAO,IAAI,2BAAgB,CAAC,yCAAyC,EAAE,OAAO,IAAI,sEAAsE,CAAC,CAAC;IAC9J,CAAC;IAEM,YAAY,CAAC,OAAe;QAC/B,OAAO,IAAI,2BAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,mBAAmB;QACtB,OAAO,IAAI,2BAAgB,CAAC,mCAAmC,EAAE,wDAAwD,CAAC,CAAC;IAC/H,CAAC;IAEM,UAAU,CAAC,UAA6B,EAAE,EAAU;QACvD,OAAO,IAAI,2BAAgB,CAAC,0BAA0B,EAAE,gBAAgB,UAAU,YAAY,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,aAAa,EAAE,aAAa,CAAC,CAAC;IACvK,CAAC;CACJ;AAED,MAAM,MAAM;IACD,WAAW,CAAC,OAAe;QAC9B,OAAO,IAAI,2BAAgB,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAEM,OAAO,CAAC,OAAe;QAC1B,OAAO,IAAI,2BAAgB,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAEM,sBAAsB,CAAC,OAAe;QACzC,OAAO,IAAI,2BAAgB,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;CACJ;AAED,MAAM,KAAK;IACA,gBAAgB,CAAC,SAAiB;QACrC,OAAO,IAAI,2BAAgB,CACvB,sCAAsC,EACtC,wBAAwB,SAAS,6DAA6D,qCAAiB,CAAC,KAAK,SAAS,qCAAiB,CAAC,IAAI,IAAI,CAC3J,CAAC;IACN,CAAC;CACJ;AAED,MAAM,qBAAqB;IAChB,gCAAgC;QACnC,OAAO,IAAI,2BAAgB,CAAC,sEAAsE,EAAE,gDAAgD,CAAC,CAAC;IAC1J,CAAC;IAEM,iCAAiC;QACpC,OAAO,IAAI,2BAAgB,CAAC,uEAAuE,EAAE,iDAAiD,CAAC,CAAC;IAC5J,CAAC;IAEM,gBAAgB,CAAC,SAAiB;QACrC,OAAO,IAAI,2BAAgB,CACvB,sDAAsD,EACtD,wBAAwB,SAAS,8EAA8E,qCAAiB,CAAC,KAAK,SAAS,qCAAiB,CAAC,oBAAoB,IAAI,CAC5L,CAAC;IACN,CAAC;CACJ;AAED,MAAM,QAAQ;IACH,qBAAqB,CAAC,YAAoB;QAC7C,OAAO,IAAI,2BAAgB,CAAC,8CAA8C,EAAE,uBAAuB,YAAY,uCAAuC,CAAC,CAAC;IAC5J,CAAC;CACJ;AAED,MAAM,OAAO;IACF,eAAe;QAClB,OAAO,IAAI,2BAAgB,CAAC,uCAAuC,EAAE,qEAAqE,CAAC,CAAC;IAChJ,CAAC;IAEM,6BAA6B;QAChC,OAAO,IAAI,2BAAgB,CAAC,qDAAqD,EAAE,yEAAyE,CAAC,CAAC;IAClK,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,2BAAgB,CAAC,wCAAwC,EAAE,oEAAoE,CAAC,CAAC;IAChJ,CAAC;CACJ;AAED,MAAM,UAAU;IACL,gBAAgB;QACnB,OAAO,IAAI,2BAAgB,CAAC,2CAA2C,EAAE,2BAA2B,CAAC,CAAC;IAC1G,CAAC;IAEM,sBAAsB;QACzB,OAAO,IAAI,2BAAgB,CAAC,2CAA2C,EAAE,iCAAiC,CAAC,CAAC;IAChH,CAAC;CACJ;AAED,MAAM,aAAa;IACR,uCAAuC;QAC1C,OAAO,IAAI,2BAAgB,CAAC,qEAAqE,EAAE,+CAA+C,CAAC,CAAC;IACxJ,CAAC;IAEM,yCAAyC;QAC5C,OAAO,IAAI,2BAAgB,CAAC,uEAAuE,EAAE,6CAA6C,CAAC,CAAC;IACxJ,CAAC;IAEM,iCAAiC,CAAC,SAAiB;QACtD,OAAO,IAAI,2BAAgB,CACvB,+DAA+D,EAC/D,4BAA4B,SAAS,CAAC,QAAQ,EAAE,oCAAoC,CACvF,CAAC;IACN,CAAC;CACJ;AAED,MAAM,UAAU;IACL,qBAAqB,CAAC,WAA4B;QACrD,OAAO,IAAI,2BAAgB,CAAC,gDAAgD,EAAE,cAAc,WAAW,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;IACzJ,CAAC;IAEM,6CAA6C,CAChD,qBAAsC,EACtC,IAA0B,EAC1B,0BAA2C;QAE3C,OAAO,IAAI,2BAAgB,CACvB,wEAAwE,EACxE,uBAAuB,qBAAqB,CAAC,QAAQ,EAAE,wCAAwC,IAAI,CAAC,QAAQ,EAAE,uCAC1G,0BAA0B,CAAC,QAC/B,GAAG,CACN,CAAC;IACN,CAAC;IAEM,0BAA0B,CAAC,WAA4B,EAAE,OAAgB;QAC5E,IAAI,GAAG,GAAG,0CAA0C,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC/E,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;YACjC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,2BAAgB,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC;CACJ;AAED,MAAa,aAAa;;AAA1B,sCAUC;AAT0B,qBAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB,oBAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AACtB,qBAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB,mBAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AACpB,mCAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;AACpD,sBAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC1B,wBAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,2BAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AACpC,wBAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"RuntimeErrors.js","sourceRoot":"","sources":["../../../src/useCases/common/RuntimeErrors.ts"],"names":[],"mappings":";;;AAAA,gDAAqD;AAErD,2DAAwD;AAExD,MAAM,OAAO;IACF,OAAO,CAAC,OAAe,EAAE,IAAU;QACtC,OAAO,IAAI,2BAAgB,CAAC,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,2BAAgB,CAAC,kCAAkC,EAAE,gFAAgF,CAAC,CAAC;IACtJ,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,2BAAgB,CAAC,8BAA8B,EAAE,6FAA6F,CAAC,CAAC;IAC/J,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,2BAAgB,CAAC,8BAA8B,EAAE,yEAAyE,CAAC,CAAC;IAC3I,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,2BAAgB,CAAC,0BAA0B,EAAE,yFAAyF,CAAC,CAAC;IACvJ,CAAC;IAEM,cAAc,CAAC,UAA8B;QAChD,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,UAAU,YAAY,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,oEAAoE,CAAC,CAAC;IAChL,CAAC;IAEM,yBAAyB,CAAC,OAAe;QAC5C,OAAO,IAAI,2BAAgB,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAEM,oBAAoB,CAAC,OAAe;QACvC,OAAO,IAAI,2BAAgB,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAEM,cAAc,CAAC,OAAgB;QAClC,OAAO,IAAI,2BAAgB,CAAC,yCAAyC,EAAE,OAAO,IAAI,sEAAsE,CAAC,CAAC;IAC9J,CAAC;IAEM,YAAY,CAAC,OAAe;QAC/B,OAAO,IAAI,2BAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,mBAAmB;QACtB,OAAO,IAAI,2BAAgB,CAAC,mCAAmC,EAAE,wDAAwD,CAAC,CAAC;IAC/H,CAAC;IAEM,UAAU,CAAC,UAA6B,EAAE,EAAU;QACvD,OAAO,IAAI,2BAAgB,CAAC,0BAA0B,EAAE,gBAAgB,UAAU,YAAY,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,aAAa,EAAE,aAAa,CAAC,CAAC;IACvK,CAAC;CACJ;AAED,MAAM,MAAM;IACD,WAAW,CAAC,OAAe;QAC9B,OAAO,IAAI,2BAAgB,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAEM,OAAO,CAAC,OAAe;QAC1B,OAAO,IAAI,2BAAgB,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAEM,sBAAsB,CAAC,OAAe;QACzC,OAAO,IAAI,2BAAgB,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;CACJ;AAED,MAAM,KAAK;IACA,gBAAgB,CAAC,SAAiB;QACrC,OAAO,IAAI,2BAAgB,CACvB,sCAAsC,EACtC,wBAAwB,SAAS,6DAA6D,qCAAiB,CAAC,KAAK,SAAS,qCAAiB,CAAC,IAAI,IAAI,CAC3J,CAAC;IACN,CAAC;CACJ;AAED,MAAM,qBAAqB;IAChB,gCAAgC;QACnC,OAAO,IAAI,2BAAgB,CAAC,sEAAsE,EAAE,gDAAgD,CAAC,CAAC;IAC1J,CAAC;IAEM,iCAAiC;QACpC,OAAO,IAAI,2BAAgB,CAAC,uEAAuE,EAAE,iDAAiD,CAAC,CAAC;IAC5J,CAAC;IAEM,gBAAgB,CAAC,SAAiB;QACrC,OAAO,IAAI,2BAAgB,CACvB,sDAAsD,EACtD,wBAAwB,SAAS,8EAA8E,qCAAiB,CAAC,KAAK,SAAS,qCAAiB,CAAC,oBAAoB,IAAI,CAC5L,CAAC;IACN,CAAC;CACJ;AAED,MAAM,QAAQ;IACH,qBAAqB,CAAC,YAAoB;QAC7C,OAAO,IAAI,2BAAgB,CAAC,8CAA8C,EAAE,uBAAuB,YAAY,uCAAuC,CAAC,CAAC;IAC5J,CAAC;CACJ;AAED,MAAM,OAAO;IACF,eAAe;QAClB,OAAO,IAAI,2BAAgB,CAAC,uCAAuC,EAAE,qEAAqE,CAAC,CAAC;IAChJ,CAAC;IAEM,6BAA6B;QAChC,OAAO,IAAI,2BAAgB,CAAC,qDAAqD,EAAE,yEAAyE,CAAC,CAAC;IAClK,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,2BAAgB,CAAC,wCAAwC,EAAE,oEAAoE,CAAC,CAAC;IAChJ,CAAC;CACJ;AAED,MAAM,UAAU;IACL,gBAAgB;QACnB,OAAO,IAAI,2BAAgB,CAAC,2CAA2C,EAAE,2BAA2B,CAAC,CAAC;IAC1G,CAAC;IAEM,sBAAsB;QACzB,OAAO,IAAI,2BAAgB,CAAC,2CAA2C,EAAE,iCAAiC,CAAC,CAAC;IAChH,CAAC;CACJ;AAED,MAAM,aAAa;IACR,uCAAuC;QAC1C,OAAO,IAAI,2BAAgB,CAAC,qEAAqE,EAAE,+CAA+C,CAAC,CAAC;IACxJ,CAAC;IAEM,yCAAyC;QAC5C,OAAO,IAAI,2BAAgB,CAAC,uEAAuE,EAAE,6CAA6C,CAAC,CAAC;IACxJ,CAAC;IAEM,iCAAiC,CAAC,SAAiB;QACtD,OAAO,IAAI,2BAAgB,CACvB,+DAA+D,EAC/D,4BAA4B,SAAS,CAAC,QAAQ,EAAE,oCAAoC,CACvF,CAAC;IACN,CAAC;CACJ;AAED,MAAM,UAAU;IACL,qBAAqB,CAAC,WAA4B;QACrD,OAAO,IAAI,2BAAgB,CAAC,gDAAgD,EAAE,cAAc,WAAW,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;IACzJ,CAAC;IAEM,6CAA6C,CAChD,qBAAsC,EACtC,IAA0B,EAC1B,4BAA6C;QAE7C,OAAO,IAAI,2BAAgB,CACvB,wEAAwE,EACxE,uBAAuB,qBAAqB,CAAC,QAAQ,EAAE,wCAAwC,IAAI,CAAC,QAAQ,EAAE,uCAAuC,4BAA4B,CAAC,QAAQ,EAAE,GAAG,CAClM,CAAC;IACN,CAAC;IAEM,6DAA6D,CAChE,qBAAsC,EACtC,IAA0B,EAC1B,4BAA6C;QAE7C,OAAO,IAAI,2BAAgB,CACvB,wFAAwF,EACxF,0CAA0C,qBAAqB,CAAC,QAAQ,EAAE,wCAAwC,IAAI,CAAC,QAAQ,EAAE,kDAAkD,4BAA4B,CAAC,QAAQ,EAAE,GAAG,CAChO,CAAC;IACN,CAAC;IAEM,kDAAkD,CAAC,qBAAsC;QAC5F,OAAO,IAAI,2BAAgB,CACvB,6EAA6E,EAC7E,uBAAuB,qBAAqB,CAAC,QAAQ,EAAE,0HAA0H,CACpL,CAAC;IACN,CAAC;IAEM,0BAA0B,CAAC,WAA4B,EAAE,OAAgB;QAC5E,IAAI,GAAG,GAAG,0CAA0C,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC/E,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;YACjC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,2BAAgB,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC;CACJ;AAED,MAAa,aAAa;;AAA1B,sCAUC;AAT0B,qBAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB,oBAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AACtB,qBAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB,mBAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AACpB,mCAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;AACpD,sBAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC1B,wBAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,2BAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AACpC,wBAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
@@ -39,24 +39,22 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
39
39
  async executeInternal(request) {
40
40
  const repositoryAttributeSuccessorId = transport_1.CoreId.from(request.attributeId);
41
41
  const repositoryAttributeSuccessor = await this.attributeController.getLocalAttribute(repositoryAttributeSuccessorId);
42
- if (typeof repositoryAttributeSuccessor === "undefined") {
43
- return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor repository attribute doesn't exist."));
44
- }
45
- if (!repositoryAttributeSuccessor.isRepositoryAttribute()) {
46
- return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor attribute is not a valid repository attribute."));
47
- }
42
+ if (typeof repositoryAttributeSuccessor === "undefined")
43
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
44
+ if (!repositoryAttributeSuccessor.isRepositoryAttribute())
45
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttributeSuccessor.id));
48
46
  if (typeof repositoryAttributeSuccessor.succeededBy !== "undefined") {
49
- return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor repository attribute already has a successor. Can only share latest identity attribute from a succession chain."));
47
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeSuccessor.id));
50
48
  }
51
- const sharedAttributesQuery = {
49
+ const query = {
52
50
  "content.owner": this.accountController.identity.address.toString(),
53
51
  "content.@type": "IdentityAttribute",
54
- "shareInfo.sourceAttribute": request.attributeId,
52
+ "shareInfo.sourceAttribute": repositoryAttributeSuccessorId.toString(),
55
53
  "shareInfo.peer": request.peer
56
54
  };
57
- const sharedAttributes = await this.attributeController.getLocalAttributes(sharedAttributesQuery);
58
- if (sharedAttributes.length > 0) {
59
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, sharedAttributes[0].id));
55
+ const ownSharedIdentityAttributesOfRepositoryAttributeSuccessor = await this.attributeController.getLocalAttributes(query);
56
+ if (ownSharedIdentityAttributesOfRepositoryAttributeSuccessor.length > 0) {
57
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeSuccessor[0].id));
60
58
  }
61
59
  const repositoryAttributeVersions = await this.attributeController.getVersionsOfAttribute(repositoryAttributeSuccessorId);
62
60
  const repositoryAttributeVersionIds = repositoryAttributeVersions.map((x) => x.id.toString());
@@ -67,7 +65,7 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
67
65
  };
68
66
  const candidatePredecessors = await this.attributeController.getLocalAttributes(candidatePredecessorsQuery);
69
67
  if (candidatePredecessors.length === 0) {
70
- throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `ShareAttribute`.");
68
+ throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `ShareIdentityAttribute`.");
71
69
  }
72
70
  if (candidatePredecessors.length > 1) {
73
71
  throw common_1.RuntimeErrors.attributes.detectedErroneousAttribute(request.attributeId, "The attribute has shared copies of predecessing versions that are not in a succession chain.");
@@ -1 +1 @@
1
- {"version":3,"file":"NotifyPeerAboutIdentityAttributeSuccession.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/NotifyPeerAboutIdentityAttributeSuccession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotifyPeerAboutIdentityAttributeSuccession.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/NotifyPeerAboutIdentityAttributeSuccession.ts"],"names":[],"mappings":"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"}
@@ -39,19 +39,47 @@ let ShareIdentityAttributeUseCase = class ShareIdentityAttributeUseCase extends
39
39
  }
40
40
  async executeInternal(request) {
41
41
  const repositoryAttribute = await this.attributeController.getLocalAttribute(transport_1.CoreId.from(request.attributeId));
42
- if (!repositoryAttribute)
43
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute));
42
+ if (typeof repositoryAttribute === "undefined")
43
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
44
44
  if (!repositoryAttribute.isRepositoryAttribute())
45
45
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttribute.id));
46
- const sharedAttributesQuery = {
46
+ const query = {
47
47
  "content.owner": this.accountController.identity.address.toString(),
48
48
  "content.@type": "IdentityAttribute",
49
49
  "shareInfo.sourceAttribute": request.attributeId,
50
50
  "shareInfo.peer": request.peer
51
51
  };
52
- const sharedAttributes = await this.attributeController.getLocalAttributes(sharedAttributesQuery);
53
- if (sharedAttributes.length > 0) {
54
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, sharedAttributes[0].id));
52
+ const ownSharedIdentityAttributesOfRepositoryAttribute = await this.attributeController.getLocalAttributes(query);
53
+ if (ownSharedIdentityAttributesOfRepositoryAttribute.length > 0) {
54
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttribute[0].id));
55
+ }
56
+ let repositoryAttributeVersion = repositoryAttribute;
57
+ while (typeof repositoryAttributeVersion.succeededBy !== "undefined") {
58
+ repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeededBy));
59
+ const query = {
60
+ "content.owner": this.accountController.identity.address.toString(),
61
+ "content.@type": "IdentityAttribute",
62
+ "shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
63
+ "shareInfo.peer": request.peer
64
+ };
65
+ const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
66
+ if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
67
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
68
+ }
69
+ }
70
+ repositoryAttributeVersion = repositoryAttribute;
71
+ while (typeof repositoryAttributeVersion.succeeds !== "undefined") {
72
+ repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeeds));
73
+ const query = {
74
+ "content.owner": this.accountController.identity.address.toString(),
75
+ "content.@type": "IdentityAttribute",
76
+ "shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
77
+ "shareInfo.peer": request.peer
78
+ };
79
+ const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
80
+ if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
81
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
82
+ }
55
83
  }
56
84
  const requestMetadata = request.requestMetadata ?? {};
57
85
  const requestParams = consumption_1.CreateOutgoingRequestParameters.from({
@@ -1 +1 @@
1
- {"version":3,"file":"ShareIdentityAttribute.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/ShareIdentityAttribute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShareIdentityAttribute.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/ShareIdentityAttribute.ts"],"names":[],"mappings":"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"}
@@ -555,10 +555,10 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
555
555
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
556
556
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
557
557
  exports.buildInformation = {
558
- version: "3.0.0",
559
- build: "176",
560
- date: "2023-12-04T13:24:23+00:00",
561
- commit: "3828122d5ed75b552ee87bd2780a0dc293c5cf00",
558
+ version: "3.0.1",
559
+ build: "177",
560
+ date: "2023-12-05T14:35:42+00:00",
561
+ commit: "925dfa548d17ca3b0bb184e99bca28906092ec74",
562
562
  dependencies: {"@js-soft/docdb-querytranslator":"1.1.2","@js-soft/logging-abstractions":"1.0.1","@js-soft/ts-serval":"2.0.10","@js-soft/ts-utils":"^2.3.3","@nmshd/consumption":"3.7.4","@nmshd/content":"2.8.1","@nmshd/crypto":"2.0.5","@nmshd/transport":"2.1.4","ajv":"^8.12.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.4.4","qrcode":"1.5.3","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
563
563
  libraries: {
564
564
  serval: ts_serval_1.buildInformation,
@@ -6516,8 +6516,14 @@ class Attributes {
6516
6516
  isNoIdentityAttribute(attributeId) {
6517
6517
  return new ts_utils_1.ApplicationError("error.runtime.attributes.isNoIdentityAttribute", `Attribute '${attributeId.toString()}' is not an identity attribute.`);
6518
6518
  }
6519
- identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttribute) {
6520
- return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${ownSharedIdentityAttribute.toString}.`);
6519
+ identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
6520
+ return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
6521
+ }
6522
+ anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
6523
+ return new ts_utils_1.ApplicationError("error.runtime.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer", `Another version of identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of previously shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
6524
+ }
6525
+ canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeId) {
6526
+ return new ts_utils_1.ApplicationError("error.runtime.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute", `Identity attribute '${repositoryAttributeId.toString()}' is not the latest version the attribute. Peers can only be notified about the latest version of an identity attribute.`);
6521
6527
  }
6522
6528
  detectedErroneousAttribute(attributeId, message) {
6523
6529
  let msg = `Detected an error regarding attribute '${attributeId.toString()}'.`;
@@ -29217,24 +29223,22 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
29217
29223
  async executeInternal(request) {
29218
29224
  const repositoryAttributeSuccessorId = transport_1.CoreId.from(request.attributeId);
29219
29225
  const repositoryAttributeSuccessor = await this.attributeController.getLocalAttribute(repositoryAttributeSuccessorId);
29220
- if (typeof repositoryAttributeSuccessor === "undefined") {
29221
- return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor repository attribute doesn't exist."));
29222
- }
29223
- if (!repositoryAttributeSuccessor.isRepositoryAttribute()) {
29224
- return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor attribute is not a valid repository attribute."));
29225
- }
29226
+ if (typeof repositoryAttributeSuccessor === "undefined")
29227
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
29228
+ if (!repositoryAttributeSuccessor.isRepositoryAttribute())
29229
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttributeSuccessor.id));
29226
29230
  if (typeof repositoryAttributeSuccessor.succeededBy !== "undefined") {
29227
- return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor repository attribute already has a successor. Can only share latest identity attribute from a succession chain."));
29231
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeSuccessor.id));
29228
29232
  }
29229
- const sharedAttributesQuery = {
29233
+ const query = {
29230
29234
  "content.owner": this.accountController.identity.address.toString(),
29231
29235
  "content.@type": "IdentityAttribute",
29232
- "shareInfo.sourceAttribute": request.attributeId,
29236
+ "shareInfo.sourceAttribute": repositoryAttributeSuccessorId.toString(),
29233
29237
  "shareInfo.peer": request.peer
29234
29238
  };
29235
- const sharedAttributes = await this.attributeController.getLocalAttributes(sharedAttributesQuery);
29236
- if (sharedAttributes.length > 0) {
29237
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, sharedAttributes[0].id));
29239
+ const ownSharedIdentityAttributesOfRepositoryAttributeSuccessor = await this.attributeController.getLocalAttributes(query);
29240
+ if (ownSharedIdentityAttributesOfRepositoryAttributeSuccessor.length > 0) {
29241
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeSuccessor[0].id));
29238
29242
  }
29239
29243
  const repositoryAttributeVersions = await this.attributeController.getVersionsOfAttribute(repositoryAttributeSuccessorId);
29240
29244
  const repositoryAttributeVersionIds = repositoryAttributeVersions.map((x) => x.id.toString());
@@ -29245,7 +29249,7 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
29245
29249
  };
29246
29250
  const candidatePredecessors = await this.attributeController.getLocalAttributes(candidatePredecessorsQuery);
29247
29251
  if (candidatePredecessors.length === 0) {
29248
- throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `ShareAttribute`.");
29252
+ throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `ShareIdentityAttribute`.");
29249
29253
  }
29250
29254
  if (candidatePredecessors.length > 1) {
29251
29255
  throw common_1.RuntimeErrors.attributes.detectedErroneousAttribute(request.attributeId, "The attribute has shared copies of predecessing versions that are not in a succession chain.");
@@ -29347,19 +29351,47 @@ let ShareIdentityAttributeUseCase = class ShareIdentityAttributeUseCase extends
29347
29351
  }
29348
29352
  async executeInternal(request) {
29349
29353
  const repositoryAttribute = await this.attributeController.getLocalAttribute(transport_1.CoreId.from(request.attributeId));
29350
- if (!repositoryAttribute)
29351
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute));
29354
+ if (typeof repositoryAttribute === "undefined")
29355
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
29352
29356
  if (!repositoryAttribute.isRepositoryAttribute())
29353
29357
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttribute.id));
29354
- const sharedAttributesQuery = {
29358
+ const query = {
29355
29359
  "content.owner": this.accountController.identity.address.toString(),
29356
29360
  "content.@type": "IdentityAttribute",
29357
29361
  "shareInfo.sourceAttribute": request.attributeId,
29358
29362
  "shareInfo.peer": request.peer
29359
29363
  };
29360
- const sharedAttributes = await this.attributeController.getLocalAttributes(sharedAttributesQuery);
29361
- if (sharedAttributes.length > 0) {
29362
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, sharedAttributes[0].id));
29364
+ const ownSharedIdentityAttributesOfRepositoryAttribute = await this.attributeController.getLocalAttributes(query);
29365
+ if (ownSharedIdentityAttributesOfRepositoryAttribute.length > 0) {
29366
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttribute[0].id));
29367
+ }
29368
+ let repositoryAttributeVersion = repositoryAttribute;
29369
+ while (typeof repositoryAttributeVersion.succeededBy !== "undefined") {
29370
+ repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeededBy));
29371
+ const query = {
29372
+ "content.owner": this.accountController.identity.address.toString(),
29373
+ "content.@type": "IdentityAttribute",
29374
+ "shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
29375
+ "shareInfo.peer": request.peer
29376
+ };
29377
+ const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
29378
+ if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
29379
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
29380
+ }
29381
+ }
29382
+ repositoryAttributeVersion = repositoryAttribute;
29383
+ while (typeof repositoryAttributeVersion.succeeds !== "undefined") {
29384
+ repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeeds));
29385
+ const query = {
29386
+ "content.owner": this.accountController.identity.address.toString(),
29387
+ "content.@type": "IdentityAttribute",
29388
+ "shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
29389
+ "shareInfo.peer": request.peer
29390
+ };
29391
+ const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
29392
+ if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
29393
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
29394
+ }
29363
29395
  }
29364
29396
  const requestMetadata = request.requestMetadata ?? {};
29365
29397
  const requestParams = consumption_1.CreateOutgoingRequestParameters.from({