@nmshd/consumption 2.0.0-alpha.8 → 2.0.0-beta.10

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 (213) hide show
  1. package/README.md +2 -2
  2. package/dist/buildInformation.js +5 -5
  3. package/dist/consumption/ConsumptionController.d.ts +9 -10
  4. package/dist/consumption/ConsumptionController.js +26 -15
  5. package/dist/consumption/ConsumptionController.js.map +1 -1
  6. package/dist/consumption/ConsumptionControllerName.d.ts +1 -1
  7. package/dist/consumption/ConsumptionControllerName.js +1 -1
  8. package/dist/consumption/ConsumptionControllerName.js.map +1 -1
  9. package/dist/consumption/ConsumptionErrors.d.ts +16 -2
  10. package/dist/consumption/ConsumptionErrors.js +39 -3
  11. package/dist/consumption/ConsumptionErrors.js.map +1 -1
  12. package/dist/consumption/ConsumptionIds.d.ts +2 -5
  13. package/dist/consumption/ConsumptionIds.js +4 -7
  14. package/dist/consumption/ConsumptionIds.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/modules/attributes/LocalAttributesController.d.ts +34 -0
  19. package/dist/modules/attributes/LocalAttributesController.js +182 -0
  20. package/dist/modules/attributes/LocalAttributesController.js.map +1 -0
  21. package/dist/modules/attributes/events/AttributeCreatedEvent.d.ts +6 -0
  22. package/dist/modules/attributes/events/AttributeCreatedEvent.js +12 -0
  23. package/dist/modules/attributes/events/AttributeCreatedEvent.js.map +1 -0
  24. package/dist/modules/attributes/events/AttributeDeletedEvent.d.ts +6 -0
  25. package/dist/modules/attributes/events/AttributeDeletedEvent.js +12 -0
  26. package/dist/modules/attributes/events/AttributeDeletedEvent.js.map +1 -0
  27. package/dist/modules/attributes/events/AttributeSucceededEvent.d.ts +6 -0
  28. package/dist/modules/attributes/events/AttributeSucceededEvent.js +12 -0
  29. package/dist/modules/attributes/events/AttributeSucceededEvent.js.map +1 -0
  30. package/dist/modules/attributes/events/AttributeUpdatedEvent.d.ts +6 -0
  31. package/dist/modules/attributes/events/AttributeUpdatedEvent.js +12 -0
  32. package/dist/modules/attributes/events/AttributeUpdatedEvent.js.map +1 -0
  33. package/dist/modules/attributes/events/SharedAttributeCopyCreatedEvent.d.ts +6 -0
  34. package/dist/modules/attributes/events/SharedAttributeCopyCreatedEvent.js +12 -0
  35. package/dist/modules/attributes/events/SharedAttributeCopyCreatedEvent.js.map +1 -0
  36. package/dist/modules/attributes/events/index.d.ts +5 -0
  37. package/dist/modules/attributes/events/index.js +22 -0
  38. package/dist/modules/attributes/events/index.js.map +1 -0
  39. package/dist/modules/attributes/index.d.ts +9 -0
  40. package/dist/modules/attributes/index.js +26 -0
  41. package/dist/modules/attributes/index.js.map +1 -0
  42. package/dist/modules/attributes/local/CreateLocalAttributeParams.d.ts +12 -0
  43. package/dist/modules/attributes/local/CreateLocalAttributeParams.js +26 -0
  44. package/dist/modules/attributes/local/CreateLocalAttributeParams.js.map +1 -0
  45. package/dist/modules/attributes/local/CreatePeerLocalAttributeParams.d.ts +22 -0
  46. package/dist/modules/{signatures/SignatureContent.js → attributes/local/CreatePeerLocalAttributeParams.js} +15 -32
  47. package/dist/modules/attributes/local/CreatePeerLocalAttributeParams.js.map +1 -0
  48. package/dist/modules/attributes/local/CreateRelationshipAttributeParams.d.ts +14 -0
  49. package/dist/modules/{relationships/local/RelationshipAttribute.js → attributes/local/CreateRelationshipAttributeParams.js} +15 -15
  50. package/dist/modules/attributes/local/CreateRelationshipAttributeParams.js.map +1 -0
  51. package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.d.ts +21 -0
  52. package/dist/modules/{relationships/local/RelationshipTheme.js → attributes/local/CreateSharedLocalAttributeCopyParams.js} +18 -20
  53. package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.js.map +1 -0
  54. package/dist/modules/attributes/local/LocalAttribute.d.ts +30 -0
  55. package/dist/modules/attributes/local/{ConsumptionAttribute.js → LocalAttribute.js} +36 -24
  56. package/dist/modules/attributes/local/LocalAttribute.js.map +1 -0
  57. package/dist/modules/attributes/local/LocalAttributeShareInfo.d.ts +17 -0
  58. package/dist/modules/attributes/local/LocalAttributeShareInfo.js +36 -0
  59. package/dist/modules/attributes/local/LocalAttributeShareInfo.js.map +1 -0
  60. package/dist/modules/attributes/local/QueryTranslator.d.ts +9 -0
  61. package/dist/modules/attributes/local/QueryTranslator.js +125 -0
  62. package/dist/modules/attributes/local/QueryTranslator.js.map +1 -0
  63. package/dist/modules/attributes/local/SucceedLocalAttributeParams.d.ts +16 -0
  64. package/dist/modules/attributes/local/SucceedLocalAttributeParams.js +32 -0
  65. package/dist/modules/attributes/local/SucceedLocalAttributeParams.js.map +1 -0
  66. package/dist/modules/attributes/local/UpdateLocalAttributeParams.d.ts +16 -0
  67. package/dist/modules/attributes/local/UpdateLocalAttributeParams.js +32 -0
  68. package/dist/modules/attributes/local/UpdateLocalAttributeParams.js.map +1 -0
  69. package/dist/modules/drafts/DraftsController.js.map +1 -1
  70. package/dist/modules/drafts/index.d.ts +2 -0
  71. package/dist/modules/drafts/index.js +19 -0
  72. package/dist/modules/drafts/index.js.map +1 -0
  73. package/dist/modules/index.d.ts +4 -39
  74. package/dist/modules/index.js +4 -39
  75. package/dist/modules/index.js.map +1 -1
  76. package/dist/modules/requests/events/IncomingRequestReceivedEvent.d.ts +6 -0
  77. package/dist/modules/requests/events/IncomingRequestReceivedEvent.js +14 -0
  78. package/dist/modules/requests/events/IncomingRequestReceivedEvent.js.map +1 -0
  79. package/dist/modules/requests/events/IncomingRequestStatusChangedEvent.d.ts +12 -0
  80. package/dist/modules/requests/events/IncomingRequestStatusChangedEvent.js +14 -0
  81. package/dist/modules/requests/events/IncomingRequestStatusChangedEvent.js.map +1 -0
  82. package/dist/modules/requests/events/OutgoingRequestCreatedEvent.d.ts +6 -0
  83. package/dist/modules/requests/events/OutgoingRequestCreatedEvent.js +14 -0
  84. package/dist/modules/requests/events/OutgoingRequestCreatedEvent.js.map +1 -0
  85. package/dist/modules/requests/events/OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.d.ts +6 -0
  86. package/dist/modules/requests/events/OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.js +14 -0
  87. package/dist/modules/requests/events/OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.js.map +1 -0
  88. package/dist/modules/requests/events/OutgoingRequestStatusChangedEvent.d.ts +12 -0
  89. package/dist/modules/requests/events/OutgoingRequestStatusChangedEvent.js +14 -0
  90. package/dist/modules/requests/events/OutgoingRequestStatusChangedEvent.js.map +1 -0
  91. package/dist/modules/requests/events/index.d.ts +5 -0
  92. package/dist/modules/requests/events/index.js +22 -0
  93. package/dist/modules/requests/events/index.js.map +1 -0
  94. package/dist/modules/requests/incoming/DecideRequestParametersValidator.d.ts +3 -4
  95. package/dist/modules/requests/incoming/DecideRequestParametersValidator.js +21 -31
  96. package/dist/modules/requests/incoming/DecideRequestParametersValidator.js.map +1 -1
  97. package/dist/modules/requests/incoming/IncomingRequestsController.d.ts +18 -13
  98. package/dist/modules/requests/incoming/IncomingRequestsController.js +101 -75
  99. package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
  100. package/dist/modules/requests/incoming/complete/CompleteIncomingRequestParameters.d.ts +2 -2
  101. package/dist/modules/requests/incoming/complete/CompleteIncomingRequestParameters.js +1 -1
  102. package/dist/modules/requests/incoming/complete/CompleteIncomingRequestParameters.js.map +1 -1
  103. package/dist/modules/requests/index.d.ts +37 -0
  104. package/dist/modules/requests/index.js +53 -0
  105. package/dist/modules/requests/index.js.map +1 -0
  106. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.d.ts +21 -0
  107. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js +12 -0
  108. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js.map +1 -0
  109. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.d.ts +13 -11
  110. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js +13 -17
  111. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js.map +1 -1
  112. package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts +14 -9
  113. package/dist/modules/requests/itemProcessors/ProcessorConstructor.d.ts +2 -1
  114. package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.d.ts +6 -7
  115. package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js +10 -12
  116. package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js.map +1 -1
  117. package/dist/modules/requests/itemProcessors/ValidationResult.d.ts +7 -7
  118. package/dist/modules/requests/itemProcessors/ValidationResult.js +11 -11
  119. package/dist/modules/requests/itemProcessors/ValidationResult.js.map +1 -1
  120. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.d.ts +7 -0
  121. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js +20 -0
  122. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js.map +1 -0
  123. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.d.ts +11 -0
  124. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js +44 -0
  125. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js.map +1 -0
  126. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.d.ts +20 -0
  127. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js +47 -0
  128. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js.map +1 -0
  129. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts +16 -0
  130. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +110 -0
  131. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -0
  132. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.d.ts +23 -0
  133. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js +54 -0
  134. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js.map +1 -0
  135. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts +14 -0
  136. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +89 -0
  137. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -0
  138. package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.d.ts +7 -0
  139. package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js +20 -0
  140. package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js.map +1 -0
  141. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts +13 -0
  142. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +56 -0
  143. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -0
  144. package/dist/modules/requests/itemProcessors/utility/validateQuery.d.ts +4 -0
  145. package/dist/modules/requests/itemProcessors/utility/validateQuery.js +21 -0
  146. package/dist/modules/requests/itemProcessors/utility/validateQuery.js.map +1 -0
  147. package/dist/modules/requests/local/LocalRequest.d.ts +37 -0
  148. package/dist/modules/requests/local/{ConsumptionRequest.js → LocalRequest.js} +32 -32
  149. package/dist/modules/requests/local/LocalRequest.js.map +1 -0
  150. package/dist/modules/requests/local/{ConsumptionRequestStatus.d.ts → LocalRequestStatus.d.ts} +1 -1
  151. package/dist/modules/requests/local/LocalRequestStatus.js +13 -0
  152. package/dist/modules/requests/local/LocalRequestStatus.js.map +1 -0
  153. package/dist/modules/requests/local/LocalRequestStatusLogEntry.d.ts +17 -0
  154. package/dist/modules/requests/local/{ConsumptionRequestStatusLogEntry.js → LocalRequestStatusLogEntry.js} +13 -13
  155. package/dist/modules/requests/local/LocalRequestStatusLogEntry.js.map +1 -0
  156. package/dist/modules/requests/local/LocalResponse.d.ts +22 -0
  157. package/dist/modules/requests/local/{ConsumptionResponse.js → LocalResponse.js} +18 -18
  158. package/dist/modules/requests/local/LocalResponse.js.map +1 -0
  159. package/dist/modules/requests/outgoing/OutgoingRequestsController.d.ts +17 -11
  160. package/dist/modules/requests/outgoing/OutgoingRequestsController.js +81 -53
  161. package/dist/modules/requests/outgoing/OutgoingRequestsController.js.map +1 -1
  162. package/dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.d.ts +13 -0
  163. package/dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js +35 -0
  164. package/dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js.map +1 -0
  165. package/dist/modules/settings/SettingsController.js.map +1 -1
  166. package/dist/modules/settings/index.d.ts +3 -0
  167. package/dist/modules/settings/index.js +20 -0
  168. package/dist/modules/settings/index.js.map +1 -0
  169. package/dist/modules/settings/local/Setting.d.ts +0 -2
  170. package/dist/modules/settings/local/Setting.js +0 -6
  171. package/dist/modules/settings/local/Setting.js.map +1 -1
  172. package/lib-web/nmshd.consumption.js +12538 -3923
  173. package/lib-web/nmshd.consumption.js.map +1 -1
  174. package/lib-web/nmshd.consumption.min.js +1 -1
  175. package/lib-web/nmshd.consumption.min.js.map +1 -1
  176. package/package.json +36 -30
  177. package/dist/modules/attributes/ConsumptionAttributesController.d.ts +0 -22
  178. package/dist/modules/attributes/ConsumptionAttributesController.js +0 -141
  179. package/dist/modules/attributes/ConsumptionAttributesController.js.map +0 -1
  180. package/dist/modules/attributes/local/ConsumptionAttribute.d.ts +0 -19
  181. package/dist/modules/attributes/local/ConsumptionAttribute.js.map +0 -1
  182. package/dist/modules/relationships/RelationshipInfoController.d.ts +0 -15
  183. package/dist/modules/relationships/RelationshipInfoController.js +0 -61
  184. package/dist/modules/relationships/RelationshipInfoController.js.map +0 -1
  185. package/dist/modules/relationships/RelationshipInfoUtil.d.ts +0 -15
  186. package/dist/modules/relationships/RelationshipInfoUtil.js +0 -219
  187. package/dist/modules/relationships/RelationshipInfoUtil.js.map +0 -1
  188. package/dist/modules/relationships/local/RelationshipAttribute.d.ts +0 -14
  189. package/dist/modules/relationships/local/RelationshipAttribute.js.map +0 -1
  190. package/dist/modules/relationships/local/RelationshipInfo.d.ts +0 -27
  191. package/dist/modules/relationships/local/RelationshipInfo.js +0 -97
  192. package/dist/modules/relationships/local/RelationshipInfo.js.map +0 -1
  193. package/dist/modules/relationships/local/RelationshipTheme.d.ts +0 -14
  194. package/dist/modules/relationships/local/RelationshipTheme.js.map +0 -1
  195. package/dist/modules/requests/local/ConsumptionRequest.d.ts +0 -37
  196. package/dist/modules/requests/local/ConsumptionRequest.js.map +0 -1
  197. package/dist/modules/requests/local/ConsumptionRequestStatus.js +0 -13
  198. package/dist/modules/requests/local/ConsumptionRequestStatus.js.map +0 -1
  199. package/dist/modules/requests/local/ConsumptionRequestStatusLogEntry.d.ts +0 -17
  200. package/dist/modules/requests/local/ConsumptionRequestStatusLogEntry.js.map +0 -1
  201. package/dist/modules/requests/local/ConsumptionResponse.d.ts +0 -22
  202. package/dist/modules/requests/local/ConsumptionResponse.js.map +0 -1
  203. package/dist/modules/sharedItems/SharedItemsController.d.ts +0 -14
  204. package/dist/modules/sharedItems/SharedItemsController.js +0 -40
  205. package/dist/modules/sharedItems/SharedItemsController.js.map +0 -1
  206. package/dist/modules/sharedItems/local/SharedItem.d.ts +0 -31
  207. package/dist/modules/sharedItems/local/SharedItem.js +0 -100
  208. package/dist/modules/sharedItems/local/SharedItem.js.map +0 -1
  209. package/dist/modules/signatures/Signature.d.ts +0 -16
  210. package/dist/modules/signatures/Signature.js +0 -56
  211. package/dist/modules/signatures/Signature.js.map +0 -1
  212. package/dist/modules/signatures/SignatureContent.d.ts +0 -21
  213. package/dist/modules/signatures/SignatureContent.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nmshd/consumption",
