gdc-sdk-front-ts 0.6.2 → 0.6.6

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 (396) hide show
  1. package/README.md +36 -8
  2. package/dist/ProfileManager.d.ts +22 -0
  3. package/dist/ProfileManager.js +155 -0
  4. package/dist/gdc-common-utils-ts/src/AesManager.d.ts +27 -0
  5. package/dist/gdc-common-utils-ts/src/AesManager.js +64 -0
  6. package/dist/gdc-common-utils-ts/src/CryptographyService.d.ts +76 -0
  7. package/dist/gdc-common-utils-ts/src/CryptographyService.js +401 -0
  8. package/dist/gdc-common-utils-ts/src/constants/actor-session.d.ts +40 -0
  9. package/dist/gdc-common-utils-ts/src/constants/actor-session.js +40 -0
  10. package/dist/gdc-common-utils-ts/src/constants/communication.d.ts +28 -0
  11. package/dist/gdc-common-utils-ts/src/constants/communication.js +14 -0
  12. package/dist/gdc-common-utils-ts/src/constants/cryptography.d.ts +58 -0
  13. package/dist/gdc-common-utils-ts/src/constants/cryptography.js +49 -0
  14. package/dist/gdc-common-utils-ts/src/constants/dataspace-discovery.d.ts +11 -0
  15. package/dist/gdc-common-utils-ts/src/constants/dataspace-discovery.js +11 -0
  16. package/dist/gdc-common-utils-ts/src/constants/dataspace-protocol.d.ts +27 -0
  17. package/dist/gdc-common-utils-ts/src/constants/dataspace-protocol.js +27 -0
  18. package/dist/gdc-common-utils-ts/src/constants/device.d.ts +16 -0
  19. package/dist/gdc-common-utils-ts/src/constants/device.js +15 -0
  20. package/dist/gdc-common-utils-ts/src/constants/did-services.d.ts +42 -0
  21. package/dist/gdc-common-utils-ts/src/constants/did-services.js +40 -0
  22. package/dist/gdc-common-utils-ts/src/constants/eu-countries.d.ts +36 -0
  23. package/dist/gdc-common-utils-ts/src/constants/eu-countries.js +69 -0
  24. package/dist/gdc-common-utils-ts/src/constants/fhir-code-systems.d.ts +12 -0
  25. package/dist/gdc-common-utils-ts/src/constants/fhir-code-systems.js +12 -0
  26. package/dist/gdc-common-utils-ts/src/constants/fhir-resource-types.d.ts +52 -0
  27. package/dist/gdc-common-utils-ts/src/constants/fhir-resource-types.js +33 -0
  28. package/dist/gdc-common-utils-ts/src/constants/fhir-versions.d.ts +10 -0
  29. package/dist/gdc-common-utils-ts/src/constants/fhir-versions.js +10 -0
  30. package/dist/gdc-common-utils-ts/src/constants/healthcare.d.ts +496 -0
  31. package/dist/gdc-common-utils-ts/src/constants/healthcare.js +274 -0
  32. package/dist/gdc-common-utils-ts/src/constants/hl7-roles.d.ts +44 -0
  33. package/dist/gdc-common-utils-ts/src/constants/hl7-roles.js +208 -0
  34. package/dist/gdc-common-utils-ts/src/constants/index.d.ts +21 -0
  35. package/dist/gdc-common-utils-ts/src/constants/index.js +21 -0
  36. package/dist/gdc-common-utils-ts/src/constants/network.d.ts +25 -0
  37. package/dist/gdc-common-utils-ts/src/constants/network.js +17 -0
  38. package/dist/gdc-common-utils-ts/src/constants/schemaorg.d.ts +175 -0
  39. package/dist/gdc-common-utils-ts/src/constants/schemaorg.js +261 -0
  40. package/dist/gdc-common-utils-ts/src/constants/sectors.d.ts +24 -0
  41. package/dist/gdc-common-utils-ts/src/constants/sectors.js +24 -0
  42. package/dist/gdc-common-utils-ts/src/constants/service-capabilities.d.ts +82 -0
  43. package/dist/gdc-common-utils-ts/src/constants/service-capabilities.js +105 -0
  44. package/dist/gdc-common-utils-ts/src/constants/smart.d.ts +12 -0
  45. package/dist/gdc-common-utils-ts/src/constants/smart.js +12 -0
  46. package/dist/gdc-common-utils-ts/src/constants/urn.d.ts +11 -0
  47. package/dist/gdc-common-utils-ts/src/constants/urn.js +11 -0
  48. package/dist/gdc-common-utils-ts/src/constants/verifiable-credentials.d.ts +34 -0
  49. package/dist/gdc-common-utils-ts/src/constants/verifiable-credentials.js +42 -0
  50. package/dist/gdc-common-utils-ts/src/constants/vital-signs.d.ts +75 -0
  51. package/dist/gdc-common-utils-ts/src/constants/vital-signs.js +33 -0
  52. package/dist/gdc-common-utils-ts/src/examples/api-flow-examples.d.ts +15 -0
  53. package/dist/gdc-common-utils-ts/src/examples/api-flow-examples.js +16 -0
  54. package/dist/gdc-common-utils-ts/src/examples/communication-bundle-session.d.ts +22 -0
  55. package/dist/gdc-common-utils-ts/src/examples/communication-bundle-session.js +81 -0
  56. package/dist/gdc-common-utils-ts/src/examples/consent-access.d.ts +30 -0
  57. package/dist/gdc-common-utils-ts/src/examples/consent-access.js +121 -0
  58. package/dist/gdc-common-utils-ts/src/examples/contract-examples.d.ts +15 -0
  59. package/dist/gdc-common-utils-ts/src/examples/contract-examples.js +16 -0
  60. package/dist/gdc-common-utils-ts/src/examples/dataspace-discovery.d.ts +98 -0
  61. package/dist/gdc-common-utils-ts/src/examples/dataspace-discovery.js +141 -0
  62. package/dist/gdc-common-utils-ts/src/examples/frontend-session.d.ts +13 -0
  63. package/dist/gdc-common-utils-ts/src/examples/frontend-session.js +24 -0
  64. package/dist/gdc-common-utils-ts/src/examples/ica-activation-proof.d.ts +64 -0
  65. package/dist/gdc-common-utils-ts/src/examples/ica-activation-proof.js +77 -0
  66. package/dist/gdc-common-utils-ts/src/examples/index.d.ts +14 -0
  67. package/dist/gdc-common-utils-ts/src/examples/index.js +14 -0
  68. package/dist/gdc-common-utils-ts/src/examples/individual-controller.d.ts +100 -0
  69. package/dist/gdc-common-utils-ts/src/examples/individual-controller.js +71 -0
  70. package/dist/gdc-common-utils-ts/src/examples/lifecycle.d.ts +505 -0
  71. package/dist/gdc-common-utils-ts/src/examples/lifecycle.js +291 -0
  72. package/dist/gdc-common-utils-ts/src/examples/organization-controller.d.ts +163 -0
  73. package/dist/gdc-common-utils-ts/src/examples/organization-controller.js +93 -0
  74. package/dist/gdc-common-utils-ts/src/examples/professional.d.ts +228 -0
  75. package/dist/gdc-common-utils-ts/src/examples/professional.js +324 -0
  76. package/dist/gdc-common-utils-ts/src/examples/related-person.d.ts +10 -0
  77. package/dist/gdc-common-utils-ts/src/examples/related-person.js +13 -0
  78. package/dist/gdc-common-utils-ts/src/examples/relationship-access.d.ts +11 -0
  79. package/dist/gdc-common-utils-ts/src/examples/relationship-access.js +96 -0
  80. package/dist/gdc-common-utils-ts/src/examples/shared.d.ts +220 -0
  81. package/dist/gdc-common-utils-ts/src/examples/shared.js +191 -0
  82. package/dist/gdc-common-utils-ts/src/hmac.d.ts +14 -0
  83. package/dist/gdc-common-utils-ts/src/hmac.js +24 -0
  84. package/dist/gdc-common-utils-ts/src/i18n/clinical-sections.i18n.d.ts +6 -0
  85. package/dist/gdc-common-utils-ts/src/i18n/clinical-sections.i18n.js +15 -0
  86. package/dist/gdc-common-utils-ts/src/i18n/role-codes.i18n.d.ts +4 -0
  87. package/dist/gdc-common-utils-ts/src/i18n/role-codes.i18n.js +13 -0
  88. package/dist/gdc-common-utils-ts/src/index.d.ts +10 -0
  89. package/dist/gdc-common-utils-ts/src/index.js +10 -0
  90. package/dist/gdc-common-utils-ts/src/interfaces/Cryptography.types.d.ts +139 -0
  91. package/dist/gdc-common-utils-ts/src/interfaces/Cryptography.types.js +8 -0
  92. package/dist/gdc-common-utils-ts/src/interfaces/ICryptoHelper.d.ts +28 -0
  93. package/dist/gdc-common-utils-ts/src/interfaces/ICryptoHelper.js +3 -0
  94. package/dist/gdc-common-utils-ts/src/interfaces/ICryptography.d.ts +154 -0
  95. package/dist/gdc-common-utils-ts/src/interfaces/ICryptography.js +3 -0
  96. package/dist/gdc-common-utils-ts/src/models/actor-session.d.ts +9 -0
  97. package/dist/gdc-common-utils-ts/src/models/actor-session.js +3 -0
  98. package/dist/gdc-common-utils-ts/src/models/aes.d.ts +85 -0
  99. package/dist/gdc-common-utils-ts/src/models/aes.js +10 -0
  100. package/dist/gdc-common-utils-ts/src/models/auth.d.ts +35 -0
  101. package/dist/gdc-common-utils-ts/src/models/auth.js +3 -0
  102. package/dist/gdc-common-utils-ts/src/models/bundle.d.ts +153 -0
  103. package/dist/gdc-common-utils-ts/src/models/bundle.js +25 -0
  104. package/dist/gdc-common-utils-ts/src/models/clinical-sections.d.ts +36 -0
  105. package/dist/gdc-common-utils-ts/src/models/clinical-sections.en.d.ts +150 -0
  106. package/dist/gdc-common-utils-ts/src/models/clinical-sections.en.js +104 -0
  107. package/dist/gdc-common-utils-ts/src/models/clinical-sections.js +32 -0
  108. package/dist/gdc-common-utils-ts/src/models/clinical-workbook-summary.d.ts +126 -0
  109. package/dist/gdc-common-utils-ts/src/models/clinical-workbook-summary.js +67 -0
  110. package/dist/gdc-common-utils-ts/src/models/comm.d.ts +56 -0
  111. package/dist/gdc-common-utils-ts/src/models/comm.js +4 -0
  112. package/dist/gdc-common-utils-ts/src/models/confidential-job.d.ts +78 -0
  113. package/dist/gdc-common-utils-ts/src/models/confidential-job.js +20 -0
  114. package/dist/gdc-common-utils-ts/src/models/confidential-message.d.ts +97 -0
  115. package/dist/gdc-common-utils-ts/src/models/confidential-message.js +4 -0
  116. package/dist/gdc-common-utils-ts/src/models/confidential-storage.d.ts +134 -0
  117. package/dist/gdc-common-utils-ts/src/models/confidential-storage.js +3 -0
  118. package/dist/gdc-common-utils-ts/src/models/consent-access.d.ts +79 -0
  119. package/dist/gdc-common-utils-ts/src/models/consent-access.js +2 -0
  120. package/dist/gdc-common-utils-ts/src/models/consent-rule.d.ts +122 -0
  121. package/dist/gdc-common-utils-ts/src/models/consent-rule.js +22 -0
  122. package/dist/gdc-common-utils-ts/src/models/crypto.d.ts +35 -0
  123. package/dist/gdc-common-utils-ts/src/models/crypto.js +3 -0
  124. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery-defaults.d.ts +79 -0
  125. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery-defaults.js +2 -0
  126. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery.d.ts +68 -0
  127. package/dist/gdc-common-utils-ts/src/models/dataspace-discovery.js +9 -0
  128. package/dist/gdc-common-utils-ts/src/models/dataspace-protocol.d.ts +14 -0
  129. package/dist/gdc-common-utils-ts/src/models/dataspace-protocol.js +2 -0
  130. package/dist/gdc-common-utils-ts/src/models/device-license.d.ts +134 -0
  131. package/dist/gdc-common-utils-ts/src/models/device-license.js +3 -0
  132. package/dist/gdc-common-utils-ts/src/models/did.d.ts +108 -0
  133. package/dist/gdc-common-utils-ts/src/models/did.js +3 -0
  134. package/dist/gdc-common-utils-ts/src/models/fhir-documents.d.ts +101 -0
  135. package/dist/gdc-common-utils-ts/src/models/fhir-documents.js +3 -0
  136. package/dist/gdc-common-utils-ts/src/models/identity-bootstrap.d.ts +104 -0
  137. package/dist/gdc-common-utils-ts/src/models/identity-bootstrap.js +2 -0
  138. package/dist/gdc-common-utils-ts/src/models/index.d.ts +42 -0
  139. package/dist/gdc-common-utils-ts/src/models/index.js +42 -0
  140. package/dist/gdc-common-utils-ts/src/models/indexing.d.ts +11 -0
  141. package/dist/gdc-common-utils-ts/src/models/indexing.js +18 -0
  142. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/allergy-intolerance-claims.d.ts +24 -0
  143. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/allergy-intolerance-claims.js +36 -0
  144. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/communication-claims.d.ts +53 -0
  145. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/communication-claims.js +55 -0
  146. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/condition-claims.d.ts +14 -0
  147. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/condition-claims.js +25 -0
  148. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/device-use-statement-claims.d.ts +13 -0
  149. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/device-use-statement-claims.js +23 -0
  150. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/document-reference-claims.d.ts +36 -0
  151. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/document-reference-claims.js +89 -0
  152. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/medication-statement-claims.d.ts +341 -0
  153. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/medication-statement-claims.js +204 -0
  154. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/types.d.ts +9 -0
  155. package/dist/gdc-common-utils-ts/src/models/interoperable-claims/types.js +3 -0
  156. package/dist/gdc-common-utils-ts/src/models/interoperable-claims.d.ts +5 -0
  157. package/dist/gdc-common-utils-ts/src/models/interoperable-claims.js +7 -0
  158. package/dist/gdc-common-utils-ts/src/models/issue.d.ts +57 -0
  159. package/dist/gdc-common-utils-ts/src/models/issue.js +75 -0
  160. package/dist/gdc-common-utils-ts/src/models/jsonapi.d.ts +13 -0
  161. package/dist/gdc-common-utils-ts/src/models/jsonapi.js +3 -0
  162. package/dist/gdc-common-utils-ts/src/models/jwe.d.ts +120 -0
  163. package/dist/gdc-common-utils-ts/src/models/jwe.js +3 -0
  164. package/dist/gdc-common-utils-ts/src/models/jwk.d.ts +39 -0
  165. package/dist/gdc-common-utils-ts/src/models/jwk.js +3 -0
  166. package/dist/gdc-common-utils-ts/src/models/jws.d.ts +35 -0
  167. package/dist/gdc-common-utils-ts/src/models/jws.js +3 -0
  168. package/dist/gdc-common-utils-ts/src/models/jwt.d.ts +9 -0
  169. package/dist/gdc-common-utils-ts/src/models/jwt.js +3 -0
  170. package/dist/gdc-common-utils-ts/src/models/loinc-document-ontology.d.ts +55 -0
  171. package/dist/gdc-common-utils-ts/src/models/loinc-document-ontology.js +58 -0
  172. package/dist/gdc-common-utils-ts/src/models/oidc4ida.common.model.d.ts +33 -0
  173. package/dist/gdc-common-utils-ts/src/models/oidc4ida.common.model.js +3 -0
  174. package/dist/gdc-common-utils-ts/src/models/oidc4ida.document.model.d.ts +50 -0
  175. package/dist/gdc-common-utils-ts/src/models/oidc4ida.document.model.js +3 -0
  176. package/dist/gdc-common-utils-ts/src/models/oidc4ida.electronicRecord.model.d.ts +67 -0
  177. package/dist/gdc-common-utils-ts/src/models/oidc4ida.electronicRecord.model.js +3 -0
  178. package/dist/gdc-common-utils-ts/src/models/oidc4ida.evidence.model.d.ts +51 -0
  179. package/dist/gdc-common-utils-ts/src/models/oidc4ida.evidence.model.js +5 -0
  180. package/dist/gdc-common-utils-ts/src/models/openid-device.d.ts +119 -0
  181. package/dist/gdc-common-utils-ts/src/models/openid-device.js +3 -0
  182. package/dist/gdc-common-utils-ts/src/models/operation-outcome.d.ts +26 -0
  183. package/dist/gdc-common-utils-ts/src/models/operation-outcome.js +3 -0
  184. package/dist/gdc-common-utils-ts/src/models/params.d.ts +133 -0
  185. package/dist/gdc-common-utils-ts/src/models/params.js +3 -0
  186. package/dist/gdc-common-utils-ts/src/models/relationship-access.d.ts +160 -0
  187. package/dist/gdc-common-utils-ts/src/models/relationship-access.js +21 -0
  188. package/dist/gdc-common-utils-ts/src/models/resource-document.d.ts +14 -0
  189. package/dist/gdc-common-utils-ts/src/models/resource-document.js +3 -0
  190. package/dist/gdc-common-utils-ts/src/models/response.d.ts +1 -0
  191. package/dist/gdc-common-utils-ts/src/models/response.js +3 -0
  192. package/dist/gdc-common-utils-ts/src/models/urlPath.d.ts +58 -0
  193. package/dist/gdc-common-utils-ts/src/models/urlPath.js +76 -0
  194. package/dist/gdc-common-utils-ts/src/models/verifiable-credential.d.ts +45 -0
  195. package/dist/gdc-common-utils-ts/src/models/verifiable-credential.js +8 -0
  196. package/dist/gdc-common-utils-ts/src/storage/IVaultRepository.d.ts +53 -0
  197. package/dist/gdc-common-utils-ts/src/storage/IVaultRepository.js +25 -0
  198. package/dist/gdc-common-utils-ts/src/storage/VaultMemRepository.d.ts +30 -0
  199. package/dist/gdc-common-utils-ts/src/storage/VaultMemRepository.js +81 -0
  200. package/dist/gdc-common-utils-ts/src/storage/index.d.ts +3 -0
  201. package/dist/gdc-common-utils-ts/src/storage/index.js +4 -0
  202. package/dist/gdc-common-utils-ts/src/utils/activation-policy.d.ts +86 -0
  203. package/dist/gdc-common-utils-ts/src/utils/activation-policy.js +218 -0
  204. package/dist/gdc-common-utils-ts/src/utils/activation-request.d.ts +81 -0
  205. package/dist/gdc-common-utils-ts/src/utils/activation-request.js +99 -0
  206. package/dist/gdc-common-utils-ts/src/utils/actor.d.ts +18 -0
  207. package/dist/gdc-common-utils-ts/src/utils/actor.js +36 -0
  208. package/dist/gdc-common-utils-ts/src/utils/base-convert.d.ts +60 -0
  209. package/dist/gdc-common-utils-ts/src/utils/base-convert.js +104 -0
  210. package/dist/gdc-common-utils-ts/src/utils/baseN.d.ts +35 -0
  211. package/dist/gdc-common-utils-ts/src/utils/baseN.js +174 -0
  212. package/dist/gdc-common-utils-ts/src/utils/bundle-query.d.ts +35 -0
  213. package/dist/gdc-common-utils-ts/src/utils/bundle-query.js +177 -0
  214. package/dist/gdc-common-utils-ts/src/utils/bundle.d.ts +13 -0
  215. package/dist/gdc-common-utils-ts/src/utils/bundle.js +39 -0
  216. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-converters.d.ts +64 -0
  217. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-converters.js +279 -0
  218. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-view.d.ts +55 -0
  219. package/dist/gdc-common-utils-ts/src/utils/clinical-resource-view.js +291 -0
  220. package/dist/gdc-common-utils-ts/src/utils/communication-bundle-session.d.ts +110 -0
  221. package/dist/gdc-common-utils-ts/src/utils/communication-bundle-session.js +326 -0
  222. package/dist/gdc-common-utils-ts/src/utils/communication-document-reference.d.ts +41 -0
  223. package/dist/gdc-common-utils-ts/src/utils/communication-document-reference.js +170 -0
  224. package/dist/gdc-common-utils-ts/src/utils/communication-fhir-r4.d.ts +41 -0
  225. package/dist/gdc-common-utils-ts/src/utils/communication-fhir-r4.js +215 -0
  226. package/dist/gdc-common-utils-ts/src/utils/communication-identity.d.ts +152 -0
  227. package/dist/gdc-common-utils-ts/src/utils/communication-identity.js +121 -0
  228. package/dist/gdc-common-utils-ts/src/utils/consent-claim-helpers.d.ts +79 -0
  229. package/dist/gdc-common-utils-ts/src/utils/consent-claim-helpers.js +213 -0
  230. package/dist/gdc-common-utils-ts/src/utils/consent.d.ts +218 -0
  231. package/dist/gdc-common-utils-ts/src/utils/consent.js +679 -0
  232. package/dist/gdc-common-utils-ts/src/utils/content.d.ts +55 -0
  233. package/dist/gdc-common-utils-ts/src/utils/content.js +60 -0
  234. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery-defaults.d.ts +130 -0
  235. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery-defaults.js +307 -0
  236. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery.d.ts +235 -0
  237. package/dist/gdc-common-utils-ts/src/utils/dataspace-discovery.js +482 -0
  238. package/dist/gdc-common-utils-ts/src/utils/dataspace-protocol.d.ts +66 -0
  239. package/dist/gdc-common-utils-ts/src/utils/dataspace-protocol.js +109 -0
  240. package/dist/gdc-common-utils-ts/src/utils/did-resolution.d.ts +60 -0
  241. package/dist/gdc-common-utils-ts/src/utils/did-resolution.js +173 -0
  242. package/dist/gdc-common-utils-ts/src/utils/did.d.ts +124 -0
  243. package/dist/gdc-common-utils-ts/src/utils/did.js +204 -0
  244. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit-policy.d.ts +10 -0
  245. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit-policy.js +15 -0
  246. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit.d.ts +48 -0
  247. package/dist/gdc-common-utils-ts/src/utils/didcomm-submit.js +81 -0
  248. package/dist/gdc-common-utils-ts/src/utils/didcomm.d.ts +60 -0
  249. package/dist/gdc-common-utils-ts/src/utils/didcomm.js +78 -0
  250. package/dist/gdc-common-utils-ts/src/utils/discovery-normalization.d.ts +28 -0
  251. package/dist/gdc-common-utils-ts/src/utils/discovery-normalization.js +64 -0
  252. package/dist/gdc-common-utils-ts/src/utils/fhir-cid.d.ts +60 -0
  253. package/dist/gdc-common-utils-ts/src/utils/fhir-cid.js +152 -0
  254. package/dist/gdc-common-utils-ts/src/utils/fhir-validator.d.ts +61 -0
  255. package/dist/gdc-common-utils-ts/src/utils/fhir-validator.js +91 -0
  256. package/dist/gdc-common-utils-ts/src/utils/format-converter.d.ts +21 -0
  257. package/dist/gdc-common-utils-ts/src/utils/format-converter.js +109 -0
  258. package/dist/gdc-common-utils-ts/src/utils/index.d.ts +39 -0
  259. package/dist/gdc-common-utils-ts/src/utils/index.js +39 -0
  260. package/dist/gdc-common-utils-ts/src/utils/individual-form-pdf.d.ts +55 -0
  261. package/dist/gdc-common-utils-ts/src/utils/individual-form-pdf.js +191 -0
  262. package/dist/gdc-common-utils-ts/src/utils/jwt.d.ts +53 -0
  263. package/dist/gdc-common-utils-ts/src/utils/jwt.js +154 -0
  264. package/dist/gdc-common-utils-ts/src/utils/manager-error.d.ts +15 -0
  265. package/dist/gdc-common-utils-ts/src/utils/manager-error.js +21 -0
  266. package/dist/gdc-common-utils-ts/src/utils/medication-claim-helpers.d.ts +56 -0
  267. package/dist/gdc-common-utils-ts/src/utils/medication-claim-helpers.js +127 -0
  268. package/dist/gdc-common-utils-ts/src/utils/multibase58.d.ts +13 -0
  269. package/dist/gdc-common-utils-ts/src/utils/multibase58.js +40 -0
  270. package/dist/gdc-common-utils-ts/src/utils/multibasehash.d.ts +8 -0
  271. package/dist/gdc-common-utils-ts/src/utils/multibasehash.js +23 -0
  272. package/dist/gdc-common-utils-ts/src/utils/normalize-uuid.d.ts +1 -0
  273. package/dist/gdc-common-utils-ts/src/utils/normalize-uuid.js +35 -0
  274. package/dist/gdc-common-utils-ts/src/utils/normalize.d.ts +16 -0
  275. package/dist/gdc-common-utils-ts/src/utils/normalize.js +40 -0
  276. package/dist/gdc-common-utils-ts/src/utils/object-convert.d.ts +20 -0
  277. package/dist/gdc-common-utils-ts/src/utils/object-convert.js +51 -0
  278. package/dist/gdc-common-utils-ts/src/utils/smart-scope.d.ts +28 -0
  279. package/dist/gdc-common-utils-ts/src/utils/smart-scope.js +29 -0
  280. package/dist/gdc-common-utils-ts/src/utils/string-convert.d.ts +24 -0
  281. package/dist/gdc-common-utils-ts/src/utils/string-convert.js +62 -0
  282. package/dist/gdc-common-utils-ts/src/utils/string-utils.d.ts +25 -0
  283. package/dist/gdc-common-utils-ts/src/utils/string-utils.js +66 -0
  284. package/dist/gdc-common-utils-ts/src/utils/url.d.ts +26 -0
  285. package/dist/gdc-common-utils-ts/src/utils/url.js +44 -0
  286. package/dist/gdc-common-utils-ts/src/utils/vp-token.d.ts +139 -0
  287. package/dist/gdc-common-utils-ts/src/utils/vp-token.js +256 -0
  288. package/dist/gdc-sdk-core-ts/src/actor-model.d.ts +56 -0
  289. package/dist/gdc-sdk-core-ts/src/actor-model.js +112 -0
  290. package/dist/gdc-sdk-core-ts/src/app-identity.d.ts +80 -0
  291. package/dist/gdc-sdk-core-ts/src/app-identity.js +147 -0
  292. package/dist/gdc-sdk-core-ts/src/bootstrap-facade.d.ts +165 -0
  293. package/dist/gdc-sdk-core-ts/src/bootstrap-facade.js +191 -0
  294. package/dist/gdc-sdk-core-ts/src/communication-bundle-contracts.d.ts +112 -0
  295. package/dist/gdc-sdk-core-ts/src/communication-bundle-contracts.js +185 -0
  296. package/dist/gdc-sdk-core-ts/src/communication-bundle-resources.d.ts +32 -0
  297. package/dist/gdc-sdk-core-ts/src/communication-bundle-resources.js +215 -0
  298. package/dist/gdc-sdk-core-ts/src/communication-consent-mutation-contract.d.ts +55 -0
  299. package/dist/gdc-sdk-core-ts/src/communication-consent-mutation-contract.js +190 -0
  300. package/dist/gdc-sdk-core-ts/src/communication-document-facade.d.ts +55 -0
  301. package/dist/gdc-sdk-core-ts/src/communication-document-facade.js +194 -0
  302. package/dist/gdc-sdk-core-ts/src/communication-draft.d.ts +104 -0
  303. package/dist/gdc-sdk-core-ts/src/communication-draft.js +143 -0
  304. package/dist/gdc-sdk-core-ts/src/communication-outbox.d.ts +49 -0
  305. package/dist/gdc-sdk-core-ts/src/communication-outbox.js +62 -0
  306. package/dist/gdc-sdk-core-ts/src/communication-resource-helpers.d.ts +180 -0
  307. package/dist/gdc-sdk-core-ts/src/communication-resource-helpers.js +455 -0
  308. package/dist/gdc-sdk-core-ts/src/consent-access.d.ts +73 -0
  309. package/dist/gdc-sdk-core-ts/src/consent-access.js +109 -0
  310. package/dist/gdc-sdk-core-ts/src/consent-claim-helpers.d.ts +5 -0
  311. package/dist/gdc-sdk-core-ts/src/consent-claim-helpers.js +6 -0
  312. package/dist/gdc-sdk-core-ts/src/consent-communication-operations.d.ts +82 -0
  313. package/dist/gdc-sdk-core-ts/src/consent-communication-operations.js +135 -0
  314. package/dist/gdc-sdk-core-ts/src/did-resolution-session.d.ts +33 -0
  315. package/dist/gdc-sdk-core-ts/src/did-resolution-session.js +56 -0
  316. package/dist/gdc-sdk-core-ts/src/discovery-facade.d.ts +84 -0
  317. package/dist/gdc-sdk-core-ts/src/discovery-facade.js +24 -0
  318. package/dist/gdc-sdk-core-ts/src/identity-model.d.ts +46 -0
  319. package/dist/gdc-sdk-core-ts/src/identity-model.js +2 -0
  320. package/dist/gdc-sdk-core-ts/src/identity-store.d.ts +83 -0
  321. package/dist/gdc-sdk-core-ts/src/identity-store.js +51 -0
  322. package/dist/gdc-sdk-core-ts/src/index.d.ts +23 -0
  323. package/dist/gdc-sdk-core-ts/src/index.js +24 -0
  324. package/dist/gdc-sdk-core-ts/src/medication-claim-helpers.d.ts +5 -0
  325. package/dist/gdc-sdk-core-ts/src/medication-claim-helpers.js +6 -0
  326. package/dist/gdc-sdk-core-ts/src/polling-model.d.ts +35 -0
  327. package/dist/gdc-sdk-core-ts/src/polling-model.js +24 -0
  328. package/dist/gdc-sdk-core-ts/src/relationship-access.d.ts +40 -0
  329. package/dist/gdc-sdk-core-ts/src/relationship-access.js +150 -0
  330. package/dist/gdc-sdk-core-ts/src/session-model.d.ts +134 -0
  331. package/dist/gdc-sdk-core-ts/src/session-model.js +2 -0
  332. package/dist/gdc-sdk-core-ts/src/smart-endpoint-resolver.d.ts +19 -0
  333. package/dist/gdc-sdk-core-ts/src/smart-endpoint-resolver.js +19 -0
  334. package/dist/gdc-sdk-core-ts/src/vital-signs.d.ts +38 -0
  335. package/dist/gdc-sdk-core-ts/src/vital-signs.js +155 -0
  336. package/dist/gdc-sdk-front-ts/src/ClientSDK.d.ts +99 -0
  337. package/dist/gdc-sdk-front-ts/src/ClientSDK.js +177 -0
  338. package/dist/gdc-sdk-front-ts/src/ProfileManager.d.ts +140 -0
  339. package/dist/gdc-sdk-front-ts/src/ProfileManager.js +76 -0
  340. package/dist/gdc-sdk-front-ts/src/ProfileRegistry.d.ts +11 -0
  341. package/dist/gdc-sdk-front-ts/src/ProfileRegistry.js +26 -0
  342. package/dist/gdc-sdk-front-ts/src/VerifierService.d.ts +6 -0
  343. package/dist/gdc-sdk-front-ts/src/VerifierService.js +10 -0
  344. package/dist/gdc-sdk-front-ts/src/actor-session.d.ts +2 -0
  345. package/dist/gdc-sdk-front-ts/src/actor-session.js +2 -0
  346. package/dist/gdc-sdk-front-ts/src/capabilityMapper.d.ts +8 -0
  347. package/dist/gdc-sdk-front-ts/src/capabilityMapper.js +28 -0
  348. package/dist/gdc-sdk-front-ts/src/consent-claim-helpers.d.ts +4 -0
  349. package/dist/gdc-sdk-front-ts/src/consent-claim-helpers.js +5 -0
  350. package/dist/gdc-sdk-front-ts/src/discovery/DataspaceDiscoveryClient.d.ts +54 -0
  351. package/dist/gdc-sdk-front-ts/src/discovery/DataspaceDiscoveryClient.js +85 -0
  352. package/dist/gdc-sdk-front-ts/src/discovery/index.d.ts +3 -0
  353. package/dist/gdc-sdk-front-ts/src/discovery/index.js +4 -0
  354. package/dist/gdc-sdk-front-ts/src/discovery/mappers.d.ts +29 -0
  355. package/dist/gdc-sdk-front-ts/src/discovery/mappers.js +60 -0
  356. package/dist/gdc-sdk-front-ts/src/discovery/types.d.ts +83 -0
  357. package/dist/gdc-sdk-front-ts/src/discovery/types.js +2 -0
  358. package/dist/gdc-sdk-front-ts/src/index.d.ts +15 -0
  359. package/dist/gdc-sdk-front-ts/src/index.js +16 -0
  360. package/dist/gdc-sdk-front-ts/src/medication-claim-helpers.d.ts +4 -0
  361. package/dist/gdc-sdk-front-ts/src/medication-claim-helpers.js +5 -0
  362. package/dist/gdc-sdk-front-ts/src/roleRegistry.d.ts +19 -0
  363. package/dist/gdc-sdk-front-ts/src/roleRegistry.js +2 -0
  364. package/dist/gdc-sdk-front-ts/src/runtime-contracts.d.ts +22 -0
  365. package/dist/gdc-sdk-front-ts/src/runtime-contracts.js +7 -0
  366. package/dist/gdc-sdk-front-ts/src/services.d.ts +167 -0
  367. package/dist/gdc-sdk-front-ts/src/services.js +78 -0
  368. package/dist/gdc-sdk-front-ts/src/session-descriptor.d.ts +11 -0
  369. package/dist/gdc-sdk-front-ts/src/session-descriptor.js +8 -0
  370. package/dist/gdc-sdk-front-ts/src/types.d.ts +11 -0
  371. package/dist/gdc-sdk-front-ts/src/types.js +1 -0
  372. package/dist/index.d.ts +8 -0
  373. package/dist/index.js +8 -0
  374. package/dist/medication-claim-helpers.d.ts +4 -0
  375. package/dist/medication-claim-helpers.js +5 -0
  376. package/dist/orchestration/client-port.d.ts +161 -0
  377. package/dist/orchestration/client-port.js +26 -0
  378. package/dist/orchestration/facades.d.ts +65 -0
  379. package/dist/orchestration/facades.js +142 -0
  380. package/dist/orchestration/host-onboarding-sdk.d.ts +9 -0
  381. package/dist/orchestration/host-onboarding-sdk.js +16 -0
  382. package/dist/orchestration/individual-controller-sdk.d.ts +18 -0
  383. package/dist/orchestration/individual-controller-sdk.js +43 -0
  384. package/dist/orchestration/individual-member-sdk.d.ts +8 -0
  385. package/dist/orchestration/individual-member-sdk.js +13 -0
  386. package/dist/orchestration/organization-controller-sdk.d.ts +11 -0
  387. package/dist/orchestration/organization-controller-sdk.js +22 -0
  388. package/dist/orchestration/organization-employee-sdk.d.ts +8 -0
  389. package/dist/orchestration/organization-employee-sdk.js +13 -0
  390. package/dist/orchestration/personal-sdk.d.ts +13 -0
  391. package/dist/orchestration/personal-sdk.js +28 -0
  392. package/dist/orchestration/professional-sdk.d.ts +10 -0
  393. package/dist/orchestration/professional-sdk.js +19 -0
  394. package/dist/services.d.ts +58 -10
  395. package/dist/services.js +88 -5
  396. package/package.json +3 -3
