@nmshd/consumption 3.9.7 → 3.10.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 (81) hide show
  1. package/dist/buildInformation.js +4 -4
  2. package/dist/consumption/ConsumptionController.d.ts.map +1 -1
  3. package/dist/consumption/ConsumptionController.js +5 -1
  4. package/dist/consumption/ConsumptionController.js.map +1 -1
  5. package/dist/consumption/CoreErrors.d.ts +17 -3
  6. package/dist/consumption/CoreErrors.d.ts.map +1 -1
  7. package/dist/consumption/CoreErrors.js +46 -4
  8. package/dist/consumption/CoreErrors.js.map +1 -1
  9. package/dist/modules/attributes/AttributesController.d.ts +12 -0
  10. package/dist/modules/attributes/AttributesController.d.ts.map +1 -1
  11. package/dist/modules/attributes/AttributesController.js +167 -52
  12. package/dist/modules/attributes/AttributesController.js.map +1 -1
  13. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.d.ts +7 -0
  14. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.d.ts.map +1 -0
  15. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.js +12 -0
  16. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.js.map +1 -0
  17. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.d.ts +7 -0
  18. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.d.ts.map +1 -0
  19. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.js +12 -0
  20. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.js.map +1 -0
  21. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.d.ts +7 -0
  22. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.d.ts.map +1 -0
  23. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.js +12 -0
  24. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.js.map +1 -0
  25. package/dist/modules/attributes/events/index.d.ts +3 -0
  26. package/dist/modules/attributes/events/index.d.ts.map +1 -1
  27. package/dist/modules/attributes/events/index.js +3 -0
  28. package/dist/modules/attributes/events/index.js.map +1 -1
  29. package/dist/modules/attributes/index.d.ts +1 -0
  30. package/dist/modules/attributes/index.d.ts.map +1 -1
  31. package/dist/modules/attributes/index.js +1 -0
  32. package/dist/modules/attributes/index.js.map +1 -1
  33. package/dist/modules/attributes/local/LocalAttribute.d.ts +20 -9
  34. package/dist/modules/attributes/local/LocalAttribute.d.ts.map +1 -1
  35. package/dist/modules/attributes/local/LocalAttribute.js +48 -13
  36. package/dist/modules/attributes/local/LocalAttribute.js.map +1 -1
  37. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts +21 -0
  38. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts.map +1 -0
  39. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js +40 -0
  40. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js.map +1 -0
  41. package/dist/modules/notifications/index.d.ts +3 -0
  42. package/dist/modules/notifications/index.d.ts.map +1 -1
  43. package/dist/modules/notifications/index.js +3 -0
  44. package/dist/modules/notifications/index.js.map +1 -1
  45. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.d.ts +14 -0
  46. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.d.ts.map +1 -0
  47. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js +56 -0
  48. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js.map +1 -0
  49. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.d.ts +14 -0
  50. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -0
  51. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js +57 -0
  52. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -0
  53. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts +14 -0
  54. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -0
  55. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.js +57 -0
  56. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -0
  57. package/dist/modules/requests/index.d.ts +2 -0
  58. package/dist/modules/requests/index.d.ts.map +1 -1
  59. package/dist/modules/requests/index.js +2 -0
  60. package/dist/modules/requests/index.js.map +1 -1
  61. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.d.ts +11 -0
  62. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.d.ts.map +1 -0
  63. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.js +29 -0
  64. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.js.map +1 -0
  65. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.d.ts +13 -0
  66. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.d.ts.map +1 -0
  67. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js +87 -0
  68. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js.map +1 -0
  69. package/dist/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.js +1 -1
  70. package/dist/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.js.map +1 -1
  71. package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.js +1 -1
  72. package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.js.map +1 -1
  73. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +1 -1
  74. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
  75. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +1 -1
  76. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
  77. package/lib-web/nmshd.consumption.js +735 -78
  78. package/lib-web/nmshd.consumption.js.map +1 -1
  79. package/lib-web/nmshd.consumption.min.js +1 -1
  80. package/lib-web/nmshd.consumption.min.js.map +1 -1
  81. package/package.json +1 -1
@@ -6,10 +6,10 @@ const content_1 = require("@nmshd/content");
6
6
  const crypto_1 = require("@nmshd/crypto");
7
7
  const transport_1 = require("@nmshd/transport");