3
- "version": "2.0.0-alpha.8",
3
+ "version": "2.0.0-beta.10",
4
4
  "description": "The consumption library extends the transport library.",
5
5
  "homepage": "https://enmeshed.eu",
6
6
  "repository": "github:nmshd/cns-consumption",
@@ -17,10 +17,6 @@
17
17
  "ui5.yaml"
18
18
  ],
19
19
  "scripts": {
20
- "lint": "npm run lint:prettier && npm run lint:eslint && npm run lint:tsc",
21
- "lint:prettier": "prettier --check .",
22
- "lint:eslint": "eslint --ext ts ./src ./test",
23
- "lint:tsc": "tsc --noEmit && tsc -p test/tsconfig.json --noEmit",
24
20
  "bt": "npm run test:node && npm run build:node && npm run build:test && npm run bundle && npm run test:web",
25
21
  "build": "npm run build:node && npm run build:test && npm run bundle",
26
22
  "build:ci": "npm run build:node && .ci/writeBuildInformation.sh && npm run build:test && npm run bundle",
@@ -31,50 +27,60 @@
31
27
  "bundle:min": "webpack --stats-all --config webpack.min.config.js",
32
28
  "bundle:test": "webpack --stats-all --config webpack.test.config.js",
33
29
  "cdep": "tsc && madge --circular dist",
30
+ "lint": "npm run lint:prettier && npm run lint:eslint && npm run lint:tsc",
31
+ "lint:eslint": "eslint --ext ts ./src ./test",
32
+ "lint:prettier": "prettier --check .",
33
+ "lint:tsc": "tsc --noEmit && tsc -p test/tsconfig.json --noEmit",
34
34
  "test": "npm run test:node && npm run test:web",
35
35
  "test:ci": "npm run test",
36
36
  "test:local": "npm run build && npm run test:local:node && npm run test:web",
37
37
  "test:local:node": ". ./scripts/testSetup.sh && npm run test:node",
38
- "test:local:node:mongodb": ". ./scripts/testSetup.sh && npm run test:node:mongodb",
39
38
  "test:local:node:lokijs": "npm run test:node:lokijs",
39
+ "test:local:node:mongodb": ". ./scripts/testSetup.sh && npm run test:node:mongodb",
40
40
  "test:local:teardown": "docker-compose -f test/docker-compose.yml rm -fsv",
41
41
  "test:node": "mocha -r ts-node/register -r tsconfig-paths/register ./test/index.node.ts --project ./test/tsconfig.json --exit",
42
- "test:node:mongodb": "mocha -r ts-node/register -r tsconfig-paths/register ./test/index.node.mongo.ts --project ./test/tsconfig.json --exit",
43
42
  "test:node:lokijs": "mocha -r ts-node/register -r tsconfig-paths/register ./test/index.node.loki.ts --project ./test/tsconfig.json --exit",
43
+ "test:node:mongodb": "mocha -r ts-node/register -r tsconfig-paths/register ./test/index.node.mongo.ts --project ./test/tsconfig.json --exit",
44
44
  "test:web": "browsertest-runner",
45
45
  "test:web:debug": "browsertest-runner-debug"
46
46
  },
