gdc-sdk-front-ts 2.2.1 → 2.3.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 (387) hide show
  1. package/dist/ProfileManager.js +6 -3
  2. package/dist/front-clinical-runtime-client.d.ts +69 -0
  3. package/dist/front-clinical-runtime-client.js +214 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +1 -0
  6. package/dist/orchestration/client-port.d.ts +21 -3
  7. package/dist/orchestration/individual-member-sdk.d.ts +11 -1
  8. package/dist/orchestration/individual-member-sdk.js +12 -0
  9. package/dist/orchestration/professional-sdk.d.ts +7 -1
  10. package/dist/orchestration/professional-sdk.js +6 -0
  11. package/package.json +3 -3
  12. package/dist/discovery/HttpDataspaceDiscoveryClient.d.ts +0 -34
  13. package/dist/discovery/HttpDataspaceDiscoveryClient.js +0 -47
  14. package/dist/gdc-common-utils-ts/src/AesManager.d.ts +0 -27
  15. package/dist/gdc-common-utils-ts/src/AesManager.js +0 -64
  16. package/dist/gdc-common-utils-ts/src/CryptographyService.d.ts +0 -76
  17. package/dist/gdc-common-utils-ts/src/CryptographyService.js +0 -401
  18. package/dist/gdc-common-utils-ts/src/constants/actor-session.d.ts +0 -40
  19. package/dist/gdc-common-utils-ts/src/constants/actor-session.js +0 -40
  20. package/dist/gdc-common-utils-ts/src/constants/communication.d.ts +0 -28
  21. package/dist/gdc-common-utils-ts/src/constants/communication.js +0 -14
  22. package/dist/gdc-common-utils-ts/src/constants/cryptography.d.ts +0 -58
  23. package/dist/gdc-common-utils-ts/src/constants/cryptography.js +0 -49
  24. package/dist/gdc-common-utils-ts/src/constants/dataspace-discovery.d.ts +0 -11
  25. package/dist/gdc-common-utils-ts/src/constants/dataspace-discovery.js +0 -11
  26. package/dist/gdc-common-utils-ts/src/constants/dataspace-protocol.d.ts +0 -27
  27. package/dist/gdc-common-utils-ts/src/constants/dataspace-protocol.js +0 -27
  28. package/dist/gdc-common-utils-ts/src/constants/device.d.ts +0 -16
  29. package/dist/gdc-common-utils-ts/src/constants/device.js +0 -15
  30. package/dist/gdc-common-utils-ts/src/constants/did-services.d.ts +0 -42
  31. package/dist/gdc-common-utils-ts/src/constants/did-services.js +0 -40
  32. package/dist/gdc-common-utils-ts/src/constants/eu-countries.d.ts +0 -36
  33. package/dist/gdc-common-utils-ts/src/constants/eu-countries.js +0 -69
  34. package/dist/gdc-common-utils-ts/src/constants/fhir-code-systems.d.ts +0 -12
  35. package/dist/gdc-common-utils-ts/src/constants/fhir-code-systems.js +0 -12
  36. package/dist/gdc-common-utils-ts/src/constants/fhir-resource-types.d.ts +0 -52
  37. package/dist/gdc-common-utils-ts/src/constants/fhir-resource-types.js +0 -33
  38. package/dist/gdc-common-utils-ts/src/constants/fhir-versions.d.ts +0 -10
  39. package/dist/gdc-common-utils-ts/src/constants/fhir-versions.js +0 -10
  40. package/dist/gdc-common-utils-ts/src/constants/healthcare.d.ts +0 -496
  41. package/dist/gdc-common-utils-ts/src/constants/healthcare.js +0 -274
  42. package/dist/gdc-common-utils-ts/src/constants/hl7-roles.d.ts +0 -44
  43. package/dist/gdc-common-utils-ts/src/constants/hl7-roles.js +0 -208
  44. package/dist/gdc-common-utils-ts/src/constants/index.d.ts +0 -21
  45. package/dist/gdc-common-utils-ts/src/constants/index.js +0 -21
  46. package/dist/gdc-common-utils-ts/src/constants/network.d.ts +0 -25
  47. package/dist/gdc-common-utils-ts/src/constants/network.js +0 -17
  48. package/dist/gdc-common-utils-ts/src/constants/schemaorg.d.ts +0 -175
  49. package/dist/gdc-common-utils-ts/src/constants/schemaorg.js +0 -261
  50. package/dist/gdc-common-utils-ts/src/constants/sectors.d.ts +0 -24
  51. package/dist/gdc-common-utils-ts/src/constants/sectors.js +0 -24
  52. package/dist/gdc-common-utils-ts/src/constants/service-capabilities.d.ts +0 -82
  53. package/dist/gdc-common-utils-ts/src/constants/service-capabilities.js +0 -105
  54. package/dist/gdc-common-utils-ts/src/constants/smart.d.ts +0 -12
  55. package/dist/gdc-common-utils-ts/src/constants/smart.js +0 -12
  56. package/dist/gdc-common-utils-ts/src/constants/urn.d.ts +0 -11
  57. package/dist/gdc-common-utils-ts/src/constants/urn.js +0 -11
  58. package/dist/gdc-common-utils-ts/src/constants/verifiable-credentials.d.ts +0 -34
  59. package/dist/gdc-common-utils-ts/src/constants/verifiable-credentials.js +0 -42
  60. package/dist/gdc-common-utils-ts/src/constants/vital-signs.d.ts +0 -75
  61. package/dist/gdc-common-utils-ts/src/constants/vital-signs.js +0 -33
  62. package/dist/gdc-common-utils-ts/src/examples/api-flow-examples.d.ts +0 -15
  63. package/dist/gdc-common-utils-ts/src/examples/api-flow-examples.js +0 -16
  64. package/dist/gdc-common-utils-ts/src/examples/communication-bundle-session.d.ts +0 -22
  65. package/dist/gdc-common-utils-ts/src/examples/communication-bundle-session.js +0 -81
  66. package/dist/gdc-common-utils-ts/src/examples/consent-access.d.ts +0 -30
  67. package/dist/gdc-common-utils-ts/src/examples/consent-access.js +0 -121
  68. package/dist/gdc-common-utils-ts/src/examples/contract-examples.d.ts +0 -15
  69. package/dist/gdc-common-utils-ts/src/examples/contract-examples.js +0 -16
  70. package/dist/gdc-common-utils-ts/src/examples/dataspace-discovery.d.ts +0 -98
  71. package/dist/gdc-common-utils-ts/src/examples/dataspace-discovery.js +0 -141
  72. package/dist/gdc-common-utils-ts/src/examples/frontend-session.d.ts +0 -13
  73. package/dist/gdc-common-utils-ts/src/examples/frontend-session.js +0 -24
  74. package/dist/gdc-common-utils-ts/src/examples/ica-activation-proof.d.ts +0 -64
  75. package/dist/gdc-common-utils-ts/src/examples/ica-activation-proof.js +0 -77
  76. package/dist/gdc-common-utils-ts/src/examples/index.d.ts +0 -14
  77. package/dist/gdc-common-utils-ts/src/examples/index.js +0 -14
  78. package/dist/gdc-common-utils-ts/src/examples/individual-controller.d.ts +0 -100
  79. package/dist/gdc-common-utils-ts/src/examples/individual-controller.js +0 -71
  80. package/dist/gdc-common-utils-ts/src/examples/lifecycle.d.ts +0 -505
  81. package/dist/gdc-common-utils-ts/src/examples/lifecycle.js +0 -291
  82. package/dist/gdc-common-utils-ts/src/examples/organization-controller.d.ts +0 -163
  83. package/dist/gdc-common-utils-ts/src/examples/organization-controller.js +0 -93
  84. package/dist/gdc-common-utils-ts/src/examples/professional.d.ts +0 -228
  85. package/dist/gdc-common-utils-ts/src/examples/professional.js +0 -324
  86. package/dist/gdc-common-utils-ts/src/examples/related-person.d.ts +0 -10
  87. package/dist/gdc-common-utils-ts/src/examples/related-person.js +0 -13
  88. package/dist/gdc-common-utils-ts/src/examples/relationship-access.d.ts +0 -11
  89. package/dist/gdc-common-utils-ts/src/examples/relationship-access.js +0 -96
  90. package/dist/gdc-common-utils-ts/src/examples/shared.d.ts +0 -220
  91. package/dist/gdc-common-utils-ts/src/examples/shared.js +0 -191
  92. package/dist/gdc-common-utils-ts/src/hmac.d.ts +0 -14
  93. package/dist/gdc-common-utils-ts/src/hmac.js +0 -24
  94. package/dist/gdc-common-utils-ts/src/i18n/clinical-sections.i18n.d.ts +0 -6
  95. package/dist/gdc-common-utils-ts/src/i18n/clinical-sections.i18n.js +0 -15
  96. package/dist/gdc-common-utils-ts/src/i18n/role-codes.i18n.d.ts +0 -4
  97. package/dist/gdc-common-utils-ts/src/i18n/role-codes.i18n.js +0 -13
  98. package/dist/gdc-common-utils-ts/src/index.d.ts +0 -10
  99. package/dist/gdc-common-utils-ts/src/index.js +0 -10
  100. package/dist/gdc-common-utils-ts/src/interfaces/Cryptography.types.d.ts +0 -139
  101. package/dist/gdc-common-utils-ts/src/interfaces/Cryptography.types.js +0 -8
  102. package/dist/gdc-common-utils-ts/src/interfaces/ICryptoHelper.d.ts +0 -28
  103. package/dist/gdc-common-utils-ts/src/interfaces/ICryptoHelper.js +0 -3
  104. package/dist/gdc-common-utils-ts/src/interfaces/ICryptography.d.ts +0 -154
  105. package/dist/gdc-common-utils-ts/src/interfaces/ICryptography.js +0 -3
  106. package/dist/gdc-common-utils-ts/src/models/actor-session.d.ts +0 -9
  107. package/dist/gdc-common-utils-ts/src/models/actor-session.js +0 -3
  108. package/dist/gdc-common-utils-ts/src/models/aes.d.ts +0 -85
  109. package/dist/gdc-common-utils-ts/src/models/aes.js +0 -10
  110. package/dist/gdc-common-utils-ts/src/models/auth.d.ts +0 -35
  111. package/dist/gdc-common-utils-ts/src/models/auth.js +0 -3
  112. package/dist/gdc-common-utils-ts/src/models/bundle.d.ts +0 -153
  113. package/dist/gdc-common-utils-ts/src/models/bundle.js +0 -25
  114. package/dist/gdc-common-utils-ts/src/models/clinical-sections.d.ts +0 -36
  115. package/dist/gdc-common-utils-ts/src/models/clinical-sections.en.d.ts +0 -150
  116. package/dist/gdc-common-utils-ts/src/models/clinical-sections.en.js +0 -104
  117. package/dist/gdc-common-utils-ts/src/models/clinical-sections.js +0 -32
  118. package/dist/gdc-common-utils-ts/src/models/clinical-workbook-summary.d.ts +0 -126
  119. package/dist/gdc-common-utils-ts/src/models/clinical-workbook-summary.js +0 -67
  120. package/dist/gdc-common-utils-ts/src/models/comm.d.ts +0 -56
  121. package/dist/gdc-common-utils-ts/src/models/comm.js +0 -4
  122. package/dist/gdc-common-utils-ts/src/models/confidential-job.d.ts +0 -78
  123. package/dist/gdc-common-utils-ts/src/models/confidential-job.js +0 -20
  124. package/dist/gdc-common-utils-ts/src/models/confidential-message.d.ts +0 -97
  125. package/dist/gdc-common-utils-ts/src/models/confidential-message.js +0 -4
  126. package/dist/gdc-common-utils-ts/src/models/confidential-storage.d.ts +0 -134
  127. package/dist/gdc-common-utils-ts/src/models/confidential-storage.js +0 -3
  128. package/dist/gdc-common-utils-ts/src/models/consent-access.d.ts +0 -79
  129. package/dist/gdc-common-utils-ts/src/models/consent-access.js +0 -2
  130. package/dist/gdc-common-utils-ts/src/models/consent-rule.d.ts +0 -122
  131. package/dist/gdc-common-utils-ts/src/models/consent-rule.js +0 -22
  132. package/dist/gdc-common-utils-ts/src/models/crypto.d.ts +0 -35
  133. package/dist/gdc-common-utils-ts/src/models/crypto.js +0 -3
  134. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery-defaults.d.ts +0 -79
  135. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery-defaults.js +0 -2
  136. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery.d.ts +0 -68
  137. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery.js +0 -9
  138. package/dist/gdc-common-utils-ts/src/models/dataspace-protocol.d.ts +0 -14
  139. package/dist/gdc-common-utils-ts/src/models/dataspace-protocol.js +0 -2
  140. package/dist/gdc-common-utils-ts/src/models/device-license.d.ts +0 -134
  141. package/dist/gdc-common-utils-ts/src/models/device-license.js +0 -3
  142. package/dist/gdc-common-utils-ts/src/models/did.d.ts +0 -108
  143. package/dist/gdc-common-utils-ts/src/models/did.js +0 -3
  144. package/dist/gdc-common-utils-ts/src/models/fhir-documents.d.ts +0 -101
  145. package/dist/gdc-common-utils-ts/src/models/fhir-documents.js +0 -3
  146. package/dist/gdc-common-utils-ts/src/models/identity-bootstrap.d.ts +0 -104
  147. package/dist/gdc-common-utils-ts/src/models/identity-bootstrap.js +0 -2
  148. package/dist/gdc-common-utils-ts/src/models/index.d.ts +0 -42
  149. package/dist/gdc-common-utils-ts/src/models/index.js +0 -42
  150. package/dist/gdc-common-utils-ts/src/models/indexing.d.ts +0 -11
  151. package/dist/gdc-common-utils-ts/src/models/indexing.js +0 -18
  152. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/allergy-intolerance-claims.d.ts +0 -24
  153. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/allergy-intolerance-claims.js +0 -36
  154. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/communication-claims.d.ts +0 -53
  155. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/communication-claims.js +0 -55
  156. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/condition-claims.d.ts +0 -14
  157. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/condition-claims.js +0 -25
  158. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/device-use-statement-claims.d.ts +0 -13
  159. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/device-use-statement-claims.js +0 -23
  160. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/document-reference-claims.d.ts +0 -36
  161. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/document-reference-claims.js +0 -89
  162. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/medication-statement-claims.d.ts +0 -341
  163. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/medication-statement-claims.js +0 -204
  164. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/types.d.ts +0 -9
  165. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/types.js +0 -3
  166. package/dist/gdc-common-utils-ts/src/models/interoperable-claims.d.ts +0 -5
  167. package/dist/gdc-common-utils-ts/src/models/interoperable-claims.js +0 -7
  168. package/dist/gdc-common-utils-ts/src/models/issue.d.ts +0 -57
  169. package/dist/gdc-common-utils-ts/src/models/issue.js +0 -75
  170. package/dist/gdc-common-utils-ts/src/models/jsonapi.d.ts +0 -13
  171. package/dist/gdc-common-utils-ts/src/models/jsonapi.js +0 -3
  172. package/dist/gdc-common-utils-ts/src/models/jwe.d.ts +0 -120
  173. package/dist/gdc-common-utils-ts/src/models/jwe.js +0 -3
  174. package/dist/gdc-common-utils-ts/src/models/jwk.d.ts +0 -39
  175. package/dist/gdc-common-utils-ts/src/models/jwk.js +0 -3
  176. package/dist/gdc-common-utils-ts/src/models/jws.d.ts +0 -35
  177. package/dist/gdc-common-utils-ts/src/models/jws.js +0 -3
  178. package/dist/gdc-common-utils-ts/src/models/jwt.d.ts +0 -9
  179. package/dist/gdc-common-utils-ts/src/models/jwt.js +0 -3
  180. package/dist/gdc-common-utils-ts/src/models/loinc-document-ontology.d.ts +0 -55
  181. package/dist/gdc-common-utils-ts/src/models/loinc-document-ontology.js +0 -58
  182. package/dist/gdc-common-utils-ts/src/models/oidc4ida.common.model.d.ts +0 -33
  183. package/dist/gdc-common-utils-ts/src/models/oidc4ida.common.model.js +0 -3
  184. package/dist/gdc-common-utils-ts/src/models/oidc4ida.document.model.d.ts +0 -50
  185. package/dist/gdc-common-utils-ts/src/models/oidc4ida.document.model.js +0 -3
  186. package/dist/gdc-common-utils-ts/src/models/oidc4ida.electronicRecord.model.d.ts +0 -67
  187. package/dist/gdc-common-utils-ts/src/models/oidc4ida.electronicRecord.model.js +0 -3
  188. package/dist/gdc-common-utils-ts/src/models/oidc4ida.evidence.model.d.ts +0 -51
  189. package/dist/gdc-common-utils-ts/src/models/oidc4ida.evidence.model.js +0 -5
  190. package/dist/gdc-common-utils-ts/src/models/openid-device.d.ts +0 -119
  191. package/dist/gdc-common-utils-ts/src/models/openid-device.js +0 -3
  192. package/dist/gdc-common-utils-ts/src/models/operation-outcome.d.ts +0 -26
  193. package/dist/gdc-common-utils-ts/src/models/operation-outcome.js +0 -3
  194. package/dist/gdc-common-utils-ts/src/models/params.d.ts +0 -133
  195. package/dist/gdc-common-utils-ts/src/models/params.js +0 -3
  196. package/dist/gdc-common-utils-ts/src/models/relationship-access.d.ts +0 -160
  197. package/dist/gdc-common-utils-ts/src/models/relationship-access.js +0 -21
  198. package/dist/gdc-common-utils-ts/src/models/resource-document.d.ts +0 -14
  199. package/dist/gdc-common-utils-ts/src/models/resource-document.js +0 -3
  200. package/dist/gdc-common-utils-ts/src/models/response.d.ts +0 -1
  201. package/dist/gdc-common-utils-ts/src/models/response.js +0 -3
  202. package/dist/gdc-common-utils-ts/src/models/urlPath.d.ts +0 -58
  203. package/dist/gdc-common-utils-ts/src/models/urlPath.js +0 -76
  204. package/dist/gdc-common-utils-ts/src/models/verifiable-credential.d.ts +0 -45
  205. package/dist/gdc-common-utils-ts/src/models/verifiable-credential.js +0 -8
  206. package/dist/gdc-common-utils-ts/src/storage/IVaultRepository.d.ts +0 -53
  207. package/dist/gdc-common-utils-ts/src/storage/IVaultRepository.js +0 -25
  208. package/dist/gdc-common-utils-ts/src/storage/VaultMemRepository.d.ts +0 -30
  209. package/dist/gdc-common-utils-ts/src/storage/VaultMemRepository.js +0 -81
  210. package/dist/gdc-common-utils-ts/src/storage/index.d.ts +0 -3
  211. package/dist/gdc-common-utils-ts/src/storage/index.js +0 -4
  212. package/dist/gdc-common-utils-ts/src/utils/activation-policy.d.ts +0 -86
  213. package/dist/gdc-common-utils-ts/src/utils/activation-policy.js +0 -218
  214. package/dist/gdc-common-utils-ts/src/utils/activation-request.d.ts +0 -81
  215. package/dist/gdc-common-utils-ts/src/utils/activation-request.js +0 -99
  216. package/dist/gdc-common-utils-ts/src/utils/actor.d.ts +0 -18
  217. package/dist/gdc-common-utils-ts/src/utils/actor.js +0 -36
  218. package/dist/gdc-common-utils-ts/src/utils/base-convert.d.ts +0 -60
  219. package/dist/gdc-common-utils-ts/src/utils/base-convert.js +0 -104
  220. package/dist/gdc-common-utils-ts/src/utils/baseN.d.ts +0 -35
  221. package/dist/gdc-common-utils-ts/src/utils/baseN.js +0 -174
  222. package/dist/gdc-common-utils-ts/src/utils/bundle-query.d.ts +0 -35
  223. package/dist/gdc-common-utils-ts/src/utils/bundle-query.js +0 -177
  224. package/dist/gdc-common-utils-ts/src/utils/bundle.d.ts +0 -13
  225. package/dist/gdc-common-utils-ts/src/utils/bundle.js +0 -39
  226. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-converters.d.ts +0 -64
  227. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-converters.js +0 -279
  228. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-view.d.ts +0 -55
  229. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-view.js +0 -291
  230. package/dist/gdc-common-utils-ts/src/utils/communication-bundle-session.d.ts +0 -110
  231. package/dist/gdc-common-utils-ts/src/utils/communication-bundle-session.js +0 -326
  232. package/dist/gdc-common-utils-ts/src/utils/communication-document-reference.d.ts +0 -41
  233. package/dist/gdc-common-utils-ts/src/utils/communication-document-reference.js +0 -170
  234. package/dist/gdc-common-utils-ts/src/utils/communication-fhir-r4.d.ts +0 -41
  235. package/dist/gdc-common-utils-ts/src/utils/communication-fhir-r4.js +0 -215
  236. package/dist/gdc-common-utils-ts/src/utils/communication-identity.d.ts +0 -152
  237. package/dist/gdc-common-utils-ts/src/utils/communication-identity.js +0 -121
  238. package/dist/gdc-common-utils-ts/src/utils/consent-claim-helpers.d.ts +0 -79
  239. package/dist/gdc-common-utils-ts/src/utils/consent-claim-helpers.js +0 -213
  240. package/dist/gdc-common-utils-ts/src/utils/consent.d.ts +0 -218
  241. package/dist/gdc-common-utils-ts/src/utils/consent.js +0 -679
  242. package/dist/gdc-common-utils-ts/src/utils/content.d.ts +0 -55
  243. package/dist/gdc-common-utils-ts/src/utils/content.js +0 -60
  244. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery-defaults.d.ts +0 -130
  245. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery-defaults.js +0 -307
  246. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery.d.ts +0 -235
  247. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery.js +0 -482
  248. package/dist/gdc-common-utils-ts/src/utils/dataspace-protocol.d.ts +0 -66
  249. package/dist/gdc-common-utils-ts/src/utils/dataspace-protocol.js +0 -109
  250. package/dist/gdc-common-utils-ts/src/utils/did-resolution.d.ts +0 -60
  251. package/dist/gdc-common-utils-ts/src/utils/did-resolution.js +0 -173
  252. package/dist/gdc-common-utils-ts/src/utils/did.d.ts +0 -124
  253. package/dist/gdc-common-utils-ts/src/utils/did.js +0 -204
  254. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit-policy.d.ts +0 -10
  255. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit-policy.js +0 -15
  256. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit.d.ts +0 -48
  257. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit.js +0 -81
  258. package/dist/gdc-common-utils-ts/src/utils/didcomm.d.ts +0 -60
  259. package/dist/gdc-common-utils-ts/src/utils/didcomm.js +0 -78
  260. package/dist/gdc-common-utils-ts/src/utils/discovery-normalization.d.ts +0 -28
  261. package/dist/gdc-common-utils-ts/src/utils/discovery-normalization.js +0 -64
  262. package/dist/gdc-common-utils-ts/src/utils/fhir-cid.d.ts +0 -60
  263. package/dist/gdc-common-utils-ts/src/utils/fhir-cid.js +0 -152
  264. package/dist/gdc-common-utils-ts/src/utils/fhir-validator.d.ts +0 -61
  265. package/dist/gdc-common-utils-ts/src/utils/fhir-validator.js +0 -91
  266. package/dist/gdc-common-utils-ts/src/utils/format-converter.d.ts +0 -21
  267. package/dist/gdc-common-utils-ts/src/utils/format-converter.js +0 -109
  268. package/dist/gdc-common-utils-ts/src/utils/index.d.ts +0 -39
  269. package/dist/gdc-common-utils-ts/src/utils/index.js +0 -39
  270. package/dist/gdc-common-utils-ts/src/utils/individual-form-pdf.d.ts +0 -55
  271. package/dist/gdc-common-utils-ts/src/utils/individual-form-pdf.js +0 -191
  272. package/dist/gdc-common-utils-ts/src/utils/jwt.d.ts +0 -53
  273. package/dist/gdc-common-utils-ts/src/utils/jwt.js +0 -154
  274. package/dist/gdc-common-utils-ts/src/utils/manager-error.d.ts +0 -15
  275. package/dist/gdc-common-utils-ts/src/utils/manager-error.js +0 -21
  276. package/dist/gdc-common-utils-ts/src/utils/medication-claim-helpers.d.ts +0 -56
  277. package/dist/gdc-common-utils-ts/src/utils/medication-claim-helpers.js +0 -127
  278. package/dist/gdc-common-utils-ts/src/utils/multibase58.d.ts +0 -13
  279. package/dist/gdc-common-utils-ts/src/utils/multibase58.js +0 -40
  280. package/dist/gdc-common-utils-ts/src/utils/multibasehash.d.ts +0 -8
  281. package/dist/gdc-common-utils-ts/src/utils/multibasehash.js +0 -23
  282. package/dist/gdc-common-utils-ts/src/utils/normalize-uuid.d.ts +0 -1
  283. package/dist/gdc-common-utils-ts/src/utils/normalize-uuid.js +0 -35
  284. package/dist/gdc-common-utils-ts/src/utils/normalize.d.ts +0 -16
  285. package/dist/gdc-common-utils-ts/src/utils/normalize.js +0 -40
  286. package/dist/gdc-common-utils-ts/src/utils/object-convert.d.ts +0 -20
  287. package/dist/gdc-common-utils-ts/src/utils/object-convert.js +0 -51
  288. package/dist/gdc-common-utils-ts/src/utils/smart-scope.d.ts +0 -28
  289. package/dist/gdc-common-utils-ts/src/utils/smart-scope.js +0 -29
  290. package/dist/gdc-common-utils-ts/src/utils/string-convert.d.ts +0 -24
  291. package/dist/gdc-common-utils-ts/src/utils/string-convert.js +0 -62
  292. package/dist/gdc-common-utils-ts/src/utils/string-utils.d.ts +0 -25
  293. package/dist/gdc-common-utils-ts/src/utils/string-utils.js +0 -66
  294. package/dist/gdc-common-utils-ts/src/utils/url.d.ts +0 -26
  295. package/dist/gdc-common-utils-ts/src/utils/url.js +0 -44
  296. package/dist/gdc-common-utils-ts/src/utils/vp-token.d.ts +0 -139
  297. package/dist/gdc-common-utils-ts/src/utils/vp-token.js +0 -256
  298. package/dist/gdc-sdk-core-ts/src/actor-model.d.ts +0 -56
  299. package/dist/gdc-sdk-core-ts/src/actor-model.js +0 -112
  300. package/dist/gdc-sdk-core-ts/src/app-identity.d.ts +0 -80
  301. package/dist/gdc-sdk-core-ts/src/app-identity.js +0 -147
  302. package/dist/gdc-sdk-core-ts/src/bootstrap-facade.d.ts +0 -165
  303. package/dist/gdc-sdk-core-ts/src/bootstrap-facade.js +0 -191
  304. package/dist/gdc-sdk-core-ts/src/communication-bundle-contracts.d.ts +0 -112
  305. package/dist/gdc-sdk-core-ts/src/communication-bundle-contracts.js +0 -185
  306. package/dist/gdc-sdk-core-ts/src/communication-bundle-resources.d.ts +0 -32
  307. package/dist/gdc-sdk-core-ts/src/communication-bundle-resources.js +0 -215
  308. package/dist/gdc-sdk-core-ts/src/communication-consent-mutation-contract.d.ts +0 -55
  309. package/dist/gdc-sdk-core-ts/src/communication-consent-mutation-contract.js +0 -190
  310. package/dist/gdc-sdk-core-ts/src/communication-document-facade.d.ts +0 -55
  311. package/dist/gdc-sdk-core-ts/src/communication-document-facade.js +0 -194
  312. package/dist/gdc-sdk-core-ts/src/communication-draft.d.ts +0 -104
  313. package/dist/gdc-sdk-core-ts/src/communication-draft.js +0 -143
  314. package/dist/gdc-sdk-core-ts/src/communication-outbox.d.ts +0 -49
  315. package/dist/gdc-sdk-core-ts/src/communication-outbox.js +0 -62
  316. package/dist/gdc-sdk-core-ts/src/communication-resource-helpers.d.ts +0 -180
  317. package/dist/gdc-sdk-core-ts/src/communication-resource-helpers.js +0 -455
  318. package/dist/gdc-sdk-core-ts/src/consent-access.d.ts +0 -73
  319. package/dist/gdc-sdk-core-ts/src/consent-access.js +0 -109
  320. package/dist/gdc-sdk-core-ts/src/consent-claim-helpers.d.ts +0 -5
  321. package/dist/gdc-sdk-core-ts/src/consent-claim-helpers.js +0 -6
  322. package/dist/gdc-sdk-core-ts/src/consent-communication-operations.d.ts +0 -82
  323. package/dist/gdc-sdk-core-ts/src/consent-communication-operations.js +0 -135
  324. package/dist/gdc-sdk-core-ts/src/did-resolution-session.d.ts +0 -33
  325. package/dist/gdc-sdk-core-ts/src/did-resolution-session.js +0 -56
  326. package/dist/gdc-sdk-core-ts/src/discovery-facade.d.ts +0 -84
  327. package/dist/gdc-sdk-core-ts/src/discovery-facade.js +0 -24
  328. package/dist/gdc-sdk-core-ts/src/identity-model.d.ts +0 -46
  329. package/dist/gdc-sdk-core-ts/src/identity-model.js +0 -2
  330. package/dist/gdc-sdk-core-ts/src/identity-store.d.ts +0 -83
  331. package/dist/gdc-sdk-core-ts/src/identity-store.js +0 -51
  332. package/dist/gdc-sdk-core-ts/src/index.d.ts +0 -23
  333. package/dist/gdc-sdk-core-ts/src/index.js +0 -24
  334. package/dist/gdc-sdk-core-ts/src/medication-claim-helpers.d.ts +0 -5
  335. package/dist/gdc-sdk-core-ts/src/medication-claim-helpers.js +0 -6
  336. package/dist/gdc-sdk-core-ts/src/polling-model.d.ts +0 -35
  337. package/dist/gdc-sdk-core-ts/src/polling-model.js +0 -24
  338. package/dist/gdc-sdk-core-ts/src/relationship-access.d.ts +0 -40
  339. package/dist/gdc-sdk-core-ts/src/relationship-access.js +0 -150
  340. package/dist/gdc-sdk-core-ts/src/session-model.d.ts +0 -134
  341. package/dist/gdc-sdk-core-ts/src/session-model.js +0 -2
  342. package/dist/gdc-sdk-core-ts/src/smart-endpoint-resolver.d.ts +0 -19
  343. package/dist/gdc-sdk-core-ts/src/smart-endpoint-resolver.js +0 -19
  344. package/dist/gdc-sdk-core-ts/src/vital-signs.d.ts +0 -38
  345. package/dist/gdc-sdk-core-ts/src/vital-signs.js +0 -155
  346. package/dist/gdc-sdk-front-ts/src/ClientSDK.d.ts +0 -99
  347. package/dist/gdc-sdk-front-ts/src/ClientSDK.js +0 -177
  348. package/dist/gdc-sdk-front-ts/src/ProfileManager.d.ts +0 -140
  349. package/dist/gdc-sdk-front-ts/src/ProfileManager.js +0 -76
  350. package/dist/gdc-sdk-front-ts/src/ProfileRegistry.d.ts +0 -11
  351. package/dist/gdc-sdk-front-ts/src/ProfileRegistry.js +0 -26
  352. package/dist/gdc-sdk-front-ts/src/VerifierService.d.ts +0 -6
  353. package/dist/gdc-sdk-front-ts/src/VerifierService.js +0 -10
  354. package/dist/gdc-sdk-front-ts/src/actor-session.d.ts +0 -2
  355. package/dist/gdc-sdk-front-ts/src/actor-session.js +0 -2
  356. package/dist/gdc-sdk-front-ts/src/capabilityMapper.d.ts +0 -8
  357. package/dist/gdc-sdk-front-ts/src/capabilityMapper.js +0 -28
  358. package/dist/gdc-sdk-front-ts/src/consent-claim-helpers.d.ts +0 -4
  359. package/dist/gdc-sdk-front-ts/src/consent-claim-helpers.js +0 -5
  360. package/dist/gdc-sdk-front-ts/src/discovery/DataspaceDiscoveryClient.d.ts +0 -54
  361. package/dist/gdc-sdk-front-ts/src/discovery/DataspaceDiscoveryClient.js +0 -85
  362. package/dist/gdc-sdk-front-ts/src/discovery/index.d.ts +0 -3
  363. package/dist/gdc-sdk-front-ts/src/discovery/index.js +0 -4
  364. package/dist/gdc-sdk-front-ts/src/discovery/mappers.d.ts +0 -29
  365. package/dist/gdc-sdk-front-ts/src/discovery/mappers.js +0 -60
  366. package/dist/gdc-sdk-front-ts/src/discovery/types.d.ts +0 -83
  367. package/dist/gdc-sdk-front-ts/src/discovery/types.js +0 -2
  368. package/dist/gdc-sdk-front-ts/src/index.d.ts +0 -15
  369. package/dist/gdc-sdk-front-ts/src/index.js +0 -16
  370. package/dist/gdc-sdk-front-ts/src/medication-claim-helpers.d.ts +0 -4
  371. package/dist/gdc-sdk-front-ts/src/medication-claim-helpers.js +0 -5
  372. package/dist/gdc-sdk-front-ts/src/roleRegistry.d.ts +0 -19
  373. package/dist/gdc-sdk-front-ts/src/roleRegistry.js +0 -2
  374. package/dist/gdc-sdk-front-ts/src/runtime-contracts.d.ts +0 -22
  375. package/dist/gdc-sdk-front-ts/src/runtime-contracts.js +0 -7
  376. package/dist/gdc-sdk-front-ts/src/services.d.ts +0 -167
  377. package/dist/gdc-sdk-front-ts/src/services.js +0 -78
  378. package/dist/gdc-sdk-front-ts/src/session-descriptor.d.ts +0 -11
  379. package/dist/gdc-sdk-front-ts/src/session-descriptor.js +0 -8
  380. package/dist/gdc-sdk-front-ts/src/types.d.ts +0 -11
  381. package/dist/gdc-sdk-front-ts/src/types.js +0 -1
  382. package/dist/lifecycle-examples.d.ts +0 -6
  383. package/dist/lifecycle-examples.js +0 -7
  384. package/dist/medication-claim-helpers.d.ts +0 -4
  385. package/dist/medication-claim-helpers.js +0 -5
  386. package/dist/orchestration/facades.d.ts +0 -65
  387. package/dist/orchestration/facades.js +0 -142