8
8
  exports.buildInformation = {
9
- version: "3.9.7",
10
- build: "64",
11
- date: "2024-04-08T14:18:17+00:00",
12
- commit: "2c9d6dbb7fd529de72e9693b07ad44c49073c795",
9
+ version: "3.10.0",
10
+ build: "73",
11
+ date: "2024-04-22T15:09:27+00:00",
12
+ commit: "af98434e2550967725b8ccbe38a854e88140cb7f",
13
13
  dependencies: {"@js-soft/docdb-querytranslator":"^1.1.4","@nmshd/iql":"^1.0.2","ts-simple-nameof":"^1.3.1"},
14
14
  libraries: {
15
15
  transport: transport_1.buildInformation,
@@ -1 +1 @@
1
- {"version":3,"file":"ConsumptionController.d.ts","sourceRoot":"","sources":["../../src/consumption/ConsumptionController.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACH,4BAA4B,EAC5B,oBAAoB,EAEpB,gBAAgB,EAGhB,0BAA0B,EAC1B,2BAA2B,EAC3B,oCAAoC,EAEpC,uBAAuB,EACvB,0BAA0B,EAK1B,sBAAsB,EACtB,+BAA+B,EAE/B,kBAAkB,EAErB,MAAM,YAAY,CAAC;AAEpB,qBAAa,qBAAqB;aAEV,SAAS,EAAE,SAAS;aACpB,iBAAiB,EAAE,iBAAiB;gBADpC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB;IAGxD,OAAO,CAAC,WAAW,CAAuB;IAC1C,IAAW,UAAU,IAAI,oBAAoB,CAE5C;IAED,OAAO,CAAC,OAAO,CAAmB;IAClC,IAAW,MAAM,IAAI,gBAAgB,CAEpC;IAED,OAAO,CAAC,iBAAiB,CAA6B;IACtD,IAAW,gBAAgB,IAAI,0BAA0B,CAExD;IAED,OAAO,CAAC,iBAAiB,CAA6B;IACtD,IAAW,gBAAgB,IAAI,0BAA0B,CAExD;IAED,OAAO,CAAC,SAAS,CAAqB;IACtC,IAAW,QAAQ,IAAI,kBAAkB,CAExC;IAED,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,IAAW,kBAAkB,IAAI,4BAA4B,CAE5D;IAED,OAAO,CAAC,cAAc,CAA0B;IAChD,IAAW,aAAa,IAAI,uBAAuB,CAElD;IAEY,IAAI,CACb,6BAA6B,+DAAqE,EAClG,kCAAkC,yEAA+E,GAClH,OAAO,CAAC,qBAAqB,CAAC;IA6CjC,OAAO,CAAC,+BAA+B;IAavC,OAAO,CAAC,oCAAoC;CAK/C"}
1
+ {"version":3,"file":"ConsumptionController.d.ts","sourceRoot":"","sources":["../../src/consumption/ConsumptionController.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACH,4BAA4B,EAC5B,oBAAoB,EAGpB,gBAAgB,EAGhB,0BAA0B,EAC1B,2BAA2B,EAC3B,oCAAoC,EAEpC,uBAAuB,EACvB,0BAA0B,EAO1B,sBAAsB,EACtB,+BAA+B,EAE/B,kBAAkB,EAGrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,qBAAqB;aAEV,SAAS,EAAE,SAAS;aACpB,iBAAiB,EAAE,iBAAiB;gBADpC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB;IAGxD,OAAO,CAAC,WAAW,CAAuB;IAC1C,IAAW,UAAU,IAAI,oBAAoB,CAE5C;IAED,OAAO,CAAC,OAAO,CAAmB;IAClC,IAAW,MAAM,IAAI,gBAAgB,CAEpC;IAED,OAAO,CAAC,iBAAiB,CAA6B;IACtD,IAAW,gBAAgB,IAAI,0BAA0B,CAExD;IAED,OAAO,CAAC,iBAAiB,CAA6B;IACtD,IAAW,gBAAgB,IAAI,0BAA0B,CAExD;IAED,OAAO,CAAC,SAAS,CAAqB;IACtC,IAAW,QAAQ,IAAI,kBAAkB,CAExC;IAED,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,IAAW,kBAAkB,IAAI,4BAA4B,CAE5D;IAED,OAAO,CAAC,cAAc,CAA0B;IAChD,IAAW,aAAa,IAAI,uBAAuB,CAElD;IAEY,IAAI,CACb,6BAA6B,+DAAqE,EAClG,kCAAkC,yEAA+E,GAClH,OAAO,CAAC,qBAAqB,CAAC;IA6CjC,OAAO,CAAC,+BAA+B;IAcvC,OAAO,CAAC,oCAAoC;CAQ/C"}
@@ -51,6 +51,7 @@ class ConsumptionController {
51
51
  return new Map([
52
52
  [content_1.ShareAttributeRequestItem, modules_1.ShareAttributeRequestItemProcessor],
53
53
  [content_1.CreateAttributeRequestItem, modules_1.CreateAttributeRequestItemProcessor],
54
+ [content_1.DeleteAttributeRequestItem, modules_1.DeleteAttributeRequestItemProcessor],
54
55
  [content_1.ReadAttributeRequestItem, modules_1.ReadAttributeRequestItemProcessor],
55
56
  [content_1.ProposeAttributeRequestItem, modules_1.ProposeAttributeRequestItemProcessor],
56
57
  [content_1.ConsentRequestItem, modules_1.GenericRequestItemProcessor],
@@ -61,7 +62,10 @@ class ConsumptionController {
61
62
  }
62
63
  getDefaultNotificationItemProcessors() {
63
64
  return new Map([
64
- [content_1.PeerSharedAttributeSucceededNotificationItem, modules_1.PeerSharedAttributeSucceededNotificationItemProcessor]
65
+ [content_1.PeerSharedAttributeSucceededNotificationItem, modules_1.PeerSharedAttributeSucceededNotificationItemProcessor],
66
+ [content_1.OwnSharedAttributeDeletedByOwnerNotificationItem, modules_1.OwnSharedAttributeDeletedByOwnerNotificationItemProcessor],
67
+ [content_1.PeerSharedAttributeDeletedByPeerNotificationItem, modules_1.PeerSharedAttributeDeletedByPeerNotificationItemProcessor],
68
+ [content_1.ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItem, modules_1.ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor]
65
69
  ]);
66
70
  }
67
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConsumptionController.js","sourceRoot":"","sources":["../../src/consumption/ConsumptionController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsumptionController.js","sourceRoot":"","sources":["../../src/consumption/ConsumptionController.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ApplicationError } from "@js-soft/ts-utils";
2
- import { CoreError, CoreId } from "@nmshd/transport";
2
+ import { CoreAddress, CoreError, CoreId } from "@nmshd/transport";
3
3
  declare class Attributes {
4
4
  successorIsNotAValidAttribute(error: any): CoreError;
5
5
  successionMustNotChangeKey(): CoreError;
@@ -7,7 +7,8 @@ declare class Attributes {
7
7
  predecessorSourceAttributeIsNotRepositoryAttribute(): CoreError;
8
8
  successorSourceAttributeIsNotRepositoryAttribute(): CoreError;
9
9
  successorSourceDoesNotSucceedPredecessorSource(): CoreError;
10
- sourceContentIsNotEqualToCopyContent(): CoreError;
10
+ predecessorSourceContentIsNotEqualToCopyContent(): CoreError;
11
+ successorSourceContentIsNotEqualToCopyContent(): CoreError;
11
12
  cannotSucceedChildOfComplexAttribute(parentId: string | CoreId): CoreError;
12
13
  successorMustNotYetExist(): CoreError;
13
14
  successorMustNotHaveASuccessor(comment?: string): CoreError;
@@ -23,18 +24,31 @@ declare class Attributes {
23
24
  successorIsNotPeerSharedRelationshipAttribute(): CoreError;
24
25
  setPredecessorIdDoesNotMatchActualPredecessorId(): CoreError;
25
26
  predecessorDoesNotExist(): CoreError;
27
+ successorDoesNotExist(): CoreError;
28
+ successorSourceAttributeIsNotSpecified(): CoreError;
29
+ successorSourceAttributeDoesNotExist(): CoreError;
26
30
  successionMustNotChangeOwner(): CoreError;
27
31
  successionMustNotChangeValueType(): CoreError;
28
32
  successionMustNotChangeContentType(): CoreError;
29
33
  successionMustNotChangePeer(comment?: string): CoreError;
30
34
  cannotSucceedAttributesWithASuccessor(successorId: string | CoreId): CoreError;
31
35
  invalidParentSuccessor(parentSuccessorId: string | CoreId): CoreError;
36
+ cannotSucceedAttributesWithDeletionInfo(): CoreError;
37
+ cannotSetDeletionInfoOfRepositoryAttributes(): CoreError;
38
+ invalidDeletionInfoOfOwnSharedAttribute(): CoreError;
39
+ invalidDeletionInfoOfPeerSharedAttribute(): CoreError;
40
+ invalidDeletionInfoOfThirdPartyOwnedRelationshipAttribute(): CoreError;
32
41
  invalidPropertyValue(message: string): CoreError;
42
+ isNotSharedAttribute(attributeId: string | CoreId): CoreError;
43
+ isNotOwnSharedAttribute(attributeId: string | CoreId): CoreError;
44
+ isNotPeerSharedAttribute(attributeId: string | CoreId): CoreError;
45
+ isNotThirdPartyOwnedRelationshipAttribute(attributeId: string | CoreId): CoreError;
46
+ senderIsNotPeerOfSharedAttribute(senderId: string | CoreAddress, attributeId: string | CoreId): CoreError;
33
47
  }
34
48
  declare class Requests {
35
49
  unexpectedErrorDuringRequestItemProcessing(error: any): CoreError;
36
50
  servalErrorDuringRequestItemProcessing(error: any): CoreError;
37
- invalidAcceptParameters(): ApplicationError;
51
+ invalidAcceptParameters(message: string): ApplicationError;
38
52
  invalidRequestItem(message: string): CoreError;
39
53
  private static readonly _decideValidation;
40
54
  readonly decideValidation: {
@@ -1 +1 @@
1
- {"version":3,"file":"CoreErrors.d.ts","sourceRoot":"","sources":["../../src/consumption/CoreErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErD,cAAM,UAAU;IACL,6BAA6B,CAAC,KAAK,EAAE,GAAG;IAUxC,0BAA0B;IAO1B,wBAAwB;IAIxB,kDAAkD;IAIlD,gDAAgD;IAIhD,8CAA8C;IAO9C,oCAAoC;IAOpC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAO9D,wBAAwB;IAOxB,8BAA8B,CAAC,OAAO,CAAC,EAAE,MAAM;IAM/C,mCAAmC;IAInC,0CAA0C;IAI1C,2CAA2C;IAI3C,8CAA8C;IAI9C,+CAA+C;IAI/C,iCAAiC;IAIjC,wCAAwC;IAIxC,yCAAyC;IAIzC,4CAA4C;IAI5C,6CAA6C;IAI7C,+CAA+C;IAO/C,uBAAuB;IAIvB,4BAA4B;IAO5B,gCAAgC;IAOhC,kCAAkC;IAOlC,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM;IAM5C,qCAAqC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOlE,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM;IAIzD,oBAAoB,CAAC,OAAO,EAAE,MAAM;CAG9C;AAED,cAAM,QAAQ;IACH,0CAA0C,CAAC,KAAK,EAAE,GAAG;IAUrD,sCAAsC,CAAC,KAAK,EAAE,GAAG;IAUjD,uBAAuB,IAAI,gBAAgB;IAI3C,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAIzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CA0BvC;IAEF,SAAgB,gBAAgB;sCA3BS,MAAM;kDAIM,MAAM,GAAG,gBAAgB;+CAI5B,MAAM,GAAG,gBAAgB;iDAIvB,gBAAgB;iDAOhB,gBAAgB;MAQA;CACvE;AAED,qBAAa,UAAU;IACnB,OAAc,UAAU,aAAoB;IAC5C,OAAc,QAAQ,WAAkB;CAC3C"}
1
+ {"version":3,"file":"CoreErrors.d.ts","sourceRoot":"","sources":["../../src/consumption/CoreErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAElE,cAAM,UAAU;IACL,6BAA6B,CAAC,KAAK,EAAE,GAAG;IAUxC,0BAA0B;IAO1B,wBAAwB;IAIxB,kDAAkD;IAIlD,gDAAgD;IAIhD,8CAA8C;IAO9C,+CAA+C;IAO/C,6CAA6C;IAO7C,oCAAoC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAO9D,wBAAwB;IAOxB,8BAA8B,CAAC,OAAO,CAAC,EAAE,MAAM;IAM/C,mCAAmC;IAInC,0CAA0C;IAI1C,2CAA2C;IAI3C,8CAA8C;IAI9C,+CAA+C;IAI/C,iCAAiC;IAIjC,wCAAwC;IAIxC,yCAAyC;IAIzC,4CAA4C;IAI5C,6CAA6C;IAI7C,+CAA+C;IAO/C,uBAAuB;IAIvB,qBAAqB;IAIrB,sCAAsC;IAItC,oCAAoC;IAIpC,4BAA4B;IAO5B,gCAAgC;IAOhC,kCAAkC;IAOlC,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM;IAM5C,qCAAqC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOlE,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM;IAIzD,uCAAuC;IAOvC,2CAA2C;IAO3C,uCAAuC;IAOvC,wCAAwC;IAOxC,yDAAyD;IAOzD,oBAAoB,CAAC,OAAO,EAAE,MAAM;IAIpC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIjD,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIpD,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIrD,yCAAyC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOtE,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;CAMvG;AAED,cAAM,QAAQ;IACH,0CAA0C,CAAC,KAAK,EAAE,GAAG;IAUrD,sCAAsC,CAAC,KAAK,EAAE,GAAG;IAUjD,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAI1D,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAIzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CA0BvC;IAEF,SAAgB,gBAAgB;sCA3BS,MAAM;kDAIM,MAAM,GAAG,gBAAgB;+CAI5B,MAAM,GAAG,gBAAgB;iDAIvB,gBAAgB;iDAOhB,gBAAgB;MAQA;CACvE;AAED,qBAAa,UAAU;IACnB,OAAc,UAAU,aAAoB;IAC5C,OAAc,QAAQ,WAAkB;CAC3C"}
@@ -22,8 +22,11 @@ class Attributes {
22
22
  successorSourceDoesNotSucceedPredecessorSource() {
23
23
  return new transport_1.CoreError("error.consumption.attributes.successorSourceDoesNotSucceedPredecessorSource", "Predecessor source attribute is not succeeded by successor source attribute.");
24
24
  }
25
- sourceContentIsNotEqualToCopyContent() {
26
- return new transport_1.CoreError("error.consumption.attributes.sourceContentIsNotEqualToCopyContent", "Successor source attribute contents don't match successor shared attribute copy.");
25
+ predecessorSourceContentIsNotEqualToCopyContent() {
26
+ return new transport_1.CoreError("error.consumption.attributes.predecessorSourceContentIsNotEqualToCopyContent", "Predecessor source attribute content doesn't match predecessor shared attribute copy.");
27
+ }
28
+ successorSourceContentIsNotEqualToCopyContent() {
29
+ return new transport_1.CoreError("error.consumption.attributes.successorSourceContentIsNotEqualToCopyContent", "Successor source attribute content doesn't match successor shared attribute copy.");
27
30
  }
28
31
  cannotSucceedChildOfComplexAttribute(parentId) {
29
32
  return new transport_1.CoreError("error.consumption.attributes.cannotSucceedChildOfComplexAttribute", `The attribute you want to succeed is child attribute of a complex attribute (id: ${parentId}), and cannot be succeeded on its own. Instead, succeed the parent which will implicitly succeed all its children.`);
@@ -73,6 +76,15 @@ class Attributes {
73
76
  predecessorDoesNotExist() {
74
77
  return new transport_1.CoreError("error.consumption.attributes.predecessorDoesNotExist", "The predecessor does not exist.");
75
78
  }
79
+ successorDoesNotExist() {
80
+ return new transport_1.CoreError("error.consumption.attributes.successorDoesNotExist", "The successor does not exist.");
81
+ }
82
+ successorSourceAttributeIsNotSpecified() {
83
+ return new transport_1.CoreError("error.consumption.attributes.successorSourceAttributeIsNotSpecified", "You must specify the source attribute of the successor.");
84
+ }
85
+ successorSourceAttributeDoesNotExist() {
86
+ return new transport_1.CoreError("error.consumption.attributes.successorSourceAttributeDoesNotExist", "The successor source Attribute does not exist.");
87
+ }
76
88
  successionMustNotChangeOwner() {
77
89
  return new transport_1.CoreError("error.consumption.attributes.successionMustNotChangeOwner", "The successor attribute's owner does not match that of the predecessor. An attribute succession must not change the attribute's owner.");
78
90
  }
@@ -94,9 +106,39 @@ class Attributes {
94
106
  invalidParentSuccessor(parentSuccessorId) {
95
107
  return new transport_1.CoreError("error.consumption.attributes.invalidParentSuccessor", `The complex parent successor (id: ${parentSuccessorId}) does not exist.`);
96
108
  }
109
+ cannotSucceedAttributesWithDeletionInfo() {
110
+ return new transport_1.CoreError("error.consumption.attributes.cannotSucceedAttributesWithDeletionInfo", "You cannot succeed attributes with a deletionInfo, since the peer may have already deleted it or marked it for deletion.");
111
+ }
112
+ cannotSetDeletionInfoOfRepositoryAttributes() {
113
+ return new transport_1.CoreError("error.consumption.attributes.cannotSetDeletionInfoOfRepositoryAttributes", "RepositoryAttributes can not have a deletionInfo, since they are not shared with a peer and you can delete them directly.");
114
+ }
115
+ invalidDeletionInfoOfOwnSharedAttribute() {
116
+ return new transport_1.CoreError("error.consumption.attributes.invalidDeletionInfoOfOwnSharedAttribute", "The only valid deletionStatuses for own shared Attributes are 'DeletedByPeer' or 'ToBeDeletedByPeer'.");
117
+ }
118
+ invalidDeletionInfoOfPeerSharedAttribute() {
119
+ return new transport_1.CoreError("error.consumption.attributes.invalidDeletionInfoOfPeerSharedAttribute", "The only valid deletionStatuses for peer shared Attributes are 'DeletedByOwner' or 'ToBeDeleted'.");
120
+ }
121
+ invalidDeletionInfoOfThirdPartyOwnedRelationshipAttribute() {
122
+ return new transport_1.CoreError("error.consumption.attributes.invalidDeletionInfoOfThirdPartyOwnedRelationshipAttribute", "The only valid deletionStatus for third party owned RelationshipAttributes is 'DeletedByPeer'.");
123
+ }
97
124
  invalidPropertyValue(message) {
98
125
  return new transport_1.CoreError("error.consumption.attributes.invalidPropertyValue", message);
99
126
  }
127
+ isNotSharedAttribute(attributeId) {
128
+ return new transport_1.CoreError("error.consumption.attributes.isNotSharedAttribute", `The attribute (id: ${attributeId}) is not a shared attribute.`);
129
+ }
130
+ isNotOwnSharedAttribute(attributeId) {
131
+ return new transport_1.CoreError("error.consumption.attributes.isNotOwnSharedAttribute", `The attribute (id: ${attributeId}) is not an own shared attribute.`);
132
+ }
133
+ isNotPeerSharedAttribute(attributeId) {
134
+ return new transport_1.CoreError("error.consumption.attributes.isNotPeerSharedAttribute", `The attribute (id: ${attributeId}) is not a peer shared attribute.`);
135
+ }
136
+ isNotThirdPartyOwnedRelationshipAttribute(attributeId) {
137
+ return new transport_1.CoreError("error.consumption.attributes.isNotThirdPartyOwnedRelationshipAttribute", `The attribute (id: ${attributeId}) is not a third party owned RelationshipAttribute.`);
138
+ }
139
+ senderIsNotPeerOfSharedAttribute(senderId, attributeId) {
140
+ return new transport_1.CoreError("error.consumption.attributes.senderIsNotPeerOfSharedAttribute", `The sender (id: ${senderId}) is not the peer you shared the attribute (id: ${attributeId}) with.`);
141
+ }
100
142
  }
101
143
  class Requests {
102
144
  constructor() {
@@ -108,8 +150,8 @@ class Requests {
108
150
  servalErrorDuringRequestItemProcessing(error) {
109
151
  return new transport_1.CoreError("error.consumption.requests.servalErrorDuringRequestItemProcessing", error instanceof Error ? error.message : `Serval error: '${JSON.stringify(error)}'`, undefined, undefined, error);
110
152
  }
111
- invalidAcceptParameters() {
112
- return new ts_utils_1.ApplicationError("error.consumption.requests.canAccept.invalidAcceptParameters", "The RequestItem was answered with incorrect parameters.");
153
+ invalidAcceptParameters(message) {
154
+ return new ts_utils_1.ApplicationError("error.consumption.requests.invalidAcceptParameters", message);
113
155
  }
114
156
  invalidRequestItem(message) {
115
157
  return new transport_1.CoreError("error.consumption.requests.invalidRequestItem", message);
@@ -1 +1 @@
1
- {"version":3,"file":"CoreErrors.js","sourceRoot":"","sources":["../../src/consumption/CoreErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreErrors.js","sourceRoot":"","sources":["../../src/consumption/CoreErrors.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ export declare class AttributesController extends ConsumptionBaseController {
33
33
  createSharedLocalAttributeCopy(params: ICreateSharedLocalAttributeCopyParams): Promise<LocalAttribute>;
34
34
  createPeerLocalAttribute(params: ICreatePeerLocalAttributeParams): Promise<LocalAttribute>;
35
35
  deleteAttribute(attribute: LocalAttribute): Promise<void>;
36
+ private deleteChildAttributesOfComplexAttribute;
36
37
  succeedRepositoryAttribute(predecessorId: CoreId, successorParams: IAttributeSuccessorParams | AttributeSuccessorParamsJSON, validate?: boolean): Promise<{
37
38
  predecessor: LocalAttribute;
38
39
  successor: LocalAttribute;
@@ -68,7 +69,18 @@ export declare class AttributesController extends ConsumptionBaseController {
68
69
  }): Promise<LocalAttribute>;
69
70
  updateAttributeUnsafe(attributeParams: ILocalAttribute): Promise<LocalAttribute>;
70
71
  deleteAttributeUnsafe(id: CoreId): Promise<void>;
72
+ executeFullAttributeDeletionProcess(attribute: LocalAttribute): Promise<void>;
73
+ validateFullAttributeDeletionProcess(attribute: LocalAttribute): Promise<ValidationResult>;
74
+ private validateSuccessor;
75
+ private validateSharedAttributes;
76
+ private detachSuccessor;
77
+ private detachAttributeCopies;
78
+ private deletePredecessorsOfAttribute;
71
79
  getVersionsOfAttribute(id: CoreId): Promise<LocalAttribute[]>;
80
+ getPredecessorsOfAttribute(id: CoreId): Promise<LocalAttribute[]>;
81
+ getSuccessorsOfAttribute(id: CoreId): Promise<LocalAttribute[]>;
72
82
  getSharedVersionsOfRepositoryAttribute(id: CoreId, peers?: CoreAddress[], onlyLatestVersions?: boolean): Promise<LocalAttribute[]>;
83
+ getSharedPredecessorsOfRepositoryAttribute(repositoryAttribute: LocalAttribute, query?: any): Promise<LocalAttribute[]>;
84
+ getSharedSuccessorsOfRepositoryAttribute(repositoryAttribute: LocalAttribute, query?: any): Promise<LocalAttribute[]>;
73
85
  }
74
86
  //# sourceMappingURL=AttributesController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributesController.d.ts","sourceRoot":"","sources":["../../../src/modules/attributes/AttributesController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AttributesController.d.ts","sourceRoot":"","sources":["../../../src/modules/attributes/AttributesController.ts"],"names":[],"mappings":"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"}
@@ -202,7 +202,7 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
202
202
  }
203
203
  async createLocalAttributesForChildrenOfComplexAttribute(localAttribute) {
204
204
  if (!(localAttribute.content instanceof content_1.IdentityAttribute)) {
205
- throw new ConsumptionError_1.ConsumptionError("Only identity attributes are allowed here");
205
+ throw new ConsumptionError_1.ConsumptionError("Only IdentityAttributes may have child Attributes.");
206
206
  }
207
207
  const childAttributeValues = Object.values(localAttribute.content.value).filter((p) => p instanceof content_1.AbstractAttributeValue);
208
208
  for (const propertyValue of childAttributeValues) {
@@ -248,9 +248,21 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
248
248
  return peerLocalAttribute;
249
249
  }
250
250
  async deleteAttribute(attribute) {
251
+ if (attribute.content instanceof content_1.IdentityAttribute && attribute.content.value instanceof content_1.AbstractComplexValue) {
252
+ await this.deleteChildAttributesOfComplexAttribute(attribute);
253
+ }
251
254
  await this.deleteAttributeUnsafe(attribute.id);
252
255
  this.eventBus.publish(new events_1.AttributeDeletedEvent(this.identity.address.toString(), attribute));
253
256
  }
257
+ async deleteChildAttributesOfComplexAttribute(complexAttribute) {
258
+ if (!(complexAttribute.content instanceof content_1.IdentityAttribute)) {
259
+ throw new ConsumptionError_1.ConsumptionError("Only IdentityAttributes may have child Attributes.");
260
+ }
261
+ const childAttributes = await this.getLocalAttributes({ parentId: complexAttribute.id.toString() });
262
+ for (const childAttribute of childAttributes) {
263
+ await this.deleteAttribute(childAttribute);
264
+ }
265
+ }
254
266
  async succeedRepositoryAttribute(predecessorId, successorParams, validate = true) {
255
267
  const parsedSuccessorParams = AttributeSuccessorParams_1.AttributeSuccessorParams.from(successorParams);
256
268
  if (validate) {
@@ -476,27 +488,34 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
476
488
  if (!predecessor.shareInfo.peer.equals(successor.shareInfo.peer)) {
477
489
  return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successionMustNotChangePeer());
478
490
  }
479
- /* Succession of own shared identity attribute must have
480
- * respective repository attributes. */
481
- const predecessorSource = await this.getLocalAttribute(predecessor.shareInfo.sourceAttribute);
491
+ if (typeof successor.shareInfo.sourceAttribute === "undefined") {
492
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successorSourceAttributeIsNotSpecified());
493
+ }
482
494
  const successorSource = await this.getLocalAttribute(successor.shareInfo.sourceAttribute);
483
- const predecessorSourceVersionIds = (await this.getVersionsOfAttribute(predecessor.shareInfo.sourceAttribute)).map((x) => x.id.toString());
484
- const successorSourceVersionIds = (await this.getVersionsOfAttribute(successor.shareInfo.sourceAttribute)).map((x) => x.id.toString());
485
- if (typeof predecessorSource === "undefined" || !predecessorSource.isRepositoryAttribute(this.identity.address)) {
486
- return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.predecessorSourceAttributeIsNotRepositoryAttribute());
495
+ if (typeof successorSource === "undefined") {
496
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successorSourceAttributeDoesNotExist());
487
497
  }
488
- if (typeof successorSource === "undefined" || !successorSource.isRepositoryAttribute(this.identity.address)) {
498
+ if (!successorSource.isRepositoryAttribute(this.identity.address)) {
489
499
  return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successorSourceAttributeIsNotRepositoryAttribute());
490
500
  }
491
- if (typeof successorSource.succeeds === "undefined" ||
492
- !predecessorSourceVersionIds.some((id) => id === successorSource.succeeds?.toString()) ||
493
- typeof predecessorSource.succeededBy === "undefined" ||
494
- !successorSourceVersionIds.some((id) => id === predecessorSource.succeededBy?.toString())) {
495
- return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successorSourceDoesNotSucceedPredecessorSource());
501
+ if (!lodash_1.default.isEqual(successorSource.content, successor.content)) {
502
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successorSourceContentIsNotEqualToCopyContent());
503
+ }
504
+ let predecessorSource = undefined;
505
+ if (typeof predecessor.shareInfo.sourceAttribute !== "undefined") {
506
+ predecessorSource = await this.getLocalAttribute(predecessor.shareInfo.sourceAttribute);
496
507
  }
497
- const repositoryAttributeContentMatchesItsSharedAttribute = lodash_1.default.isEqual(predecessorSource.content, predecessor.content) && lodash_1.default.isEqual(successorSource.content, successor.content);
498
- if (!repositoryAttributeContentMatchesItsSharedAttribute) {
499
- return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.sourceContentIsNotEqualToCopyContent());
508
+ if (typeof predecessorSource !== "undefined") {
509
+ if (!predecessorSource.isRepositoryAttribute(this.identity.address)) {
510
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.predecessorSourceAttributeIsNotRepositoryAttribute());
511
+ }
512
+ const successorSourceVersionIds = (await this.getVersionsOfAttribute(successorSource.id)).map((x) => x.id.toString());
513
+ if (typeof predecessorSource.succeededBy === "undefined" || !successorSourceVersionIds.some((id) => id === predecessorSource.succeededBy?.toString())) {
514
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successorSourceDoesNotSucceedPredecessorSource());
515
+ }
516
+ if (!lodash_1.default.isEqual(predecessorSource.content, predecessor.content)) {
517
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.predecessorSourceContentIsNotEqualToCopyContent());
518
+ }
500
519
  }
501
520
  return common_1.ValidationResult.success();
502
521
  }
@@ -653,6 +672,9 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
653
672
  if (predecessor.content.value.constructor !== successor.content.value.constructor) {
654
673
  return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successionMustNotChangeValueType());
655
674
  }
675
+ if (predecessor.hasDeletionInfo()) {
676
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.cannotSucceedAttributesWithDeletionInfo());
677
+ }
656
678
  return common_1.ValidationResult.success();
657
679
  }
658
680
  async createAttributeUnsafe(attributeData) {
@@ -663,7 +685,8 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
663
685
  shareInfo: attributeData.shareInfo,
664
686
  parentId: attributeData.parentId,
665
687
  succeededBy: attributeData.succeededBy,
666
- succeeds: attributeData.succeeds
688
+ succeeds: attributeData.succeeds,
689
+ deletionInfo: attributeData.deletionInfo
667
690
  });
668
691
  await this.attributes.create(localAttribute);
669
692
  return localAttribute;
@@ -682,7 +705,8 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
682
705
  parentId: attributeParams.parentId,
683
706
  shareInfo: attributeParams.shareInfo,
684
707
  succeededBy: attributeParams.succeededBy,
685
- succeeds: attributeParams.succeeds
708
+ succeeds: attributeParams.succeeds,
709
+ deletionInfo: attributeParams.deletionInfo
686
710
  };
687
711
  const newAttribute = LocalAttribute_1.LocalAttribute.from(params);
688
712
  await this.attributes.update(doc, newAttribute);
@@ -691,50 +715,122 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
691
715
  async deleteAttributeUnsafe(id) {
692
716
  await this.attributes.delete({ id: id });
693
717
  }
718
+ async executeFullAttributeDeletionProcess(attribute) {
719
+ const validationResult = await this.validateFullAttributeDeletionProcess(attribute);
720
+ if (validationResult.isError()) {
721
+ throw validationResult.error;
722
+ }
723
+ if (typeof attribute.succeededBy !== "undefined") {
724
+ const successor = await this.getLocalAttribute(attribute.succeededBy);
725
+ if (typeof successor === "undefined") {
726
+ throw CoreErrors_1.CoreErrors.attributes.successorDoesNotExist();
727
+ }
728
+ await this.detachSuccessor(successor);
729
+ }
730
+ const attributeCopies = await this.getLocalAttributes({ "shareInfo.sourceAttribute": attribute.id.toString() });
731
+ const attributePredecessorCopies = await this.getSharedPredecessorsOfRepositoryAttribute(attribute);
732
+ const attributeCopiesToDetach = [...attributeCopies, ...attributePredecessorCopies];
733
+ await this.detachAttributeCopies(attributeCopiesToDetach);
734
+ await this.deletePredecessorsOfAttribute(attribute.id);
735
+ await this.deleteAttribute(attribute);
736
+ }
737
+ async validateFullAttributeDeletionProcess(attribute) {
738
+ const validateSuccessorResult = await this.validateSuccessor(attribute);
739
+ if (validateSuccessorResult.isError()) {
740
+ return validateSuccessorResult;
741
+ }
742
+ const attributeCopies = await this.getLocalAttributes({ "shareInfo.sourceAttribute": attribute.id.toString() });
743
+ const attributePredecessorCopies = await this.getSharedPredecessorsOfRepositoryAttribute(attribute);
744
+ const attributeCopiesToDetach = [...attributeCopies, ...attributePredecessorCopies];
745
+ const validateSharedAttributesResult = this.validateSharedAttributes(attributeCopiesToDetach);
746
+ return validateSharedAttributesResult;
747
+ }
748
+ async validateSuccessor(predecessor) {
749
+ if (typeof predecessor.succeededBy !== "undefined") {
750
+ const successor = await this.getLocalAttribute(predecessor.succeededBy);
751
+ if (typeof successor === "undefined") {
752
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.successorDoesNotExist());
753
+ }
754
+ }
755
+ return common_1.ValidationResult.success();
756
+ }
757
+ validateSharedAttributes(sharedAttributes) {
758
+ for (const sharedAttribute of sharedAttributes) {
759
+ if (!sharedAttribute.isShared()) {
760
+ return common_1.ValidationResult.error(CoreErrors_1.CoreErrors.attributes.isNotSharedAttribute(sharedAttribute.id));
761
+ }
762
+ }
763
+ return common_1.ValidationResult.success();
764
+ }
765
+ async detachSuccessor(successor) {
766
+ successor.succeeds = undefined;
767
+ await this.updateAttributeUnsafe(successor);
768
+ }
769
+ async detachAttributeCopies(sharedAttributes) {
770
+ for (const sharedAttribute of sharedAttributes) {
771
+ if (!sharedAttribute.isShared()) {
772
+ throw CoreErrors_1.CoreErrors.attributes.isNotSharedAttribute(sharedAttribute.id);
773
+ }
774
+ sharedAttribute.shareInfo.sourceAttribute = undefined;
775
+ await this.updateAttributeUnsafe(sharedAttribute);
776
+ }
777
+ }
778
+ async deletePredecessorsOfAttribute(attributeId) {
779
+ const predecessors = await this.getPredecessorsOfAttribute(attributeId);
780
+ for (const predecessor of predecessors) {
781
+ await this.deleteAttribute(predecessor);
782
+ }
783
+ }
694
784
  async getVersionsOfAttribute(id) {
695
- let attribute = await this.getLocalAttribute(id);
785
+ const attribute = await this.getLocalAttribute(id);
696
786
  if (typeof attribute === "undefined") {
697
787
  throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, id.toString());
698
788
  }
699
- let i = 0;
700
- while (attribute.succeededBy && i < 1000) {
701
- const successor = await this.getLocalAttribute(attribute.succeededBy);
702
- if (!successor) {
703
- throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, attribute.succeededBy.toString());
704
- }
705
- attribute = successor;
706
- i++;
789
+ const predecessors = await this.getPredecessorsOfAttribute(id);
790
+ const successors = await this.getSuccessorsOfAttribute(id);
791
+ const allAttributeVersions = [...successors.reverse(), attribute, ...predecessors];
792
+ return allAttributeVersions;
793
+ }
794
+ async getPredecessorsOfAttribute(id) {
795
+ let attribute = await this.getLocalAttribute(id);
796
+ if (typeof attribute === "undefined") {
797
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, id.toString());
707
798
  }
708
- let j = 0;
709
- const attributeVersions = [attribute];
710
- while (attribute.succeeds && j < 1000) {
799
+ const predecessors = [];
800
+ while (typeof attribute.succeeds !== "undefined") {
711
801
  const predecessor = await this.getLocalAttribute(attribute.succeeds);
712
- if (!predecessor) {
802
+ if (typeof predecessor === "undefined") {
713
803
  throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, attribute.succeeds.toString());
714
804
  }
715
805
  attribute = predecessor;
716
- attributeVersions.push(attribute);
717
- j++;
806
+ predecessors.push(attribute);
807
+ }
808
+ return predecessors;
809
+ }
810
+ async getSuccessorsOfAttribute(id) {
811
+ let attribute = await this.getLocalAttribute(id);
812
+ if (typeof attribute === "undefined") {
813
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, id.toString());
814
+ }
815
+ const successors = [];
816
+ while (typeof attribute.succeededBy !== "undefined") {
817
+ const successor = await this.getLocalAttribute(attribute.succeededBy);
818
+ if (typeof successor === "undefined") {
819
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, attribute.succeededBy.toString());
820
+ }
821
+ attribute = successor;
822
+ successors.push(successor);
718
823
  }
719
- return attributeVersions;
824
+ return successors;
720
825
  }
721
826
  async getSharedVersionsOfRepositoryAttribute(id, peers, onlyLatestVersions = true) {
722
- let repositoryAttribute = await this.getLocalAttribute(id);
827
+ const repositoryAttribute = await this.getLocalAttribute(id);
723
828
  if (typeof repositoryAttribute === "undefined") {
724
829
  throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, id.toString());
725
830
  }
726
831
  if (!repositoryAttribute.isRepositoryAttribute(this.identity.address)) {
727
832
  throw CoreErrors_1.CoreErrors.attributes.invalidPropertyValue(`Attribute '${id}' isn't a repository attribute.`);
728
833
  }
729
- let i = 0;
730
- while (repositoryAttribute.succeededBy && i < 1000) {
731
- const successor = await this.getLocalAttribute(repositoryAttribute.succeededBy);
732
- if (!successor) {
733
- throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, repositoryAttribute.succeededBy.toString());
734
- }
735
- repositoryAttribute = successor;
736
- i++;
737
- }
738
834
  const query = { "shareInfo.sourceAttribute": repositoryAttribute.id.toString() };
739
835
  if (typeof peers !== "undefined") {
740
836
  query["shareInfo.peer"] = { $in: peers.map((address) => address.toString()) };
@@ -742,20 +838,39 @@ class AttributesController extends ConsumptionBaseController_1.ConsumptionBaseCo
742
838
  if (onlyLatestVersions) {
743
839
  query["succeededBy"] = { $exists: false };
744
840
  }
745
- const ownSharedIdentityAttributeVersions = await this.getLocalAttributes(query);
746
- let j = 0;
747
- while (repositoryAttribute.succeeds && j < 1000) {
841
+ const ownSharedIdentityAttributes = await this.getLocalAttributes(query);
842
+ const ownSharedIdentityAttributePredecessors = await this.getSharedPredecessorsOfRepositoryAttribute(repositoryAttribute, query);
843
+ const ownSharedIdentityAttributeSuccessors = await this.getSharedSuccessorsOfRepositoryAttribute(repositoryAttribute, query);
844
+ const ownSharedIdentityAttributeVersions = [...ownSharedIdentityAttributeSuccessors.reverse(), ...ownSharedIdentityAttributes, ...ownSharedIdentityAttributePredecessors];
845
+ return ownSharedIdentityAttributeVersions;
846
+ }
847
+ async getSharedPredecessorsOfRepositoryAttribute(repositoryAttribute, query = {}) {
848
+ const ownSharedIdentityAttributePredecessors = [];
849
+ while (typeof repositoryAttribute.succeeds !== "undefined") {
748
850
  const predecessor = await this.getLocalAttribute(repositoryAttribute.succeeds);
749
- if (!predecessor) {
851
+ if (typeof predecessor === "undefined") {
750
852
  throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, repositoryAttribute.succeeds.toString());
751
853
  }
752
854
  repositoryAttribute = predecessor;
753
855
  query["shareInfo.sourceAttribute"] = repositoryAttribute.id.toString();
754
856
  const sharedCopies = await this.getLocalAttributes(query);
755
- ownSharedIdentityAttributeVersions.push(...sharedCopies);
756
- j++;
857
+ ownSharedIdentityAttributePredecessors.push(...sharedCopies);
757
858
  }
758
- return ownSharedIdentityAttributeVersions;
859
+ return ownSharedIdentityAttributePredecessors;
860
+ }
861
+ async getSharedSuccessorsOfRepositoryAttribute(repositoryAttribute, query = {}) {
862
+ const ownSharedIdentityAttributeSuccessors = [];
863
+ while (typeof repositoryAttribute.succeededBy !== "undefined") {
864
+ const successor = await this.getLocalAttribute(repositoryAttribute.succeededBy);
865
+ if (typeof successor === "undefined") {
866
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, repositoryAttribute.succeededBy.toString());
867
+ }
868
+ repositoryAttribute = successor;
869
+ query["shareInfo.sourceAttribute"] = repositoryAttribute.id.toString();
870
+ const sharedCopies = await this.getLocalAttributes(query);
871
+ ownSharedIdentityAttributeSuccessors.push(...sharedCopies);
872
+ }
873
+ return ownSharedIdentityAttributeSuccessors;
759
874
  }
760
875
  }
761
876
  exports.AttributesController = AttributesController;