47
+ "dependencies": {
48
+ "@js-soft/docdb-querytranslator": "^1.1.0",
49
+ "ts-simple-nameof": "^1.3.1"
50
+ },
47
51
  "devDependencies": {
48
- "@js-soft/docdb-access-loki": "1.0.2",
49
- "@js-soft/docdb-access-mongo": "1.0.5",
50
- "@js-soft/eslint-config-ts": "1.5.2",
52
+ "@js-soft/docdb-access-loki": "1.0.3",
53
+ "@js-soft/docdb-access-mongo": "1.1.1",
54
+ "@js-soft/eslint-config-ts": "1.6.0",
51
55
  "@js-soft/license-check": "1.0.4",
52
- "@js-soft/node-logger": "1.0.1",
53
- "@js-soft/ts-serval": "2.0.3",
54
- "@js-soft/ts-utils": "1.1.1",
55
- "@js-soft/web-logger": "1.0.1",
56
- "@nmshd/content": "2.0.0-alpha.8",
56
+ "@js-soft/node-logger": "1.0.2",
57
+ "@js-soft/ts-serval": "2.0.4",
58
+ "@js-soft/ts-utils": "2.2.2",
59
+ "@js-soft/web-logger": "1.0.2",
60
+ "@nmshd/content": "2.0.0-beta.12",
57
61
  "@nmshd/crypto": "2.0.1",
58
- "@nmshd/transport": "2.0.0-alpha.1",
59
- "@types/chai": "^4.3.1",
62
+ "@nmshd/transport": "2.0.0-beta.4",
63
+ "@types/chai": "^4.3.3",
64
+ "@types/chai-subset": "^1.3.3",
60
65
  "@types/glob": "^7.2.0",
61
- "@types/luxon": "^2.3.1",
66
+ "@types/luxon": "^3.0.0",
62
67
  "@types/mocha": "^9.1.1",
63
- "@types/node": "^17.0.29",
64
- "bt-runner": "^2.0.5",
68
+ "@types/node": "^18.7.13",
69
+ "bt-runner": "^3.1.0",
65
70
  "chai": "^4.3.6",
66
- "copy-webpack-plugin": "^10.2.4",
67
- "eslint": "^8.14.0",
71
+ "chai-subset": "^1.6.0",
72
+ "copy-webpack-plugin": "^11.0.0",
73
+ "eslint": "^8.22.0",
68
74
  "madge": "^5.0.1",
69
- "mocha": "^9.2.2",
75
+ "mocha": "^10.0.0",
70
76
  "mocha-param": "^2.0.1",
71
- "prettier": "^2.6.2",
72
- "terser-webpack-plugin": "5.3.1",
73
- "ts-node": "^10.7.0",
74
- "tsconfig-paths": "^3.14.1",
75
- "typescript": "^4.6.3",
76
- "webpack": "^5.72.0",
77
- "webpack-cli": "^4.9.2"
77
+ "prettier": "^2.7.1",
78
+ "terser-webpack-plugin": "5.3.5",
79
+ "ts-node": "^10.9.1",
80
+ "tsconfig-paths": "^4.1.0",
81
+ "typescript": "^4.7.4",
82
+ "webpack": "^5.74.0",
83
+ "webpack-cli": "^4.10.0"
78
84
  },