@@ -0,0 +1,60 @@
1
+ import type { ActorKind } from '../models/actor-session';
2
+ import { DidDocument, DidResolutionResult, ResolvedServiceEndpoint } from '../models/did';
3
+ /**
4
+ * Service selection criteria used when resolving operational endpoints from a DID Document.
5
+ */
6
+ export type ServiceEndpointMatchInput = {
7
+ /** Exact service id, such as `#jwks` or `#identity-openid-smart-token`. */
8
+ id?: string;
9
+ /** Exact DID service type, such as `OpenIdProvider` or `JsonWebKeyService2020`. */
10
+ type?: string;
11
+ /** Logical capability inferred from service id/type, such as `smart-token`. */
12
+ capability?: string;
13
+ };
14
+ /**
15
+ * Normalizes every `service[]` entry in a DID Document into a capability-aware structure.
16
+ *
17
+ * This is the canonical starting point for SDK and GW code that needs to select
18
+ * operational endpoints without reconstructing URLs manually.
19
+ */
20
+ export declare function resolveDidDocumentServices(didDocument: DidDocument): ResolvedServiceEndpoint[];
21
+ /**
22
+ * Returns the first DID service entry matching the provided selector.
23
+ */
24
+ export declare function getDidDocumentService(didDocument: DidDocument, match: ServiceEndpointMatchInput): ResolvedServiceEndpoint | undefined;
25
+ /**
26
+ * Returns the invocable `serviceEndpoint` URL for the first matching DID service entry.
27
+ */
28
+ export declare function selectServiceEndpoint(didDocument: DidDocument, match: ServiceEndpointMatchInput): string | undefined;
29
+ /**
30
+ * Returns the public URL that serves the DID Document itself, when published in `service[]`.
31
+ */
32
+ export declare function getDidDocumentEndpoint(didDocument: DidDocument): string | undefined;
33
+ /**
34
+ * Returns the public JWKS endpoint advertised by the DID Document.
35
+ */
36
+ export declare function getJwksServiceEndpoint(didDocument: DidDocument): string | undefined;
37
+ /**
38
+ * Returns the SMART token endpoint advertised by the DID Document.
39
+ */
40
+ export declare function getSmartTokenEndpoint(didDocument: DidDocument): string | undefined;
41
+ /**
42
+ * Collapses an actor DID into the owning organization/provider DID when the actor
43
+ * uses the current data-space member suffix conventions.
44
+ */
45
+ export declare function getOrganizationDidFromIndividualDid(did: string): string;
46
+ /**
47
+ * Alias of `getOrganizationDidFromIndividualDid` kept for provider-centric callers.
48
+ */
49
+ export declare function getProviderDidFromSubjectDid(did: string): string;
50
+ /**
51
+ * Infers the current actor kind from a DID naming convention.
52
+ *
53
+ * This helper is intentionally heuristic and should be treated as a convenience
54
+ * layer over the currently published DID patterns, not as an authorization decision.
55
+ */
56
+ export declare function getActorKindFromDid(did: string): ActorKind | 'unknown';
57
+ /**
58
+ * Builds a reusable DID resolution result from a raw DID Document.
59
+ */
60
+ export declare function toDidResolutionResult(didDocument: DidDocument): DidResolutionResult;
@@ -0,0 +1,173 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { ActorKinds } from '../constants/actor-session';
3
+ import { DiscoveryCapabilities, DidServiceIds } from '../constants/did-services';
4
+ function normalizeServiceEndpoint(service) {
5
+ const capability = inferCapabilityFromServiceId(service.id)
6
+ || inferCapabilityFromServiceType(service.type);
7
+ return {
8
+ id: service.id,
9
+ type: service.type,
10
+ serviceEndpoint: service.serviceEndpoint,
11
+ capability,
12
+ raw: service,
13
+ };
14
+ }
15
+ function inferCapabilityFromServiceId(serviceId) {
16
+ const normalized = String(serviceId || '').trim().toLowerCase();
17
+ switch (normalized) {
18
+ case DidServiceIds.DidDocument:
19
+ return DiscoveryCapabilities.DidDocument;
20
+ case DidServiceIds.Jwks:
21
+ return DiscoveryCapabilities.Jwks;
22
+ case DidServiceIds.OpenIdConfiguration:
23
+ return DiscoveryCapabilities.OpenIdConfiguration;
24
+ case DidServiceIds.SmartConfiguration:
25
+ return DiscoveryCapabilities.SmartConfiguration;
26
+ case DidServiceIds.SmartToken:
27
+ return DiscoveryCapabilities.SmartToken;
28
+ case DidServiceIds.CredentialIssuer:
29
+ return DiscoveryCapabilities.CredentialIssuer;
30
+ case DidServiceIds.CapabilityStatement:
31
+ return DiscoveryCapabilities.CapabilityStatement;
32
+ case DidServiceIds.Catalog:
33
+ return DiscoveryCapabilities.Catalog;
34
+ default:
35
+ if (normalized.endsWith(':smart:token'))
36
+ return DiscoveryCapabilities.SmartToken;
37
+ return undefined;
38
+ }
39
+ }
40
+ function inferCapabilityFromServiceType(serviceType) {
41
+ const normalized = String(serviceType || '').trim().toLowerCase();
42
+ switch (normalized) {
43
+ case 'linkeddomains':
44
+ return DiscoveryCapabilities.DidDocument;
45
+ case 'jsonwebkeyservice2020':
46
+ return DiscoveryCapabilities.Jwks;
47
+ case 'openidprovider':
48
+ return DiscoveryCapabilities.OpenIdConfiguration;
49
+ case 'smartonfhirconfiguration':
50
+ return DiscoveryCapabilities.SmartConfiguration;
51
+ case 'openidcredentialissuer':
52
+ return DiscoveryCapabilities.CredentialIssuer;
53
+ case 'capabilitystatement':
54
+ return DiscoveryCapabilities.CapabilityStatement;
55
+ case 'catalogservice':
56
+ return DiscoveryCapabilities.Catalog;
57
+ case 'apiservice':
58
+ return undefined;
59
+ default:
60
+ return undefined;
61
+ }
62
+ }
63
+ /**
64
+ * Normalizes every `service[]` entry in a DID Document into a capability-aware structure.
65
+ *
66
+ * This is the canonical starting point for SDK and GW code that needs to select
67
+ * operational endpoints without reconstructing URLs manually.
68
+ */
69
+ export function resolveDidDocumentServices(didDocument) {
70
+ return (didDocument.service || []).map(normalizeServiceEndpoint);
71
+ }
72
+ /**
73
+ * Returns the first DID service entry matching the provided selector.
74
+ */
75
+ export function getDidDocumentService(didDocument, match) {
76
+ return resolveDidDocumentServices(didDocument).find((service) => {
77
+ if (match.id && service.id !== match.id)
78
+ return false;
79
+ if (match.type && service.type !== match.type)
80
+ return false;
81
+ if (match.capability && service.capability !== match.capability)
82
+ return false;
83
+ return true;
84
+ });
85
+ }
86
+ /**
87
+ * Returns the invocable `serviceEndpoint` URL for the first matching DID service entry.
88
+ */
89
+ export function selectServiceEndpoint(didDocument, match) {
90
+ return getDidDocumentService(didDocument, match)?.serviceEndpoint;
91
+ }
92
+ /**
93
+ * Returns the public URL that serves the DID Document itself, when published in `service[]`.
94
+ */
95
+ export function getDidDocumentEndpoint(didDocument) {
96
+ return selectServiceEndpoint(didDocument, {
97
+ id: DidServiceIds.DidDocument,
98
+ capability: DiscoveryCapabilities.DidDocument,
99
+ });
100
+ }
101
+ /**
102
+ * Returns the public JWKS endpoint advertised by the DID Document.
103
+ */
104
+ export function getJwksServiceEndpoint(didDocument) {
105
+ return selectServiceEndpoint(didDocument, {
106
+ id: DidServiceIds.Jwks,
107
+ capability: DiscoveryCapabilities.Jwks,
108
+ });
109
+ }
110
+ /**
111
+ * Returns the SMART token endpoint advertised by the DID Document.
112
+ */
113
+ export function getSmartTokenEndpoint(didDocument) {
114
+ return selectServiceEndpoint(didDocument, {
115
+ id: DidServiceIds.SmartToken,
116
+ capability: DiscoveryCapabilities.SmartToken,
117
+ });
118
+ }
119
+ /**
120
+ * Collapses an actor DID into the owning organization/provider DID when the actor
121
+ * uses the current data-space member suffix conventions.
122
+ */
123
+ export function getOrganizationDidFromIndividualDid(did) {
124
+ const markers = [':family:', ':employee:', ':member:'];
125
+ for (const marker of markers) {
126
+ const index = did.indexOf(marker);
127
+ if (index > -1) {
128
+ return did.slice(0, index);
129
+ }
130
+ }
131
+ return did;
132
+ }
133
+ /**
134
+ * Alias of `getOrganizationDidFromIndividualDid` kept for provider-centric callers.
135
+ */
136
+ export function getProviderDidFromSubjectDid(did) {
137
+ return getOrganizationDidFromIndividualDid(did);
138
+ }
139
+ /**
140
+ * Infers the current actor kind from a DID naming convention.
141
+ *
142
+ * This helper is intentionally heuristic and should be treated as a convenience
143
+ * layer over the currently published DID patterns, not as an authorization decision.
144
+ */
145
+ export function getActorKindFromDid(did) {
146
+ const normalized = String(did || '').trim().toLowerCase();
147
+ if (!normalized)
148
+ return 'unknown';
149
+ if (normalized.includes(':employee:')) {
150
+ return normalized.includes('resprsn') || normalized.includes('controller')
151
+ ? ActorKinds.OrganizationController
152
+ : ActorKinds.Professional;
153
+ }
154
+ if (normalized.includes(':family:') || normalized.includes(':member:')) {
155
+ return normalized.includes('oneself') || normalized.includes('controller')
156
+ ? ActorKinds.IndividualController
157
+ : ActorKinds.IndividualMember;
158
+ }
159
+ if (normalized.includes('host'))
160
+ return ActorKinds.HostOnboarding;
161
+ return 'unknown';
162
+ }
163
+ /**
164
+ * Builds a reusable DID resolution result from a raw DID Document.
165
+ */
166
+ export function toDidResolutionResult(didDocument) {
167
+ return {
168
+ did: didDocument.id,
169
+ didDocument,
170
+ serviceEndpoints: resolveDidDocumentServices(didDocument),
171
+ jwksUri: getJwksServiceEndpoint(didDocument),
172
+ };
173
+ }
@@ -0,0 +1,124 @@
1
+ import { ServiceEndpointSelector } from "../models/did";
2
+ /**
3
+ * Generates a DID Service ID fragment from a selector object.
4
+ * The format is always `#<section>:<format>:<resourceType>:<action>`.
5
+ *
6
+ * This utility's only job is to correctly assemble the string. It contains no
7
+ * conditional logic about DID types, as that is handled by the data layer.
8
+ *
9
+ * @param selector The structured object containing the endpoint parts.
10
+ * @returns The formatted service ID fragment string.
11
+ */
12
+ export declare function generateServiceId(selector: ServiceEndpointSelector): string;
13
+ /**
14
+ * Normalizes a did:web string to a canonical format to prevent resolution errors
15
+ * due to case sensitivity in the path component of the underlying URL.
16
+ *
17
+ * The rule is:
18
+ * - All segments are lowercased, EXCEPT the final segment.
19
+ * - If the final segment represents a `system|code` pair (e.g., for a role),
20
+ * the `system` part is lowercased, but the `code` is preserved as-is.
21
+ * - If the final segment is a unique identifier (like a Tax ID), it is preserved as-is.
22
+ *
23
+ * @param did The did:web string to normalize.
24
+ * @returns The canonicalized did:web string.
25
+ */
26
+ export declare function normalizeDidWeb(did: string): string;
27
+ /**
28
+ * Creates the deterministic "hosted" did:web for a tenant (Organization).
29
+ *
30
+ * @param hostDidWeb The DID of the host (e.g., 'did:web:host.example.com').
31
+ * @param tenantId Canonical tenant identifier (for example a tax-ID based tenant id).
32
+ * @param context An object containing jurisdiction, version, and sector.
33
+ * @returns The tenant's full, correctly formatted hosted did:web.
34
+ * Example: 'did:web:host.example.com:acme:cds-es:v1:health-care'
35
+ */
36
+ export declare function createHostedDidWeb(hostDidWeb: string, tenantId: string, context: {
37
+ jurisdiction: string;
38
+ version: string;
39
+ sector: string;
40
+ }): string;
41
+ /**
42
+ * Builds the canonical details (URL and did:web URN) for a hosted DID.
43
+ * This is the single source of truth for constructing hosted identifiers in the app.
44
+ *
45
+ * @param options An object with the components of the DID.
46
+ * @param options.host The provider's domain (e.g., 'provider.com').
47
+ * @param options.tenantId The canonical tenant identifier.
48
+ * @param options.alternateName Deprecated legacy alias kept only for backward compatibility.
49
+ * @param options.jurisdiction The legal jurisdiction (defaults to 'ES').
50
+ * @param options.sector The business sector (defaults to 'health-care').
51
+ * @returns An object with the full URL (with trailing /) and the canonical did:web.
52
+ */
53
+ export declare function buildHostedDidDetails({ host, tenantId, alternateName, jurisdiction, sector, }: {
54
+ host: string;
55
+ tenantId?: string;
56
+ alternateName: string;
57
+ jurisdiction?: string;
58
+ sector?: string;
59
+ }): {
60
+ did: string;
61
+ url: string;
62
+ };
63
+ /**
64
+ * Converts a did:web identifier into a full HTTPS or HTTP base URL with a trailing slash.
65
+ * It correctly decodes percent-encoded ports for local development.
66
+ * @param did The did:web string (e.g., 'did:web:example.com' or 'did:web:localhost%3A3000:acme:cds-es:v1:health-care').
67
+ * @returns The full base URL (e.g., 'https://example.com/acme/cds-es/v1/health-care/').
68
+ */
69
+ export declare function getBaseUrlFromDidWeb(did: string): string;
70
+ /**
71
+ * Builds the canonical hosted organization/tenant DID in the data space.
72
+ *
73
+ * This is a semantic alias over `createHostedDidWeb(...)` for callers that want
74
+ * the API name to reflect the organization role more explicitly.
75
+ *
76
+ * @param input.hostDidWeb Host/provider DID root such as `did:web:api.example.org`.
77
+ * @param input.tenantId Canonical tenant identifier used in the data space. In
78
+ * new integrations this should be the real tenant ID, typically tax-ID based.
79
+ * @param input.tenantAlternateName Deprecated legacy alias kept only for backward compatibility.
80
+ * @param input.jurisdiction Jurisdiction segment used in the hosted DID path.
81
+ * @param input.version API/version segment. Defaults to `v1`.
82
+ * @param input.sector Functional data-space sector such as `health-care`.
83
+ */
84
+ export declare function buildOrganizationDidWeb(input: {
85
+ hostDidWeb: string;
86
+ tenantId?: string;
87
+ tenantAlternateName?: string;
88
+ jurisdiction: string;
89
+ version?: string;
90
+ sector: string;
91
+ }): string;
92
+ /**
93
+ * Builds a professional/member DID under a hosted organization DID.
94
+ *
95
+ * The stable actor identifier is derived from the email using multibase(base58btc(multihash(sha384))).
96
+ *
97
+ * @param input.organizationDidWeb Canonical hosted organization DID.
98
+ * @param input.email Professional email used to derive a stable member identifier.
99
+ * @param input.role Canonical role code such as `ISCO-08|2211`.
100
+ * @param input.deviceId Optional per-device suffix for device-bound identities.
101
+ */
102
+ export declare function buildProfessionalDidWeb(input: {
103
+ organizationDidWeb: string;
104
+ email: string;
105
+ role: string;
106
+ deviceId?: string;
107
+ }): string;
108
+ /**
109
+ * Builds an individual/family DID under a hosted organization DID.
110
+ *
111
+ * `subjectId` should already be a stable logical subject identifier. If no
112
+ * relationship role is provided, the health-sector default (`ONESELF`) is used.
113
+ *
114
+ * @param input.organizationDidWeb Canonical hosted organization DID.
115
+ * @param input.subjectId Stable logical subject identifier.
116
+ * @param input.relationshipRole Optional HL7 relationship role claim.
117
+ * @param input.deviceId Optional per-device suffix for device-bound identities.
118
+ */
119
+ export declare function buildIndividualDidWeb(input: {
120
+ organizationDidWeb: string;
121
+ subjectId: string;
122
+ relationshipRole?: string;
123
+ deviceId?: string;
124
+ }): string;
@@ -0,0 +1,204 @@
1
+ // crypto-ts/utils/did.ts
2
+ // Copyright 2025 Antifraud Services Inc. under the Apache License, Version 2.0.
3
+ import { encodeMultibaseSha384 } from './multibasehash';
4
+ import { HL7_CLAIMS_CODING_SYSTEM, HL7_DEFAULT_ROLE_HEALTH } from '../constants/hl7-roles';
5
+ /**
6
+ * Generates a DID Service ID fragment from a selector object.
7
+ * The format is always `#<section>:<format>:<resourceType>:<action>`.
8
+ *
9
+ * This utility's only job is to correctly assemble the string. It contains no
10
+ * conditional logic about DID types, as that is handled by the data layer.
11
+ *
12
+ * @param selector The structured object containing the endpoint parts.
13
+ * @returns The formatted service ID fragment string.
14
+ */
15
+ export function generateServiceId(selector) {
16
+ // Canonical casing:
17
+ // - `section`, `format`, `resourceType` are matched case-insensitively by the backend router,
18
+ // and lowercasing them makes DID Document lookup deterministic across SDKs.
19
+ // - `action` is kept as-is (future actions may be case-sensitive identifiers).
20
+ const parts = [
21
+ selector.section?.toLowerCase(),
22
+ selector.format?.toLowerCase(),
23
+ selector.resourceType?.toLowerCase(),
24
+ selector.action,
25
+ ];
26
+ return `#${parts.filter(p => p).join(':')}`;
27
+ }
28
+ /**
29
+ * Normalizes a did:web string to a canonical format to prevent resolution errors
30
+ * due to case sensitivity in the path component of the underlying URL.
31
+ *
32
+ * The rule is:
33
+ * - All segments are lowercased, EXCEPT the final segment.
34
+ * - If the final segment represents a `system|code` pair (e.g., for a role),
35
+ * the `system` part is lowercased, but the `code` is preserved as-is.
36
+ * - If the final segment is a unique identifier (like a Tax ID), it is preserved as-is.
37
+ *
38
+ * @param did The did:web string to normalize.
39
+ * @returns The canonicalized did:web string.
40
+ */
41
+ export function normalizeDidWeb(did) {
42
+ const parts = did.split(':');
43
+ if (parts[0] !== 'did' || parts[1] !== 'web' || parts.length < 3) {
44
+ // Not a valid did:web, return as is.
45
+ return did;
46
+ }
47
+ // Lowercase all parts except the very last one.
48
+ const lowercasedParts = parts.slice(0, -1).map(part => part.toLowerCase());
49
+ let lastPart = parts[parts.length - 1];
50
+ // Special handling for the last part if it contains a role descriptor.
51
+ if (lastPart.includes('|')) {
52
+ const [system, ...codeParts] = lastPart.split('|');
53
+ const code = codeParts.join('|'); // Re-join in case the code itself has a pipe.
54
+ lastPart = `${system.toLowerCase()}|${code}`;
55
+ }
56
+ return [...lowercasedParts, lastPart].join(':');
57
+ }
58
+ /**
59
+ * Encodes a hostname according to did:web spec (percent-encodes port colons).
60
+ * @param apiUrl The full base URL of the API.
61
+ * @returns The percent-encoded hostname.
62
+ */
63
+ function getEncodedHost(apiUrl) {
64
+ try {
65
+ const parsedUrl = new URL(apiUrl);
66
+ return parsedUrl.host.replace(':', '%3A');
67
+ }
68
+ catch (e) {
69
+ console.error(`[getEncodedHost] Invalid apiUrl provided: ${apiUrl}`);
70
+ return 'localhost'; // Fallback
71
+ }
72
+ }
73
+ /**
74
+ * Creates the deterministic "hosted" did:web for a tenant (Organization).
75
+ *
76
+ * @param hostDidWeb The DID of the host (e.g., 'did:web:host.example.com').
77
+ * @param tenantId Canonical tenant identifier (for example a tax-ID based tenant id).
78
+ * @param context An object containing jurisdiction, version, and sector.
79
+ * @returns The tenant's full, correctly formatted hosted did:web.
80
+ * Example: 'did:web:host.example.com:acme:cds-es:v1:health-care'
81
+ */
82
+ export function createHostedDidWeb(hostDidWeb, tenantId, context) {
83
+ const hostPart = hostDidWeb.replace(/^did:web:/, '');
84
+ // The path in a did:web uses colons as separators.
85
+ const didPath = `cds-${context.jurisdiction}:${context.version}:${context.sector}`;
86
+ return `did:web:${hostPart}:${tenantId}:${didPath}`;
87
+ }
88
+ /**
89
+ * Builds the canonical details (URL and did:web URN) for a hosted DID.
90
+ * This is the single source of truth for constructing hosted identifiers in the app.
91
+ *
92
+ * @param options An object with the components of the DID.
93
+ * @param options.host The provider's domain (e.g., 'provider.com').
94
+ * @param options.tenantId The canonical tenant identifier.
95
+ * @param options.alternateName Deprecated legacy alias kept only for backward compatibility.
96
+ * @param options.jurisdiction The legal jurisdiction (defaults to 'ES').
97
+ * @param options.sector The business sector (defaults to 'health-care').
98
+ * @returns An object with the full URL (with trailing /) and the canonical did:web.
99
+ */
100
+ export function buildHostedDidDetails({ host, tenantId, alternateName, jurisdiction = 'ES', sector = 'health-care', }) {
101
+ const resolvedTenantId = String(tenantId || alternateName || '').trim();
102
+ if (!resolvedTenantId) {
103
+ throw new Error('buildHostedDidDetails requires tenantId.');
104
+ }
105
+ // 1. Build the path part of the DID/URL.
106
+ const pathPart = `${resolvedTenantId}/cds-${jurisdiction}/v1/${sector}`;
107
+ // 2. Build the full URL, ensuring a trailing slash.
108
+ const url = `https://${host}/${pathPart}/`;
109
+ // 3. Build the canonical did:web, replacing / with :.
110
+ const hostAndPath = `${host}/${pathPart}`;
111
+ const did = `did:web:${hostAndPath.replace(/\//g, ':')}`;
112
+ return { did, url };
113
+ }
114
+ /**
115
+ * Converts a did:web identifier into a full HTTPS or HTTP base URL with a trailing slash.
116
+ * It correctly decodes percent-encoded ports for local development.
117
+ * @param did The did:web string (e.g., 'did:web:example.com' or 'did:web:localhost%3A3000:acme:cds-es:v1:health-care').
118
+ * @returns The full base URL (e.g., 'https://example.com/acme/cds-es/v1/health-care/').
119
+ */
120
+ export function getBaseUrlFromDidWeb(did) {
121
+ const didParts = did.replace(/^did:web:/, '').split(':');
122
+ const domainPart = didParts[0];
123
+ const pathParts = didParts.slice(1);
124
+ const decodedDomain = decodeURIComponent(domainPart);
125
+ const protocol = decodedDomain.startsWith('localhost') ? 'http' : 'https';
126
+ const path = pathParts.join('/').replace(/cds-(es|us|gb)/, (match, p1) => `cds-${p1.toUpperCase()}`);
127
+ // Ensure a trailing slash for the base URL, without double slashes when no path is present.
128
+ const normalizedPath = path ? `${path}/` : '';
129
+ return `${protocol}://${decodedDomain}/${normalizedPath}`;
130
+ }
131
+ /**
132
+ * Builds the canonical hosted organization/tenant DID in the data space.
133
+ *
134
+ * This is a semantic alias over `createHostedDidWeb(...)` for callers that want
135
+ * the API name to reflect the organization role more explicitly.
136
+ *
137
+ * @param input.hostDidWeb Host/provider DID root such as `did:web:api.example.org`.
138
+ * @param input.tenantId Canonical tenant identifier used in the data space. In
139
+ * new integrations this should be the real tenant ID, typically tax-ID based.
140
+ * @param input.tenantAlternateName Deprecated legacy alias kept only for backward compatibility.
141
+ * @param input.jurisdiction Jurisdiction segment used in the hosted DID path.
142
+ * @param input.version API/version segment. Defaults to `v1`.
143
+ * @param input.sector Functional data-space sector such as `health-care`.
144
+ */
145
+ export function buildOrganizationDidWeb(input) {
146
+ const tenantId = String(input.tenantId || input.tenantAlternateName || '').trim();
147
+ if (!tenantId)
148
+ throw new Error('buildOrganizationDidWeb requires tenantId.');
149
+ return createHostedDidWeb(input.hostDidWeb, tenantId, {
150
+ jurisdiction: input.jurisdiction,
151
+ version: input.version || 'v1',
152
+ sector: input.sector,
153
+ });
154
+ }
155
+ /**
156
+ * Builds a professional/member DID under a hosted organization DID.
157
+ *
158
+ * The stable actor identifier is derived from the email using multibase(base58btc(multihash(sha384))).
159
+ *
160
+ * @param input.organizationDidWeb Canonical hosted organization DID.
161
+ * @param input.email Professional email used to derive a stable member identifier.
162
+ * @param input.role Canonical role code such as `ISCO-08|2211`.
163
+ * @param input.deviceId Optional per-device suffix for device-bound identities.
164
+ */
165
+ export function buildProfessionalDidWeb(input) {
166
+ const normalizedEmail = String(input.email || '').trim().toLowerCase();
167
+ const role = String(input.role || '').trim();
168
+ if (!normalizedEmail)
169
+ throw new Error('buildProfessionalDidWeb requires email.');
170
+ if (!role)
171
+ throw new Error('buildProfessionalDidWeb requires role.');
172
+ const memberId = encodeMultibaseSha384(normalizedEmail);
173
+ return [
174
+ String(input.organizationDidWeb).trim(),
175
+ 'employee',
176
+ memberId,
177
+ role,
178
+ input.deviceId ? String(input.deviceId).trim() : undefined,
179
+ ].filter(Boolean).join(':');
180
+ }
181
+ /**
182
+ * Builds an individual/family DID under a hosted organization DID.
183
+ *
184
+ * `subjectId` should already be a stable logical subject identifier. If no
185
+ * relationship role is provided, the health-sector default (`ONESELF`) is used.
186
+ *
187
+ * @param input.organizationDidWeb Canonical hosted organization DID.
188
+ * @param input.subjectId Stable logical subject identifier.
189
+ * @param input.relationshipRole Optional HL7 relationship role claim.
190
+ * @param input.deviceId Optional per-device suffix for device-bound identities.
191
+ */
192
+ export function buildIndividualDidWeb(input) {
193
+ const subjectId = String(input.subjectId || '').trim();
194
+ if (!subjectId)
195
+ throw new Error('buildIndividualDidWeb requires subjectId.');
196
+ const role = String(input.relationshipRole || `${HL7_CLAIMS_CODING_SYSTEM}|${HL7_DEFAULT_ROLE_HEALTH}`).trim();
197
+ return [
198
+ String(input.organizationDidWeb).trim(),
199
+ 'family',
200
+ subjectId,
201
+ role,
202
+ input.deviceId ? String(input.deviceId).trim() : undefined,
203
+ ].filter(Boolean).join(':');
204
+ }
@@ -0,0 +1,10 @@
1
+ export type CommunicationMode = 'plain' | 'strict' | 'auto-detect';
2
+ export type DidcommSubmissionCapabilities = {
3
+ hasRecipientEncryptionJwk: boolean;
4
+ };
5
+ export type DidcommSubmissionPlan = {
6
+ mode: CommunicationMode;
7
+ submitKind: 'plain' | 'encrypted';
8
+ reason: 'plain-mode' | 'strict-mode' | 'auto-detect-encrypted' | 'auto-detect-plain';
9
+ };
10
+ export declare function resolveDidcommSubmissionPlan(mode: CommunicationMode, capabilities: DidcommSubmissionCapabilities): DidcommSubmissionPlan;
@@ -0,0 +1,15 @@
1
+ export function resolveDidcommSubmissionPlan(mode, capabilities) {
2
+ if (mode === 'plain') {
3
+ return { mode, submitKind: 'plain', reason: 'plain-mode' };
4
+ }
5
+ if (mode === 'strict') {
6
+ if (!capabilities.hasRecipientEncryptionJwk) {
7
+ throw new Error('strict mode requires recipient encryption JWK.');
8
+ }
9
+ return { mode, submitKind: 'encrypted', reason: 'strict-mode' };
10
+ }
11
+ if (capabilities.hasRecipientEncryptionJwk) {
12
+ return { mode, submitKind: 'encrypted', reason: 'auto-detect-encrypted' };
13
+ }
14
+ return { mode, submitKind: 'plain', reason: 'auto-detect-plain' };
15
+ }
@@ -0,0 +1,48 @@
1
+ import { CommunicationMode } from './didcomm-submit-policy';
2
+ export type DidcommFetchInit = {
3
+ method: 'POST';
4
+ headers: Record<string, string>;
5
+ body: string;
6
+ };
7
+ export type DidcommFetchResponse = {
8
+ status: number;
9
+ headers?: {
10
+ get(name: string): string | null;
11
+ };
12
+ json?: () => Promise<unknown>;
13
+ text?: () => Promise<string>;
14
+ };
15
+ export type DidcommFetchLike = (url: string, init: DidcommFetchInit) => Promise<DidcommFetchResponse>;
16
+ export type DidcommSubmitInput = {
17
+ mode: CommunicationMode;
18
+ url: string;
19
+ payload: Record<string, unknown>;
20
+ defaultHeaders?: Record<string, string>;
21
+ bearerToken?: string;
22
+ recipientEncryptionJwk?: unknown;
23
+ fetcher: DidcommFetchLike;
24
+ signCompactJws?: (claims: Record<string, unknown>) => Promise<string>;
25
+ encryptCompactJwe?: (compactJws: string, recipientEncryptionJwk: unknown) => Promise<string>;
26
+ };
27
+ export type DidcommSubmitResult = {
28
+ status: number;
29
+ location?: string;
30
+ body: unknown;
31
+ submitKind: 'plain' | 'encrypted';
32
+ contentType: 'application/didcomm-plaintext+json' | 'application/didcomm-encrypted+json';
33
+ };
34
+ /**
35
+ * Submits a DIDComm payload using either plaintext or encrypted transport,
36
+ * depending on the resolved submission policy.
37
+ *
38
+ * @param input.mode Communication mode that drives plain vs encrypted submission.
39
+ * @param input.url Target endpoint URL.
40
+ * @param input.payload DIDComm payload body to submit.
41
+ * @param input.defaultHeaders Optional extra request headers.
42
+ * @param input.bearerToken Optional bearer token.
43
+ * @param input.recipientEncryptionJwk Recipient public key for encrypted mode.
44
+ * @param input.fetcher Runtime fetch-like implementation.
45
+ * @param input.signCompactJws Callback used to sign plaintext claims before encryption.
46
+ * @param input.encryptCompactJwe Callback used to encrypt the signed JWS.
47
+ */
48
+ export declare function submitDidcomm(input: DidcommSubmitInput): Promise<DidcommSubmitResult>;