@@ -1,679 +0,0 @@
1
- // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
- import { ClaimConsent } from '../models/consent-rule.js';
3
- import { assignCidToClaimsId } from './fhir-cid.js';
4
- /**
5
- * Normalizes a phone string into a compact token form.
6
- *
7
- * @param value Raw phone-like input.
8
- */
9
- export function normalizePhone(value) {
10
- return String(value || '').replace(/[^\d+]/g, '');
11
- }
12
- /**
13
- * Normalizes arbitrary identifier text into a lowercase token-safe fragment.
14
- *
15
- * @param value Raw identifier text.
16
- */
17
- export function normalizeIdentifierToken(value) {
18
- return String(value || '')
19
- .trim()
20
- .toLowerCase()
21
- .replace(/[^a-z0-9]+/g, '-')
22
- .replace(/(^-|-$)/g, '');
23
- }
24
- function withPrefix(prefix, message) {
25
- return prefix ? `${prefix} ${message}` : message;
26
- }
27
- /**
28
- * Parses a single canonical consent actor token into its resolved kind/value.
29
- *
30
- * @param rawToken Raw actor token such as `did:...`, `user@example.org`,
31
- * `tel:+34600111222`, or `ES`.
32
- * @returns The normalized parsed token or `undefined` when the token cannot be resolved.
33
- */
34
- export function parseConsentActorToken(rawToken) {
35
- const token = String(rawToken || '').trim();
36
- if (!token)
37
- return undefined;
38
- if (token.startsWith('did:')) {
39
- return { kind: 'did', value: token };
40
- }
41
- const email = token.toLowerCase();
42
- if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
43
- return { kind: 'email', value: email };
44
- }
45
- if (/^tel:/i.test(token)) {
46
- const normalizedPhone = normalizePhone(token.slice(4));
47
- if (normalizedPhone)
48
- return { kind: 'phone', value: `tel:${normalizedPhone}` };
49
- }
50
- if (/^[A-Z]{2}$/.test(token)) {
51
- return { kind: 'country', value: token };
52
- }
53
- return undefined;
54
- }
55
- /**
56
- * Normalizes a consent actor input into a list of canonical actor tokens.
57
- *
58
- * The output preserves input order while removing empty and duplicate tokens.
59
- * Legacy structured actor inputs are still supported as a compatibility layer.
60
- *
61
- * @param actor Consent actor input in canonical or legacy form.
62
- * @param options.errorPrefix Optional error prefix.
63
- * @throws When no valid actor token can be resolved from the input.
64
- */
65
- export function normalizeConsentActors(actor, options = {}) {
66
- const rawTokens = [];
67
- if (typeof actor === 'string') {
68
- rawTokens.push(...actor.split(','));
69
- }
70
- else if (Array.isArray(actor)) {
71
- for (const item of actor)
72
- rawTokens.push(...String(item || '').split(','));
73
- }
74
- else if (actor && typeof actor === 'object') {
75
- const legacy = actor;
76
- const identifier = String(legacy.identifier || '').trim();
77
- if (identifier)
78
- rawTokens.push(identifier);
79
- const didWeb = String(legacy.didWeb || '').trim();
80
- if (didWeb)
81
- rawTokens.push(didWeb);
82
- const orgUrl = String(legacy.url || legacy.organizationUrl || '').trim();
83
- if (orgUrl) {
84
- try {
85
- const parsed = orgUrl.includes('://') ? new URL(orgUrl) : new URL(`https://${orgUrl}`);
86
- if (parsed.hostname)
87
- rawTokens.push(`did:web:${parsed.hostname.toLowerCase()}`);
88
- }
89
- catch {
90
- // Ignore malformed URL and continue with other fallbacks.
91
- }
92
- }
93
- const email = String(legacy.email || '').trim();
94
- if (email)
95
- rawTokens.push(email);
96
- const phone = normalizePhone(String(legacy.phone || ''));
97
- if (phone)
98
- rawTokens.push(`tel:${phone}`);
99
- }
100
- const normalized = [];
101
- const seen = new Set();
102
- for (const rawToken of rawTokens) {
103
- const parsed = parseConsentActorToken(rawToken);
104
- if (!parsed)
105
- continue;
106
- if (!seen.has(parsed.value)) {
107
- seen.add(parsed.value);
108
- normalized.push(parsed.value);
109
- }
110
- }
111
- if (normalized.length === 0) {
112
- throw new Error(withPrefix(options.errorPrefix, 'Consent.actor-identifier input is required and must contain at least one resolvable token (did, email, tel, or country code).'));
113
- }
114
- return normalized;
115
- }
116
- /**
117
- * Resolves the canonical consent actor string used in consent claims.
118
- *
119
- * The resulting value is always a comma-separated canonical string, even when
120
- * the caller provides an array or a legacy structured object.
121
- *
122
- * @param actor Consent actor input in canonical or legacy form.
123
- * @param options.errorPrefix Optional error prefix.
124
- */
125
- export function resolveActorIdentifier(actor, options = {}) {
126
- return normalizeConsentActors(actor, options).join(',');
127
- }
128
- /**
129
- * Resolves the canonical subject identifier used in consent claims.
130
- *
131
- * @param input Subject identification inputs.
132
- * @param options.errorPrefix Optional error prefix.
133
- */
134
- export function resolveSubjectIdentifier(input, options = {}) {
135
- const did = String(input?.subjectDid || '').trim();
136
- if (did)
137
- return did;
138
- const phone = normalizePhone(String(input?.subjectPhone || ''));
139
- const given = normalizeIdentifierToken(String(input?.subjectGivenName || ''));
140
- if (phone && given)
141
- return `urn:person:phone:${phone}:given:${given}`;
142
- throw new Error(withPrefix(options.errorPrefix, 'grantProfessionalAccessSimple requires subjectDid or (subjectPhone + subjectGivenName).'));
143
- }
144
- /**
145
- * Builds a minimal consent claims object from simple business inputs.
146
- *
147
- * @param input Consent actor/subject/business data.
148
- * @param options.errorPrefix Optional error prefix.
149
- * @param options.consentIdentifierFactory Optional fallback identifier factory.
150
- */
151
- export function buildConsentClaimsSimple(input, options = {}) {
152
- const actorIdentifier = resolveActorIdentifier(input.actor, { errorPrefix: options.errorPrefix });
153
- const subjectIdentifier = resolveSubjectIdentifier(input, { errorPrefix: options.errorPrefix });
154
- const consentDate = String(input.consentDate || '').trim() || new Date().toISOString().slice(0, 10);
155
- const consentIdentifier = String(input.consentIdentifier || '').trim() || String(options.consentIdentifierFactory?.() || '').trim();
156
- if (!consentIdentifier) {
157
- throw new Error(withPrefix(options.errorPrefix, 'consentIdentifier is required when no consentIdentifierFactory is provided.'));
158
- }
159
- return {
160
- actorIdentifier,
161
- subjectIdentifier,
162
- consentClaims: {
163
- '@context': 'org.hl7.fhir.api',
164
- [ClaimConsent.decision]: input.decision || 'permit',
165
- [ClaimConsent.subject]: subjectIdentifier,
166
- [ClaimConsent.identifier]: consentIdentifier,
167
- [ClaimConsent.date]: consentDate,
168
- [ClaimConsent.purpose]: input.purpose,
169
- [ClaimConsent.action]: (input.actions || []).join(','),
170
- [ClaimConsent.actorIdentifier]: actorIdentifier,
171
- [ClaimConsent.actorRole]: input.actorRole,
172
- [ClaimConsent.attachmentContentType]: input.attachmentContentType || 'application/odrl+json',
173
- [ClaimConsent.attachmentData]: input.attachmentBase64 || 'e30=',
174
- },
175
- };
176
- }
177
- /**
178
- * Builds minimal consent claims and assigns a deterministic CID into the claims id.
179
- *
180
- * @param input Consent actor/subject/business data.
181
- * @param options.errorPrefix Optional error prefix.
182
- * @param options.consentIdentifierFactory Optional fallback identifier factory.
183
- */
184
- export function buildConsentClaimsSimpleWithCid(input, options = {}) {
185
- const built = buildConsentClaimsSimple(input, options);
186
- const assigned = assignCidToClaimsId(built.consentClaims);
187
- return {
188
- actorIdentifier: built.actorIdentifier,
189
- subjectIdentifier: built.subjectIdentifier,
190
- consentClaims: assigned.claims,
191
- claimsCid: assigned.cid,
192
- };
193
- }
194
- function normalizeJurisdiction(value) {
195
- const trimmed = String(value || '').trim();
196
- if (!trimmed)
197
- return '';
198
- if (/^[A-Z]{2}$/i.test(trimmed))
199
- return trimmed.toUpperCase();
200
- const isoStd = trimmed.match(/^urn:iso:std:iso:3166\|([a-z]{2})$/i);
201
- if (isoStd)
202
- return isoStd[1].toUpperCase();
203
- const iso = trimmed.match(/^urn:iso:3166(?:-2)?:([a-z]{2})(?:[-:].*)?$/i);
204
- if (iso)
205
- return iso[1].toUpperCase();
206
- return trimmed.toUpperCase();
207
- }
208
- function normalizeDidWebFromUrl(value) {
209
- const raw = String(value || '').trim();
210
- if (!raw)
211
- return undefined;
212
- if (raw.startsWith('did:web:'))
213
- return raw.toLowerCase();
214
- try {
215
- const parsed = raw.includes('://') ? new URL(raw) : new URL(`https://${raw}`);
216
- return parsed.hostname ? `did:web:${parsed.hostname.toLowerCase()}` : undefined;
217
- }
218
- catch {
219
- return undefined;
220
- }
221
- }
222
- function normalizeConsentRoleValue(value) {
223
- const trimmed = String(value || '').trim();
224
- if (!trimmed || trimmed === '*')
225
- return trimmed;
226
- const [system, code] = trimmed.includes('|') ? trimmed.split('|', 2) : ['', trimmed];
227
- return system
228
- ? `${system.trim().toLowerCase()}|${code.trim()}`
229
- : trimmed.toLowerCase();
230
- }
231
- function splitCsv(value) {
232
- return String(value || '')
233
- .split(',')
234
- .map((item) => item.trim())
235
- .filter(Boolean);
236
- }
237
- function normalizeSectionToken(value) {
238
- const trimmed = String(value || '').trim();
239
- if (!trimmed || !trimmed.includes('|'))
240
- return trimmed;
241
- const [system, code] = trimmed.split('|', 2);
242
- const normalizedSystem = system
243
- .trim()
244
- .toLowerCase()
245
- .replace(/^https?:\/\/loinc\.org$/i, 'loinc')
246
- .replace(/^urn:oid:2\.16\.840\.1\.113883\.6\.1$/i, 'loinc');
247
- return `${normalizedSystem}|${code.trim()}`;
248
- }
249
- function uniqueTargets(targets) {
250
- const seen = new Set();
251
- const result = [];
252
- for (const target of targets) {
253
- const key = `${target.kind}:${target.canonicalValue}:${target.isDirectTarget ? 'd' : ''}${target.isOrganizationTarget ? 'o' : ''}${target.isJurisdictionTarget ? 'j' : ''}`;
254
- if (seen.has(key))
255
- continue;
256
- seen.add(key);
257
- result.push(target);
258
- }
259
- return result;
260
- }
261
- /**
262
- * Normalizes a consent target token into a reusable matching descriptor.
263
- *
264
- * The helper keeps the current GW contract:
265
- * - the first precedence tier is intended for concrete professional email matches
266
- * - direct runtime selectors may still include email / `did:web` / phone
267
- * - organization targets are normalized to `did:web:<host>`
268
- * - jurisdictions resolve to ISO-like uppercase codes
269
- * - phone targets stay marked as extension-specific
270
- *
271
- * @param input Raw target input from a rule or runtime request.
272
- * @param options.actorKind Optional actor family hint.
273
- * @param options.preferOrganizationDid When true, base `did:web:<host>` values are treated as organization targets.
274
- */
275
- export function normalizeConsentTarget(input, options = {}) {
276
- const raw = String(input || '').trim();
277
- const parsed = parseConsentActorToken(raw);
278
- if (parsed?.kind === 'email') {
279
- return {
280
- raw,
281
- kind: 'email',
282
- canonicalValue: parsed.value,
283
- isDirectTarget: true,
284
- isOrganizationTarget: false,
285
- isJurisdictionTarget: false,
286
- isPhoneExtension: false,
287
- };
288
- }
289
- if (parsed?.kind === 'phone') {
290
- return {
291
- raw,
292
- kind: 'phone',
293
- canonicalValue: parsed.value,
294
- isDirectTarget: true,
295
- isOrganizationTarget: false,
296
- isJurisdictionTarget: false,
297
- isPhoneExtension: true,
298
- };
299
- }
300
- if (parsed?.kind === 'country') {
301
- return {
302
- raw,
303
- kind: 'jurisdiction',
304
- canonicalValue: parsed.value,
305
- isDirectTarget: false,
306
- isOrganizationTarget: false,
307
- isJurisdictionTarget: true,
308
- isPhoneExtension: false,
309
- };
310
- }
311
- const organizationDid = normalizeDidWebFromUrl(raw);
312
- const isEmployeeLikeDid = /^did:web:[^:\s]+:(employee|family|relatedperson|related-person):/i.test(raw);
313
- if (raw.startsWith('did:')) {
314
- const preferOrganizationDid = Boolean(options.preferOrganizationDid && !isEmployeeLikeDid);
315
- return {
316
- raw,
317
- kind: preferOrganizationDid ? 'organization' : 'did',
318
- canonicalValue: raw.toLowerCase(),
319
- isDirectTarget: !preferOrganizationDid,
320
- isOrganizationTarget: preferOrganizationDid,
321
- isJurisdictionTarget: false,
322
- isPhoneExtension: false,
323
- };
324
- }
325
- if (organizationDid) {
326
- return {
327
- raw,
328
- kind: 'organization',
329
- canonicalValue: organizationDid,
330
- isDirectTarget: false,
331
- isOrganizationTarget: true,
332
- isJurisdictionTarget: false,
333
- isPhoneExtension: false,
334
- };
335
- }
336
- const jurisdiction = normalizeJurisdiction(raw);
337
- if (/^[A-Z]{2}$/.test(jurisdiction)) {
338
- return {
339
- raw,
340
- kind: 'jurisdiction',
341
- canonicalValue: jurisdiction,
342
- isDirectTarget: false,
343
- isOrganizationTarget: false,
344
- isJurisdictionTarget: true,
345
- isPhoneExtension: false,
346
- };
347
- }
348
- return {
349
- raw,
350
- kind: 'unknown',
351
- canonicalValue: raw,
352
- isDirectTarget: false,
353
- isOrganizationTarget: false,
354
- isJurisdictionTarget: false,
355
- isPhoneExtension: false,
356
- };
357
- }
358
- /**
359
- * Resolves all actor match targets used by consent evaluation.
360
- *
361
- * Organization matching prefers explicit `organizationDid` / `organizationUrl`.
362
- * When those are absent but an email exists, the email domain is exposed as a
363
- * fallback organization target through `did:web:<domain>`.
364
- *
365
- * @param actor Runtime actor descriptor.
366
- */
367
- export function resolveConsentActor(actor) {
368
- const actorKind = actor.actorKind || 'professional';
369
- const directTargets = [];
370
- const organizationTargets = [];
371
- const jurisdictionTargets = [];
372
- const phoneTargets = [];
373
- const email = String(actor.email || '').trim();
374
- if (email) {
375
- const direct = normalizeConsentTarget(email, { actorKind });
376
- directTargets.push(direct);
377
- const domain = email.includes('@') ? email.split('@')[1] : '';
378
- const fallbackOrganizationDid = normalizeDidWebFromUrl(domain);
379
- if (fallbackOrganizationDid) {
380
- organizationTargets.push(normalizeConsentTarget(fallbackOrganizationDid, {
381
- actorKind,
382
- preferOrganizationDid: true,
383
- }));
384
- }
385
- }
386
- const did = String(actor.did || '').trim();
387
- if (did) {
388
- directTargets.push(normalizeConsentTarget(did, { actorKind }));
389
- const baseOrgDid = did.startsWith('did:web:') ? `did:web:${did.slice('did:web:'.length).split(':')[0]}` : '';
390
- if (baseOrgDid) {
391
- organizationTargets.push(normalizeConsentTarget(baseOrgDid, {
392
- actorKind,
393
- preferOrganizationDid: true,
394
- }));
395
- }
396
- }
397
- const phone = normalizePhone(String(actor.phone || ''));
398
- if (phone) {
399
- const phoneTarget = normalizeConsentTarget(`tel:${phone}`, { actorKind });
400
- directTargets.push(phoneTarget);
401
- phoneTargets.push(phoneTarget);
402
- }
403
- const orgDid = String(actor.organizationDid || '').trim();
404
- if (orgDid) {
405
- organizationTargets.push(normalizeConsentTarget(orgDid, {
406
- actorKind,
407
- preferOrganizationDid: true,
408
- }));
409
- }
410
- const orgUrl = String(actor.organizationUrl || '').trim();
411
- if (orgUrl) {
412
- const normalized = normalizeDidWebFromUrl(orgUrl);
413
- if (normalized) {
414
- organizationTargets.push(normalizeConsentTarget(normalized, {
415
- actorKind,
416
- preferOrganizationDid: true,
417
- }));
418
- }
419
- }
420
- const jurisdiction = normalizeJurisdiction(String(actor.jurisdiction || ''));
421
- if (jurisdiction) {
422
- jurisdictionTargets.push(normalizeConsentTarget(jurisdiction, { actorKind }));
423
- }
424
- return {
425
- actorKind,
426
- directTargets: uniqueTargets(directTargets),
427
- organizationTargets: uniqueTargets(organizationTargets),
428
- jurisdictionTargets: uniqueTargets(jurisdictionTargets),
429
- phoneTargets: uniqueTargets(phoneTargets),
430
- };
431
- }
432
- /**
433
- * Returns `true` when a consent rule is currently active.
434
- *
435
- * A rule is active when:
436
- * - it matches the requested subject when one is provided
437
- * - `Consent.period-start` is absent or already effective
438
- * - `Consent.period-end` is absent or still in the future
439
- *
440
- * @param rule Consent rule to inspect.
441
- * @param options.subject Optional subject filter.
442
- * @param options.now Optional evaluation timestamp.
443
- */
444
- export function isConsentRuleActive(rule, options = {}) {
445
- if (options.subject && String(rule[ClaimConsent.subject] || '').trim() !== String(options.subject || '').trim()) {
446
- return false;
447
- }
448
- const now = options.now instanceof Date
449
- ? options.now.getTime()
450
- : options.now
451
- ? new Date(options.now).getTime()
452
- : Date.now();
453
- const periodStart = String(rule[ClaimConsent.periodStart] || '').trim();
454
- const periodEnd = String(rule[ClaimConsent.periodEnd] || '').trim();
455
- if (periodStart && !Number.isNaN(Date.parse(periodStart)) && Date.parse(periodStart) > now)
456
- return false;
457
- if (periodEnd && !Number.isNaN(Date.parse(periodEnd)) && Date.parse(periodEnd) < now)
458
- return false;
459
- return true;
460
- }
461
- function groupRulesBy(rules, predicate) {
462
- var _a;
463
- const groups = {};
464
- for (const rule of rules) {
465
- for (const token of splitCsv(rule[ClaimConsent.actorIdentifier])) {
466
- const normalized = normalizeConsentTarget(token, { preferOrganizationDid: true });
467
- if (!predicate(normalized))
468
- continue;
469
- groups[_a = normalized.canonicalValue] || (groups[_a] = []);
470
- groups[normalized.canonicalValue].push(rule);
471
- }
472
- }
473
- return groups;
474
- }
475
- /**
476
- * Builds an aggregated active-consent view grouped by target kind.
477
- *
478
- * @param rules Full consent-rule set available for the subject.
479
- * @param options.subject Optional subject filter.
480
- * @param options.now Optional evaluation timestamp.
481
- */
482
- export function groupActiveConsentsByTarget(rules, options = {}) {
483
- const activeRules = rules.filter((rule) => isConsentRuleActive(rule, options));
484
- return {
485
- activeRules,
486
- byDirectTarget: groupRulesBy(activeRules, (target) => target.isDirectTarget && !target.isPhoneExtension),
487
- byOrganizationTarget: groupRulesBy(activeRules, (target) => target.isOrganizationTarget),
488
- byJurisdictionTarget: groupRulesBy(activeRules, (target) => target.isJurisdictionTarget),
489
- byPhoneTarget: groupRulesBy(activeRules, (target) => target.isPhoneExtension),
490
- };
491
- }
492
- function normalizeRequestedList(values, wildcard = '*') {
493
- const normalized = (values || []).map((value) => String(value || '').trim()).filter(Boolean);
494
- return normalized.length ? Array.from(new Set(normalized)) : [wildcard];
495
- }
496
- function extractRuleResourceTypes(rule) {
497
- const candidates = [
498
- rule[ClaimConsent.resourceType],
499
- rule['Consent.resource-type'],
500
- rule['Consent.resource'],
501
- rule['Consent.data-type'],
502
- ];
503
- for (const candidate of candidates) {
504
- const values = splitCsv(candidate);
505
- if (values.length > 0)
506
- return values;
507
- }
508
- return [];
509
- }
510
- function ruleMatchesRole(rule, actorRole) {
511
- const ruleRoles = splitCsv(rule[ClaimConsent.actorRole]).map(normalizeConsentRoleValue).filter(Boolean);
512
- if (ruleRoles.length === 0 || ruleRoles.includes('*'))
513
- return true;
514
- const requestedRole = normalizeConsentRoleValue(String(actorRole || ''));
515
- return !!requestedRole && ruleRoles.includes(requestedRole);
516
- }
517
- function ruleMatchesPurpose(rule, purpose) {
518
- const rulePurpose = String(rule[ClaimConsent.purpose] || '').trim();
519
- if (!purpose || !rulePurpose)
520
- return true;
521
- return rulePurpose === purpose;
522
- }
523
- function ruleMatchesSection(rule, section) {
524
- if (!section || section === '*')
525
- return true;
526
- const requestedSection = normalizeSectionToken(section);
527
- const actions = splitCsv(rule[ClaimConsent.action]).map(normalizeSectionToken);
528
- if (actions.length === 0)
529
- return false;
530
- return actions.includes(requestedSection) || actions.includes('*');
531
- }
532
- function ruleMatchesResourceType(rule, resourceType) {
533
- if (!resourceType || resourceType === '*')
534
- return true;
535
- const resourceTypes = extractRuleResourceTypes(rule);
536
- if (resourceTypes.length === 0)
537
- return true;
538
- return resourceTypes.includes(resourceType) || resourceTypes.includes('*');
539
- }
540
- function resolveRuleMatch(rule, actor) {
541
- for (const token of splitCsv(rule[ClaimConsent.actorIdentifier])) {
542
- const normalized = normalizeConsentTarget(token, { preferOrganizationDid: true });
543
- if (actor.directTargets.some((target) => target.canonicalValue === normalized.canonicalValue)) {
544
- return { matchKind: 'direct', target: normalized, precedenceBase: 10 };
545
- }
546
- if (actor.organizationTargets.some((target) => target.canonicalValue === normalized.canonicalValue)) {
547
- return { matchKind: 'organization', target: normalized, precedenceBase: 20 };
548
- }
549
- if (actor.jurisdictionTargets.some((target) => target.canonicalValue === normalized.canonicalValue)) {
550
- return { matchKind: 'jurisdiction', target: normalized, precedenceBase: 30 };
551
- }
552
- }
553
- return { matchKind: 'none' };
554
- }
555
- function toRuleMatch(rule, actor, section, resourceType) {
556
- const resolved = resolveRuleMatch(rule, actor);
557
- if (!resolved.target || resolved.matchKind === 'none' || resolved.precedenceBase === undefined)
558
- return undefined;
559
- const decision = rule[ClaimConsent.decision];
560
- const precedence = resolved.precedenceBase + (decision === 'deny' ? 0 : 1);
561
- return {
562
- rule,
563
- ruleId: String((rule.id) || '').trim() || undefined,
564
- decision,
565
- matchKind: resolved.matchKind,
566
- target: resolved.target,
567
- precedence,
568
- section: section === '*' ? undefined : section,
569
- resourceType: resourceType === '*' ? undefined : resourceType,
570
- };
571
- }
572
- function emptyMissing() {
573
- return { sections: [], resourceTypes: [], pairs: [] };
574
- }
575
- /**
576
- * Evaluates effective consent coverage for a runtime access request.
577
- *
578
- * Precedence implemented by the shared evaluator:
579
- * 1. explicit deny for a concrete email
580
- * 2. explicit permit for a concrete email
581
- * 3. organization-scoped decisions
582
- * 4. jurisdiction-scoped decisions
583
- * 5. default deny
584
- *
585
- * Resource-type evaluation is optional: when a rule does not carry an explicit
586
- * resource-type filter, it is treated as section-scoped wildcard coverage.
587
- *
588
- * @param rules Full consent-rule set available to the caller.
589
- * @param request Runtime request to evaluate.
590
- */
591
- export function evaluateConsentCoverage(rules, request) {
592
- const actor = resolveConsentActor(request.actor);
593
- const sections = normalizeRequestedList(request.sections);
594
- const resourceTypes = normalizeRequestedList(request.resourceTypes);
595
- const activeRules = rules.filter((rule) => isConsentRuleActive(rule, {
596
- subject: request.subject,
597
- now: request.now,
598
- }));
599
- const matchedRules = [];
600
- const winningRules = [];
601
- const explicitDenials = [];
602
- const allowedSections = new Set();
603
- const deniedSections = new Set();
604
- const allowedResourceTypes = new Set();
605
- const deniedResourceTypes = new Set();
606
- const missing = emptyMissing();
607
- for (const section of sections) {
608
- for (const resourceType of resourceTypes) {
609
- const candidates = activeRules
610
- .filter((rule) => ruleMatchesRole(rule, request.actorRole)
611
- && ruleMatchesPurpose(rule, request.purpose)
612
- && ruleMatchesSection(rule, section)
613
- && ruleMatchesResourceType(rule, resourceType))
614
- .map((rule) => toRuleMatch(rule, actor, section, resourceType))
615
- .filter((match) => Boolean(match))
616
- .sort((a, b) => a.precedence - b.precedence);
617
- matchedRules.push(...candidates);
618
- const winner = candidates[0];
619
- if (!winner) {
620
- missing.pairs.push({
621
- section: section === '*' ? undefined : section,
622
- resourceType: resourceType === '*' ? undefined : resourceType,
623
- reason: 'default-deny-no-active-consent',
624
- });
625
- if (section !== '*')
626
- missing.sections.push(section);
627
- if (resourceType !== '*')
628
- missing.resourceTypes.push(resourceType);
629
- if (section !== '*')
630
- deniedSections.add(section);
631
- if (resourceType !== '*')
632
- deniedResourceTypes.add(resourceType);
633
- continue;
634
- }
635
- winningRules.push(winner);
636
- if (winner.decision === 'deny') {
637
- explicitDenials.push(winner);
638
- if (section !== '*')
639
- deniedSections.add(section);
640
- if (resourceType !== '*')
641
- deniedResourceTypes.add(resourceType);
642
- missing.pairs.push({
643
- section: section === '*' ? undefined : section,
644
- resourceType: resourceType === '*' ? undefined : resourceType,
645
- reason: `explicit-${winner.matchKind}-deny`,
646
- });
647
- if (section !== '*')
648
- missing.sections.push(section);
649
- if (resourceType !== '*')
650
- missing.resourceTypes.push(resourceType);
651
- }
652
- else {
653
- if (section !== '*')
654
- allowedSections.add(section);
655
- if (resourceType !== '*')
656
- allowedResourceTypes.add(resourceType);
657
- }
658
- }
659
- }
660
- return {
661
- allowed: missing.pairs.length === 0,
662
- denied: missing.pairs.length > 0 && allowedSections.size === 0 && allowedResourceTypes.size === 0,
663
- partial: missing.pairs.length > 0 && (allowedSections.size > 0 || allowedResourceTypes.size > 0),
664
- subject: request.subject,
665
- actor,
666
- matchedRules,
667
- winningRules,
668
- explicitDenials,
669
- allowedSections: Array.from(allowedSections),
670
- deniedSections: Array.from(deniedSections),
671
- allowedResourceTypes: Array.from(allowedResourceTypes),
672
- deniedResourceTypes: Array.from(deniedResourceTypes),
673
- missing: {
674
- sections: Array.from(new Set(missing.sections)),
675
- resourceTypes: Array.from(new Set(missing.resourceTypes)),
676
- pairs: missing.pairs,
677
- },
678
- };
679
- }