79
85
  "publishConfig": {
80
86
  "access": "public"
@@ -1,22 +0,0 @@
1
- import { CoreDate, CoreId } from "@nmshd/transport";
2
- import { ConsumptionBaseController } from "../../consumption";
3
- import { ConsumptionController } from "../../consumption/ConsumptionController";
4
- import { ConsumptionAttribute } from "./local/ConsumptionAttribute";
5
- export declare class ConsumptionAttributesController extends ConsumptionBaseController {
6
- private attributes;
7
- constructor(parent: ConsumptionController);
8
- init(): Promise<this>;
9
- checkValid(attribute: ConsumptionAttribute): boolean;
10
- findCurrent(attributes: ConsumptionAttribute[]): ConsumptionAttribute | undefined;
11
- filterCurrent(attributes: ConsumptionAttribute[]): ConsumptionAttribute[];
12
- getAttribute(id: CoreId): Promise<ConsumptionAttribute | undefined>;
13
- getAttributeByName(name: string): Promise<ConsumptionAttribute | undefined>;
14
- getAttributeHistoryByName(name: string): Promise<ConsumptionAttribute[]>;
15
- getAttributes(query?: any): Promise<ConsumptionAttribute[]>;
16
- getValidAttributes(query?: any): Promise<ConsumptionAttribute[]>;
17
- getAttributesByName(query?: any): Promise<Record<string, ConsumptionAttribute>>;
18
- createAttribute(attribute: ConsumptionAttribute): Promise<ConsumptionAttribute>;
19
- succeedAttribute(attribute: ConsumptionAttribute, validFrom?: CoreDate): Promise<ConsumptionAttribute>;
20
- updateAttribute(attribute: ConsumptionAttribute): Promise<ConsumptionAttribute>;
21
- deleteAttribute(attribute: ConsumptionAttribute): Promise<void>;
22
- }
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConsumptionAttributesController = void 0;
4
- const transport_1 = require("@nmshd/transport");
5
- const ts_simple_nameof_1 = require("ts-simple-nameof");
6
- const consumption_1 = require("../../consumption");
7
- const ConsumptionAttribute_1 = require("./local/ConsumptionAttribute");
8
- class ConsumptionAttributesController extends consumption_1.ConsumptionBaseController {
9
- constructor(parent) {
10
- super(consumption_1.ConsumptionControllerName.ConsumptionAttributesController, parent);
11
- }
12
- async init() {
13
- await super.init();
14
- this.attributes = await this.parent.accountController.getSynchronizedCollection("Attributes");
15
- return this;
16
- }
17
- checkValid(attribute) {
18
- const now = transport_1.CoreDate.utc();
19
- if (!attribute.content.validFrom && !attribute.content.validTo) {
20
- return true;
21
- }
22
- else if (attribute.content.validFrom &&
23
- !attribute.content.validTo &&
24
- attribute.content.validFrom.isSameOrBefore(now)) {
25
- return true;
26
- }
27
- else if (!attribute.content.validFrom &&
28
- attribute.content.validTo &&
29
- attribute.content.validTo.isAfter(now)) {
30
- return true;
31
- }
32
- else if (attribute.content.validFrom &&
33
- attribute.content.validTo &&
34
- attribute.content.validFrom.isSameOrBefore(now) &&
35
- attribute.content.validTo.isAfter(now)) {
36
- return true;
37
- }
38
- return false;
39
- }
40
- findCurrent(attributes) {
41
- const sorted = attributes.sort((a, b) => {
42
- return a.createdAt.compare(b.createdAt);
43
- });
44
- let current;
45
- for (const attribute of sorted) {
46
- if (this.checkValid(attribute)) {
47
- current = attribute;
48
- }
49
- }
50
- return current;
51
- }
52
- filterCurrent(attributes) {
53
- const sorted = attributes.sort((a, b) => {
54
- return a.createdAt.compare(b.createdAt);
55
- });
56
- const items = [];
57
- for (const attribute of sorted) {
58
- if (this.checkValid(attribute)) {
59
- items.push(attribute);
60
- }
61
- }
62
- return items;
63
- }
64
- async getAttribute(id) {
65
- const result = await this.attributes.find({
66
- [(0, ts_simple_nameof_1.nameof)((c) => c.id)]: id.toString()
67
- });
68
- const attributes = await this.parseArray(result, ConsumptionAttribute_1.ConsumptionAttribute);
69
- return this.findCurrent(attributes);
70
- }
71
- async getAttributeByName(name) {
72
- const result = await this.attributes.find({
73
- [`${(0, ts_simple_nameof_1.nameof)((c) => c.content)}.${(0, ts_simple_nameof_1.nameof)((a) => a.name)}`]: name
74
- });
75
- const attributes = await this.parseArray(result, ConsumptionAttribute_1.ConsumptionAttribute);
76
- return this.findCurrent(attributes);
77
- }
78
- async getAttributeHistoryByName(name) {
79
- const result = await this.attributes.find({
80
- [`${(0, ts_simple_nameof_1.nameof)((c) => c.content)}.${(0, ts_simple_nameof_1.nameof)((a) => a.name)}`]: name
81
- });
82
- const attributes = await this.parseArray(result, ConsumptionAttribute_1.ConsumptionAttribute);
83
- const sorted = attributes.sort((a, b) => {
84
- return a.createdAt.compare(b.createdAt);
85
- });
86
- return sorted;
87
- }
88
- async getAttributes(query) {
89
- const items = await this.attributes.find(query);
90
- return await this.parseArray(items, ConsumptionAttribute_1.ConsumptionAttribute);
91
- }
92
- async getValidAttributes(query) {
93
- const docs = await this.attributes.find(query);
94
- const items = await this.parseArray(docs, ConsumptionAttribute_1.ConsumptionAttribute);
95
- return this.filterCurrent(items);
96
- }
97
- async getAttributesByName(query) {
98
- const attributes = await this.getValidAttributes(query);
99
- const mapper = (result, attribute) => {
100
- result[attribute.content.name] = attribute;
101
- return result;
102
- };
103
- return attributes.reduce(mapper, {});
104
- }
105
- async createAttribute(attribute) {
106
- const current = await this.getAttributeByName(attribute.content.name);
107
- if (current) {
108
- throw consumption_1.ConsumptionErrors.attributes.attributeExists(attribute.content.name);
109
- }
110
- await this.attributes.create(attribute);
111
- return attribute;
112
- }
113
- async succeedAttribute(attribute, validFrom) {
114
- const current = await this.getAttributeByName(attribute.content.name);
115
- if (current && !validFrom) {
116
- validFrom = transport_1.CoreDate.utc();
117
- }
118
- if (current) {
119
- attribute.content.validFrom = validFrom;
120
- current.content.validTo = validFrom;
121
- await this.updateAttribute(current);
122
- }
123
- await this.attributes.create(attribute);
124
- return attribute;
125
- }
126
- async updateAttribute(attribute) {
127
- const current = await this.attributes.findOne({
128
- [(0, ts_simple_nameof_1.nameof)((c) => c.id)]: attribute.id.toString()
129
- });
130
- if (!current) {
131
- throw transport_1.TransportErrors.general.recordNotFound(ConsumptionAttribute_1.ConsumptionAttribute, attribute.id.toString());
132
- }
133
- await this.attributes.update(current, attribute);
134
- return attribute;
135
- }
136
- async deleteAttribute(attribute) {
137
- await this.attributes.delete(attribute);
138
- }
139
- }
140
- exports.ConsumptionAttributesController = ConsumptionAttributesController;
141
- //# sourceMappingURL=ConsumptionAttributesController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConsumptionAttributesController.js","sourceRoot":"","sources":["../../../src/modules/attributes/ConsumptionAttributesController.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Attribute, IAttribute } from "@nmshd/content";
2
- import { CoreDate, CoreSynchronizable, ICoreDate, ICoreSynchronizable } from "@nmshd/transport";
3
- export interface IConsumptionAttribute extends ICoreSynchronizable {
4
- content: IAttribute;
5
- createdAt: ICoreDate;
6
- metadata?: any;
7
- metadataModifiedAt?: ICoreDate;
8
- }
9
- export declare class ConsumptionAttribute extends CoreSynchronizable implements IConsumptionAttribute {
10
- readonly technicalProperties: string[];
11
- readonly userdataProperties: string[];
12
- readonly metadataProperties: string[];
13
- content: Attribute;
14
- createdAt: CoreDate;
15
- metadata?: any;
16
- metadataModifiedAt?: CoreDate;
17
- static from(value: IConsumptionAttribute): ConsumptionAttribute;
18
- static fromAttribute(attribute: IAttribute): Promise<ConsumptionAttribute>;
19
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConsumptionAttribute.js","sourceRoot":"","sources":["../../../../src/modules/attributes/local/ConsumptionAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA8D;AAC9D,4CAAsD;AACtD,gDAA+F;AAC/F,uDAAyC;AACzC,sDAAqD;AAUrD,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,8BAAkB;IAA5D;;QAC6B,wBAAmB,GAAG;YAC3C,OAAO;YACP,UAAU;YACV,IAAA,yBAAM,EAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACnD,CAAA;QAEwB,uBAAkB,GAAG,CAAC,IAAA,yBAAM,EAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAErE,uBAAkB,GAAG;YAC1C,IAAA,yBAAM,EAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/C,IAAA,yBAAM,EAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;SAC5D,CAAA;IA6BL,CAAC;IAXU,MAAM,CAAC,IAAI,CAAC,KAA4B;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAAqB;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,EAAE,EAAE,MAAM,4BAAc,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC7C,SAAS,EAAE,oBAAQ,CAAC,GAAG,EAAE;SAC5B,CAAC,CAAA;IACN,CAAC;CACJ,CAAA;AAzBG;IAFC,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,EAAC,EAAE,IAAI,EAAE,mBAAS,EAAE,CAAC;8BACf,mBAAS;qDAAA;AAIzB;IAFC,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;8BACM,oBAAQ;uDAAA;AAI1B;IAFC,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAA,qBAAS,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;;sDACJ;AAIrB;IAFC,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAA,qBAAS,GAAE;8BACgB,oBAAQ;gEAAA;AA5B3B,oBAAoB;IADhC,IAAA,gBAAI,EAAC,sBAAsB,CAAC;GAChB,oBAAoB,CAyChC;AAzCY,oDAAoB"}
@@ -1,15 +0,0 @@
1
- import { CoreId } from "@nmshd/transport";
2
- import { ConsumptionBaseController } from "../../consumption";
3
- import { ConsumptionController } from "../../consumption/ConsumptionController";
4
- import { RelationshipInfo } from "./local/RelationshipInfo";
5
- export declare class RelationshipInfoController extends ConsumptionBaseController {
6
- private relationshipInfo;
7
- constructor(parent: ConsumptionController);
8
- init(): Promise<this>;
9
- getRelationshipInfo(id: CoreId): Promise<RelationshipInfo | undefined>;
10
- getRelationshipInfoByRelationship(relationshipId: CoreId): Promise<RelationshipInfo | undefined>;
11
- getRelationshipInfos(query?: any): Promise<RelationshipInfo[]>;
12
- createRelationshipInfo(relationshipInfo: RelationshipInfo): Promise<RelationshipInfo>;
13
- updateRelationshipInfo(relationshipInfo: RelationshipInfo): Promise<void>;
14
- deleteRelationshipInfo(relationshipInfo: RelationshipInfo): Promise<void>;
15
- }
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelationshipInfoController = void 0;
4
- const consumption_1 = require("../../consumption");
5
- const RelationshipInfo_1 = require("./local/RelationshipInfo");
6
- const RelationshipInfoUtil_1 = require("./RelationshipInfoUtil");
7
- class RelationshipInfoController extends consumption_1.ConsumptionBaseController {
8
- constructor(parent) {
9
- super(consumption_1.ConsumptionControllerName.RelationshipInfoController, parent);
10
- }
11
- async init() {
12
- await super.init();
13
- this.relationshipInfo = await this.parent.accountController.getSynchronizedCollection("RelationshipInfo");
14
- return this;
15
- }
16
- async getRelationshipInfo(id) {
17
- const result = await this.relationshipInfo.read(id.toString());
18
- return result ? RelationshipInfo_1.RelationshipInfo.from(result) : undefined;
19
- }
20
- async getRelationshipInfoByRelationship(relationshipId) {
21
- const info = await new RelationshipInfoUtil_1.RelationshipInfoUtil(this.parent).createInitialRelationshipInfo(relationshipId);
22
- return info;
23
- /*
24
- // So far, do not store the relationshipInfo, as they wouldn't be updated correctly
25
-
26
- const result = await this.relationshipInfo.findOne({ relationshipId: relationshipId.toString() })
27
-
28
- if (result) {
29
- return await RelationshipInfo.from(result)
30
- }
31
-
32
- const info = await new RelationshipInfoUtil(this.parent).createInitialRelationshipInfo(relationshipId)
33
- await this.relationshipInfo.create(info)
34
- return info
35
- */
36
- }
37
- async getRelationshipInfos(query) {
38
- const items = await this.relationshipInfo.find(query);
39
- return await this.parseArray(items, RelationshipInfo_1.RelationshipInfo);
40
- }
41
- async createRelationshipInfo(relationshipInfo) {
42
- const exists = await this.relationshipInfo.exists({ relationshipId: relationshipInfo.relationshipId });
43
- if (exists) {
44
- throw consumption_1.ConsumptionErrors.relationshipInfo.relationshipInfoExists(relationshipInfo.relationshipId.toString());
45
- }
46
- await this.relationshipInfo.create(relationshipInfo);
47
- return relationshipInfo;
48
- }
49
- async updateRelationshipInfo(relationshipInfo) {
50
- const oldRelationshipInfo = await this.relationshipInfo.read(relationshipInfo.id.toString());
51
- if (!oldRelationshipInfo) {
52
- throw new Error("RelationshipInfo Not Found");
53
- }
54
- await this.relationshipInfo.update(oldRelationshipInfo, relationshipInfo);
55
- }
56
- async deleteRelationshipInfo(relationshipInfo) {
57
- await this.relationshipInfo.delete(relationshipInfo);
58
- }
59
- }
60
- exports.RelationshipInfoController = RelationshipInfoController;
61
- //# sourceMappingURL=RelationshipInfoController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RelationshipInfoController.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipInfoController.ts"],"names":[],"mappings":";;;AACA,mDAA2G;AAE3G,+DAA2D;AAC3D,iEAA6D;AAE7D,MAAa,0BAA2B,SAAQ,uCAAyB;IAGrE,YAAmB,MAA6B;QAC5C,KAAK,CAAC,uCAAyB,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;IACvE,CAAC;IAEe,KAAK,CAAC,IAAI;QACtB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAElB,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,CAAA;QACzG,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,EAAU;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9D,OAAO,MAAM,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7D,CAAC;IAEM,KAAK,CAAC,iCAAiC,CAAC,cAAsB;QACjE,MAAM,IAAI,GAAG,MAAM,IAAI,2CAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAA;QACtG,OAAO,IAAI,CAAA;QACX;;;;;;;;;;;;UAYE;IACN,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,KAAW;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAmB,KAAK,EAAE,mCAAgB,CAAC,CAAA;IAC3E,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAA;QACtG,IAAI,MAAM,EAAE;YACR,MAAM,+BAAiB,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;SAC9G;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACpD,OAAO,gBAAgB,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5F,IAAI,CAAC,mBAAmB,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAChD;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;IAC7E,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxD,CAAC;CACJ;AA/DD,gEA+DC"}
@@ -1,15 +0,0 @@
1
- import { ILogger } from "@js-soft/logging-abstractions";
2
- import { CoreId } from "@nmshd/transport";
3
- import { ConsumptionController } from "../../consumption/ConsumptionController";
4
- import { RelationshipInfo } from "./local/RelationshipInfo";
5
- export declare class RelationshipInfoUtil {
6
- private readonly parent;
7
- protected _log: ILogger;
8
- get log(): ILogger;
9
- constructor(parent: ConsumptionController);
10
- createInitialRelationshipInfo(id: CoreId): Promise<RelationshipInfo>;
11
- private getTitle;
12
- private createRelationshipInfo;
13
- private parseTemplateBody;
14
- private parseCreationRequest;
15
- }
@@ -1,219 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelationshipInfoUtil = void 0;
4
- const ts_serval_1 = require("@js-soft/ts-serval");
5
- const content_1 = require("@nmshd/content");
6
- const transport_1 = require("@nmshd/transport");
7
- const consumption_1 = require("../../consumption");
8
- const SharedItem_1 = require("../sharedItems/local/SharedItem");
9
- const RelationshipAttribute_1 = require("./local/RelationshipAttribute");
10
- const RelationshipInfo_1 = require("./local/RelationshipInfo");
11
- class RelationshipInfoUtil {
12
- constructor(parent) {
13
- this.parent = parent;
14
- this._log = transport_1.TransportLoggerFactory.getLogger(RelationshipInfoUtil);
15
- }
16
- get log() {
17
- return this._log;
18
- }
19
- async createInitialRelationshipInfo(id) {
20
- const relationship = await this.parent.accountController.relationships.getRelationship(id);
21
- if (!relationship) {
22
- throw transport_1.TransportErrors.general.recordNotFound(transport_1.Relationship, id.toString()).logWith(this._log);
23
- }
24
- await this.parseTemplateBody(relationship);
25
- await this.parseCreationRequest(relationship);
26
- return await this.createRelationshipInfo(relationship);
27
- }
28
- getTitle(relationship, attributeMap) {
29
- let title = relationship.peer.address.toString().substring(3, 9);
30
- const thingName = attributeMap.get("Thing.name")?.content.value;
31
- const givenName = attributeMap.get("Person.givenName")?.content.value;
32
- const familyName = attributeMap.get("Person.familyName")?.content.value;
33
- const gender = attributeMap.get("Person.gender")?.content.value;
34
- const orgname = attributeMap.get("Organization.name")?.content.value;
35
- const legalName = attributeMap.get("Organization.legalname")?.content.value;
36
- if (thingName) {
37
- title = thingName;
38
- }
39
- else if (givenName && familyName) {
40
- title = `${givenName} ${familyName}`;
41
- }
42
- else if (givenName) {
43
- title = givenName;
44
- }
45
- else if (familyName && gender) {
46
- title = `i18n://salutation.gender.${gender} ${familyName}`;
47
- }
48
- else if (orgname) {
49
- title = orgname;
50
- }
51
- else if (legalName) {
52
- title = legalName;
53
- }
54
- return title;
55
- }
56
- async createRelationshipInfo(relationship) {
57
- const peerAddress = relationship.peer.address;
58
- const truncatedAddress = peerAddress.address.substring(3, 9);
59
- const info = RelationshipInfo_1.RelationshipInfo.from({
60
- attributes: [],
61
- id: await consumption_1.ConsumptionIds.relationshipInfo.generate(),
62
- isPinned: false,
63
- relationshipId: relationship.id,
64
- title: truncatedAddress
65
- });
66
- // info = await this.parent.relationshipInfo.createRelationshipInfo(info)
67
- const items = await this.parent.sharedItems.getSharedItems({
68
- sharedBy: relationship.peer.address.toString()
69
- });
70
- const attributes = [];
71
- const attributeMap = new Map();
72
- for (const item of items) {
73
- if (item.content instanceof content_1.Attribute) {
74
- const relAttr = RelationshipAttribute_1.RelationshipAttribute.from({
75
- name: item.content.name,
76
- sharedItem: item.id,
77
- content: item.content
78
- });
79
- attributes.push(relAttr);
80
- attributeMap.set(relAttr.name, relAttr);
81
- }
82
- }
83
- info.attributes = attributes;
84
- const title = this.getTitle(relationship, attributeMap);
85
- info.title = title;
86
- // await this.parent.relationshipInfo.updateRelationshipInfo(info)
87
- return info;
88
- }
89
- async parseTemplateBody(relationship) {
90
- const template = relationship.cache.template;
91
- if (!template.cache) {
92
- throw transport_1.TransportErrors.general.cacheEmpty(transport_1.RelationshipTemplate, template.id.toString()).logWith(this._log);
93
- }
94
- const body = template.cache.content;
95
- const isTemplator = this.parent.accountController.identity.isMe(template.cache.createdBy);
96
- const sharedAt = template.cache.createdAt;
97
- const sharedBy = isTemplator ? this.parent.accountController.identity.address : relationship.peer.address;
98
- const sharedWith = isTemplator ? relationship.peer.address : this.parent.accountController.identity.address;
99
- const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
100
- reference: template.id.toString()
101
- });
102
- const missingItems = [];
103
- if (body instanceof content_1.RelationshipTemplateBody) {
104
- const attributes = body.sharedAttributes;
105
- if (attributes) {
106
- if (sharedItemsWithSameReference.length !== attributes.length) {
107
- attributes.forEach((attribute) => {
108
- if (!sharedItemsWithSameReference.find(function (item) {
109
- const content = item.content;
110
- return content.name === attribute.name;
111
- })) {
112
- missingItems.push(attribute);
113
- }
114
- });
115
- }
116
- }
117
- }
118
- else {
119
- // Try to parse the old template format (without types)
120
- let oldTemplateBody = body;
121
- if (body instanceof ts_serval_1.JSONWrapper) {
122
- oldTemplateBody = oldTemplateBody.value;
123
- }
124
- if (oldTemplateBody?.attributes && Array.isArray(oldTemplateBody.attributes)) {
125
- if (sharedItemsWithSameReference.length !== oldTemplateBody.attributes.length) {
126
- oldTemplateBody.attributes.forEach((attribute) => {
127
- if (!sharedItemsWithSameReference.find(function (item) {
128
- const content = item.content;
129
- return content.name === attribute.name;
130
- })) {
131
- missingItems.push(content_1.Attribute.from({
132
- name: attribute.name,
133
- value: attribute.value
134
- }));
135
- }
136
- });
137
- }
138
- }
139
- }
140
- for (const attribute of missingItems) {
141
- const sharedItem = SharedItem_1.SharedItem.from({
142
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
143
- content: attribute,
144
- sharedAt: sharedAt,
145
- sharedBy: sharedBy,
146
- sharedWith: sharedWith,
147
- reference: template.id,
148
- expiresAt: attribute.validTo
149
- });
150
- await this.parent.sharedItems.createSharedItem(sharedItem);
151
- }
152
- }
153
- async parseCreationRequest(relationship) {
154
- const change = relationship.cache.creationChange;
155
- const request = change.request;
156
- const body = request.content;
157
- const isRequestor = this.parent.accountController.identity.isMe(request.createdBy);
158
- const sharedAt = request.createdAt;
159
- const sharedBy = isRequestor ? this.parent.accountController.identity.address : relationship.peer.address;
160
- const sharedWith = isRequestor ? relationship.peer.address : this.parent.accountController.identity.address;
161
- const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
162
- reference: change.id.toString()
163
- });
164
- const missingItems = [];
165
- if (body instanceof content_1.RelationshipCreationChangeRequestBody) {
166
- const attributes = body.sharedAttributes;
167
- if (attributes && attributes.length > 0) {
168
- if (sharedItemsWithSameReference.length !== attributes.length) {
169
- attributes.forEach((attribute) => {
170
- if (!sharedItemsWithSameReference.find(function (item) {
171
- const content = item.content;
172
- return content.name === attribute.name;
173
- })) {
174
- missingItems.push(attribute);
175
- }
176
- });
177
- }
178
- }
179
- }
180
- else {
181
- // Try to parse the old request format (without types)
182
- let oldRequestBody = body;
183
- if (body instanceof ts_serval_1.JSONWrapper) {
184
- oldRequestBody = oldRequestBody.value;
185
- }
186
- if (oldRequestBody?.attributes) {
187
- const keys = Object.keys(oldRequestBody.attributes);
188
- if (sharedItemsWithSameReference.length !== keys.length) {
189
- keys.forEach((key) => {
190
- const attribute = oldRequestBody.attributes[key];
191
- if (!sharedItemsWithSameReference.find(function (item) {
192
- const content = item.content;
193
- return content.name === attribute.name;
194
- })) {
195
- missingItems.push(content_1.Attribute.from({
196
- name: attribute.name,
197
- value: attribute.value
198
- }));
199
- }
200
- });
201
- }
202
- }
203
- }
204
- for (const attribute of missingItems) {
205
- const sharedItem = SharedItem_1.SharedItem.from({
206
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
207
- content: attribute,
208
- sharedAt: sharedAt,
209
- sharedBy: sharedBy,
210
- sharedWith: sharedWith,
211
- reference: change.id,
212
- expiresAt: attribute.validTo
213
- });
214
- await this.parent.sharedItems.createSharedItem(sharedItem);
215
- }
216
- }
217
- }
218
- exports.RelationshipInfoUtil = RelationshipInfoUtil;
219
- //# sourceMappingURL=RelationshipInfoUtil.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RelationshipInfoUtil.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipInfoUtil.ts"],"names":[],"mappings":"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"}