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,190 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { ResourceTypesFhirR4 } from 'gdc-common-utils-ts/constants/fhir-resource-types';
3
+ import { addResources, getResources, removeResources, setResources, } from './communication-bundle-resources.js';
4
+ import { ConsentCommunicationOperationKinds, assertConsentCommunicationOperationInput, } from './consent-communication-operations.js';
5
+ export const CommunicationResourceLifecycleTagSystem = 'org.gdc.resource.lifecycle';
6
+ export const CommunicationResourceLifecycleTagCode = Object.freeze({
7
+ Enabled: 'enabled',
8
+ Disabled: 'disabled',
9
+ });
10
+ function toArray(value) {
11
+ if (!value)
12
+ return [];
13
+ return (Array.isArray(value) ? value : [value])
14
+ .map((item) => String(item || '').trim())
15
+ .filter(Boolean);
16
+ }
17
+ function toKindArray(value) {
18
+ if (!value)
19
+ return [];
20
+ return (Array.isArray(value) ? value : [value])
21
+ .map((item) => String(item || '').trim())
22
+ .filter(Boolean);
23
+ }
24
+ function clone(value) {
25
+ return JSON.parse(JSON.stringify(value));
26
+ }
27
+ function normalizeSectionToken(value) {
28
+ const token = String(value || '').trim();
29
+ if (!token)
30
+ return '';
31
+ if (token.includes('|')) {
32
+ const parts = token.split('|');
33
+ return String(parts[parts.length - 1] || '').trim().toLowerCase();
34
+ }
35
+ return token.toLowerCase();
36
+ }
37
+ function getOperationDate(operation) {
38
+ const date = String(operation.consentDate || operation.periodStart || '').trim();
39
+ return date || undefined;
40
+ }
41
+ function matchesDate(operation, date) {
42
+ if (!date?.start && !date?.end)
43
+ return true;
44
+ const value = getOperationDate(operation);
45
+ if (!value)
46
+ return false;
47
+ if (date.start && value < date.start)
48
+ return false;
49
+ if (date.end && value > date.end)
50
+ return false;
51
+ return true;
52
+ }
53
+ function getOperationList(input) {
54
+ const payload = input.payload;
55
+ const operations = payload?.operations;
56
+ if (!Array.isArray(operations))
57
+ return [];
58
+ return operations.map((item) => assertConsentCommunicationOperationInput(item));
59
+ }
60
+ function setOperationList(input, operations) {
61
+ const next = clone(input);
62
+ const payload = (next.payload && typeof next.payload === 'object' && !Array.isArray(next.payload))
63
+ ? { ...next.payload }
64
+ : {};
65
+ payload.operations = operations;
66
+ next.payload = payload;
67
+ return next;
68
+ }
69
+ function matchesOperation(operation, filter) {
70
+ const operationIds = toArray(filter.operationIds);
71
+ if (operationIds.length && !operationIds.includes(operation.operationId))
72
+ return false;
73
+ const operationKinds = toKindArray(filter.operationKinds);
74
+ if (operationKinds.length && !operationKinds.includes(operation.operationKind))
75
+ return false;
76
+ const targetKinds = toKindArray(filter.targetKinds);
77
+ if (targetKinds.length && !targetKinds.includes(operation.target.kind))
78
+ return false;
79
+ const purposes = toArray(filter.purposes);
80
+ if (purposes.length && !purposes.includes(operation.purpose))
81
+ return false;
82
+ const sections = toArray(filter.sections).map(normalizeSectionToken);
83
+ if (sections.length) {
84
+ const operationSections = [
85
+ ...operation.sections.core,
86
+ ...(operation.sections.extended || []),
87
+ ].map(normalizeSectionToken);
88
+ if (!sections.some((section) => operationSections.includes(section)))
89
+ return false;
90
+ }
91
+ const types = toArray(filter.types);
92
+ if (types.length && !types.includes(ResourceTypesFhirR4.Consent))
93
+ return false;
94
+ return matchesDate(operation, filter.date);
95
+ }
96
+ export function getConsentOperations(input, filter = {}) {
97
+ return getOperationList(input).filter((operation) => matchesOperation(operation, filter));
98
+ }
99
+ export function addConsentOperations(input, operations) {
100
+ const current = getOperationList(input);
101
+ const additions = operations.map(assertConsentCommunicationOperationInput);
102
+ return setOperationList(input, [...current, ...additions]);
103
+ }
104
+ export function setConsentOperations(input, filter, operations) {
105
+ const current = getOperationList(input);
106
+ const keep = current.filter((operation) => !matchesOperation(operation, filter));
107
+ const replacements = operations.map(assertConsentCommunicationOperationInput);
108
+ return setOperationList(input, [...keep, ...replacements]);
109
+ }
110
+ function setConsentOperationKindByFilter(input, filter, operationKind) {
111
+ const current = getOperationList(input);
112
+ const next = current.map((operation) => {
113
+ if (!matchesOperation(operation, filter))
114
+ return operation;
115
+ return {
116
+ ...operation,
117
+ operationKind,
118
+ };
119
+ });
120
+ return setOperationList(input, next);
121
+ }
122
+ export function enableConsentOperations(input, filter) {
123
+ return setConsentOperationKindByFilter(input, filter, ConsentCommunicationOperationKinds.Enable);
124
+ }
125
+ export function disableConsentOperations(input, filter) {
126
+ return setConsentOperationKindByFilter(input, filter, ConsentCommunicationOperationKinds.Disable);
127
+ }
128
+ export function removeConsentOperations(input, filter) {
129
+ const current = getOperationList(input);
130
+ return setOperationList(input, current.filter((operation) => !matchesOperation(operation, filter)));
131
+ }
132
+ function setResourceLifecycleState(resources, enabled) {
133
+ return resources.map((resource) => {
134
+ const next = clone(resource);
135
+ const meta = (next.meta && typeof next.meta === 'object' && !Array.isArray(next.meta))
136
+ ? { ...next.meta }
137
+ : {};
138
+ const tags = Array.isArray(meta.tag) ? [...meta.tag] : [];
139
+ const retained = tags.filter((tag) => String(tag.system || '').trim() !== CommunicationResourceLifecycleTagSystem);
140
+ retained.push({
141
+ system: CommunicationResourceLifecycleTagSystem,
142
+ code: enabled
143
+ ? CommunicationResourceLifecycleTagCode.Enabled
144
+ : CommunicationResourceLifecycleTagCode.Disabled,
145
+ });
146
+ meta.tag = retained;
147
+ next.meta = meta;
148
+ return next;
149
+ });
150
+ }
151
+ export function enableCommunicationResources(communicationOrBundle, filter) {
152
+ const matched = getResources(communicationOrBundle, filter);
153
+ const enabled = setResourceLifecycleState(matched, true);
154
+ return setResources(communicationOrBundle, filter, enabled);
155
+ }
156
+ export function disableCommunicationResources(communicationOrBundle, filter) {
157
+ const matched = getResources(communicationOrBundle, filter);
158
+ const disabled = setResourceLifecycleState(matched, false);
159
+ return setResources(communicationOrBundle, filter, disabled);
160
+ }
161
+ export const ConsentOperationMutationContract = Object.freeze({
162
+ getConsentOperations,
163
+ setConsentOperations,
164
+ addConsentOperations,
165
+ enableConsentOperations,
166
+ disableConsentOperations,
167
+ removeConsentOperations,
168
+ // Backward-compatible aliases.
169
+ getX: getConsentOperations,
170
+ setX: setConsentOperations,
171
+ addX: addConsentOperations,
172
+ enableX: enableConsentOperations,
173
+ disableX: disableConsentOperations,
174
+ removeX: removeConsentOperations,
175
+ });
176
+ export const CommunicationResourceMutationContract = Object.freeze({
177
+ getCommunicationResources: getResources,
178
+ setCommunicationResources: setResources,
179
+ addCommunicationResources: addResources,
180
+ enableCommunicationResources,
181
+ disableCommunicationResources,
182
+ removeCommunicationResources: removeResources,
183
+ // Backward-compatible aliases.
184
+ getX: getResources,
185
+ setX: setResources,
186
+ addX: addResources,
187
+ enableX: enableCommunicationResources,
188
+ disableX: disableCommunicationResources,
189
+ removeX: removeResources,
190
+ });
@@ -0,0 +1,55 @@
1
+ import type { FhirResourceLike } from './communication-resource-helpers.js';
2
+ export type ResolvedCommunicationDocument = Readonly<{
3
+ kind: 'fhir' | 'binary' | 'unknown';
4
+ contentType?: string;
5
+ title?: string;
6
+ base64Data?: string;
7
+ documentReference?: FhirResourceLike;
8
+ bundle?: FhirResourceLike;
9
+ source: 'attachment' | 'documentReference' | 'reference' | 'unknown';
10
+ }>;
11
+ export type FhirDocumentSection = Readonly<{
12
+ title?: string;
13
+ code?: string;
14
+ entries: string[];
15
+ }>;
16
+ export type FhirDocumentFacade = Readonly<{
17
+ getBundle: () => FhirResourceLike | undefined;
18
+ getSections: () => FhirDocumentSection[];
19
+ getResources: (resourceType?: string) => FhirResourceLike[];
20
+ getByDates: (resourceType: string, start?: string, end?: string) => FhirResourceLike[];
21
+ getContainingTextOrDisplay: (resourceType: string, searchText: string) => FhirResourceLike[];
22
+ vitalSigns: Readonly<{
23
+ getAll: () => FhirResourceLike[];
24
+ getHeartRate: () => FhirResourceLike[];
25
+ getBloodPressure: () => FhirResourceLike[];
26
+ getBodyTemperature: () => FhirResourceLike[];
27
+ }>;
28
+ }>;
29
+ /**
30
+ * Resolves the first document reachable from a FHIR `Communication`.
31
+ *
32
+ * The returned descriptor hides whether the document was attached directly
33
+ * or wrapped in a `DocumentReference`.
34
+ *
35
+ * @param communication FHIR `Communication` resource to inspect.
36
+ */
37
+ export declare function getDocumentFromCommunication(communication: FhirResourceLike): ResolvedCommunicationDocument | undefined;
38
+ /**
39
+ * Creates a read-only document facade over a FHIR `Bundle document`
40
+ * or over a FHIR `Communication` that contains one.
41
+ *
42
+ * @param communicationOrBundle Either a FHIR `Bundle document` or a FHIR `Communication`.
43
+ */
44
+ export declare function createFhirDocumentFacade(communicationOrBundle: FhirResourceLike): FhirDocumentFacade;
45
+ /**
46
+ * Creates the high-level communication facade used by SDK consumers.
47
+ *
48
+ * Current methods:
49
+ * - `getDocument(...)`
50
+ * - `getFhirDocument(...)`
51
+ */
52
+ export declare function createCommunicationFacade(): Readonly<{
53
+ getDocument: typeof getDocumentFromCommunication;
54
+ getFhirDocument: typeof createFhirDocumentFacade;
55
+ }>;
@@ -0,0 +1,194 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { ResourceTypesFhirR4 } from 'gdc-common-utils-ts/constants/fhir-resource-types';
3
+ import { createVitalSignsFacade } from './vital-signs.js';
4
+ import { getBundleDocumentEntries, getBundleDocumentResourcesByType, getFirstBundleDocumentFromCommunication, resolveCommunicationPayloads, sortFhirResourcesByDateDescending, } from './communication-resource-helpers.js';
5
+ function isPlainObject(value) {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ }
8
+ function getCanonicalDate(resource) {
9
+ const candidates = [
10
+ resource.effectiveDateTime,
11
+ resource.issued,
12
+ resource.authoredOn,
13
+ resource.performedDateTime,
14
+ resource.recordedDate,
15
+ resource.date,
16
+ resource.sent,
17
+ ];
18
+ for (const candidate of candidates) {
19
+ if (typeof candidate === 'string' && candidate.trim())
20
+ return candidate.trim();
21
+ }
22
+ return undefined;
23
+ }
24
+ function getAttachmentMetadata(payload) {
25
+ const attachment = isPlainObject(payload.contentAttachment) ? payload.contentAttachment : undefined;
26
+ if (attachment) {
27
+ return {
28
+ contentType: typeof attachment.contentType === 'string' ? attachment.contentType : undefined,
29
+ title: typeof attachment.title === 'string' ? attachment.title : undefined,
30
+ data: typeof attachment.data === 'string' ? attachment.data : undefined,
31
+ source: 'attachment',
32
+ };
33
+ }
34
+ const reference = isPlainObject(payload.contentReference) ? payload.contentReference : undefined;
35
+ if (reference) {
36
+ return { source: 'reference' };
37
+ }
38
+ return { source: 'unknown' };
39
+ }
40
+ function getTextIndex(resource) {
41
+ const fragments = [];
42
+ const walk = (value) => {
43
+ if (typeof value === 'string' && value.trim()) {
44
+ fragments.push(value.trim().toLowerCase());
45
+ return;
46
+ }
47
+ if (Array.isArray(value)) {
48
+ value.forEach(walk);
49
+ return;
50
+ }
51
+ if (isPlainObject(value)) {
52
+ Object.values(value).forEach(walk);
53
+ }
54
+ };
55
+ walk(resource);
56
+ return fragments.join(' ');
57
+ }
58
+ /**
59
+ * Resolves the first document reachable from a FHIR `Communication`.
60
+ *
61
+ * The returned descriptor hides whether the document was attached directly
62
+ * or wrapped in a `DocumentReference`.
63
+ *
64
+ * @param communication FHIR `Communication` resource to inspect.
65
+ */
66
+ export function getDocumentFromCommunication(communication) {
67
+ const payloads = resolveCommunicationPayloads(communication);
68
+ const first = payloads[0];
69
+ if (!first)
70
+ return undefined;
71
+ const payloadArray = Array.isArray(communication.payload)
72
+ ? communication.payload
73
+ : undefined;
74
+ const communicationPayload = payloadArray
75
+ ? payloadArray[first.payloadIndex]
76
+ : undefined;
77
+ const payloadMeta = isPlainObject(communicationPayload)
78
+ ? getAttachmentMetadata(communicationPayload)
79
+ : { source: 'unknown' };
80
+ if (first.bundle) {
81
+ return {
82
+ kind: 'fhir',
83
+ contentType: payloadMeta.contentType || 'application/fhir+json',
84
+ title: payloadMeta.title,
85
+ base64Data: payloadMeta.data,
86
+ documentReference: first.documentReference,
87
+ bundle: first.bundle,
88
+ source: first.documentReference?.resourceType === ResourceTypesFhirR4.DocumentReference
89
+ ? 'documentReference'
90
+ : payloadMeta.source,
91
+ };
92
+ }
93
+ if (payloadMeta.contentType || payloadMeta.data) {
94
+ return {
95
+ kind: payloadMeta.contentType?.includes('fhir') ? 'fhir' : 'binary',
96
+ contentType: payloadMeta.contentType,
97
+ title: payloadMeta.title,
98
+ base64Data: payloadMeta.data,
99
+ documentReference: first.documentReference,
100
+ bundle: first.resource?.resourceType === ResourceTypesFhirR4.Bundle ? first.resource : undefined,
101
+ source: first.documentReference?.resourceType === ResourceTypesFhirR4.DocumentReference
102
+ ? 'documentReference'
103
+ : payloadMeta.source,
104
+ };
105
+ }
106
+ return {
107
+ kind: 'unknown',
108
+ source: payloadMeta.source,
109
+ documentReference: first.documentReference,
110
+ bundle: first.bundle,
111
+ };
112
+ }
113
+ /**
114
+ * Creates a read-only document facade over a FHIR `Bundle document`
115
+ * or over a FHIR `Communication` that contains one.
116
+ *
117
+ * @param communicationOrBundle Either a FHIR `Bundle document` or a FHIR `Communication`.
118
+ */
119
+ export function createFhirDocumentFacade(communicationOrBundle) {
120
+ const bundle = communicationOrBundle.resourceType === ResourceTypesFhirR4.Bundle
121
+ ? communicationOrBundle
122
+ : getFirstBundleDocumentFromCommunication(communicationOrBundle);
123
+ const facade = Object.freeze({
124
+ getBundle: () => bundle,
125
+ getSections: () => {
126
+ const compositions = getBundleDocumentResourcesByType(bundle, ResourceTypesFhirR4.Composition);
127
+ return compositions.flatMap((composition) => {
128
+ const sections = Array.isArray(composition.section) ? composition.section : [];
129
+ return sections
130
+ .filter(isPlainObject)
131
+ .map((section) => {
132
+ const sectionCode = isPlainObject(section.code) ? section.code : undefined;
133
+ const codingValue = sectionCode ? sectionCode.coding : undefined;
134
+ const codingList = Array.isArray(codingValue) ? codingValue : [];
135
+ const firstCoding = codingList.find(isPlainObject);
136
+ return {
137
+ title: typeof section.title === 'string' ? section.title : undefined,
138
+ code: firstCoding
139
+ ? [firstCoding.system, firstCoding.code].filter(Boolean).join('|') || undefined
140
+ : undefined,
141
+ entries: Array.isArray(section.entry)
142
+ ? section.entry
143
+ .filter(isPlainObject)
144
+ .map((entry) => (typeof entry.reference === 'string' ? entry.reference : ''))
145
+ .filter(Boolean)
146
+ : [],
147
+ };
148
+ });
149
+ });
150
+ },
151
+ getResources: (resourceType) => {
152
+ if (!resourceType)
153
+ return getBundleDocumentEntries(bundle);
154
+ return getBundleDocumentResourcesByType(bundle, resourceType);
155
+ },
156
+ getByDates: (resourceType, start, end) => {
157
+ return sortFhirResourcesByDateDescending(getBundleDocumentResourcesByType(bundle, resourceType))
158
+ .filter((resource) => {
159
+ const date = getCanonicalDate(resource);
160
+ if (!date)
161
+ return false;
162
+ if (start && date < start)
163
+ return false;
164
+ if (end && date > end)
165
+ return false;
166
+ return true;
167
+ });
168
+ },
169
+ getContainingTextOrDisplay: (resourceType, searchText) => {
170
+ const normalized = searchText.trim().toLowerCase();
171
+ if (!normalized)
172
+ return [];
173
+ return getBundleDocumentResourcesByType(bundle, resourceType)
174
+ .filter((resource) => getTextIndex(resource).includes(normalized));
175
+ },
176
+ });
177
+ return Object.freeze({
178
+ ...facade,
179
+ vitalSigns: createVitalSignsFacade(facade),
180
+ });
181
+ }
182
+ /**
183
+ * Creates the high-level communication facade used by SDK consumers.
184
+ *
185
+ * Current methods:
186
+ * - `getDocument(...)`
187
+ * - `getFhirDocument(...)`
188
+ */
189
+ export function createCommunicationFacade() {
190
+ return Object.freeze({
191
+ getDocument: getDocumentFromCommunication,
192
+ getFhirDocument: createFhirDocumentFacade,
193
+ });
194
+ }
@@ -0,0 +1,104 @@
1
+ import type { CommunicationBatchMessageOptions, CommunicationCreationOptions, CommunicationResourceLike, FhirResourceLike, ResourceAttachmentOptions } from './communication-resource-helpers.js';
2
+ export declare const CommunicationOutboxStatuses: Readonly<{
3
+ readonly Draft: "draft";
4
+ readonly Ready: "ready";
5
+ readonly Submitting: "submitting";
6
+ readonly Sent: "sent";
7
+ readonly Completed: "completed";
8
+ readonly Failed: "failed";
9
+ readonly ErrorRetryable: "error-retryable";
10
+ }>;
11
+ export type CommunicationOutboxStatus = typeof CommunicationOutboxStatuses[keyof typeof CommunicationOutboxStatuses];
12
+ export type CommunicationDraft = Readonly<{
13
+ id: string;
14
+ communication: CommunicationResourceLike;
15
+ createdAt: string;
16
+ updatedAt: string;
17
+ noteText?: string;
18
+ }>;
19
+ export type CommunicationDraftCreationOptions = CommunicationCreationOptions & Readonly<{
20
+ draftId?: string;
21
+ createdAt?: string;
22
+ }>;
23
+ export type OutboxJob<TPayload = Record<string, unknown>, TStatus extends string = CommunicationOutboxStatus> = Readonly<{
24
+ id: string;
25
+ draftId: string;
26
+ thid: string;
27
+ createdAt: string;
28
+ updatedAt: string;
29
+ status: TStatus;
30
+ payload: TPayload;
31
+ envelope: Record<string, unknown>;
32
+ response?: Record<string, unknown>;
33
+ errorMessage?: string;
34
+ }>;
35
+ export type CommunicationOutboxJob = OutboxJob<CommunicationResourceLike, CommunicationOutboxStatus>;
36
+ export type CommunicationOutboxJobOptions = Readonly<{
37
+ jobId?: string;
38
+ createdAt?: string;
39
+ status?: CommunicationOutboxStatus;
40
+ batchOptions?: CommunicationBatchMessageOptions;
41
+ }>;
42
+ /**
43
+ * Creates an in-memory `CommunicationDraft` ready to receive resources,
44
+ * documents, notes, and attachments before submission.
45
+ *
46
+ * The draft is purely local. It does not imply persistence, network I/O,
47
+ * queueing, or polling until converted into an outbox job.
48
+ *
49
+ * @param options Draft metadata plus the base `Communication` creation fields.
50
+ */
51
+ export declare function createCommunicationDraft(options: CommunicationDraftCreationOptions): CommunicationDraft;
52
+ /**
53
+ * Returns the FHIR `Communication` currently being edited inside the draft.
54
+ *
55
+ * @param draft Communication draft to inspect.
56
+ */
57
+ export declare function getCommunicationFromDraft(draft: CommunicationDraft): CommunicationResourceLike;
58
+ /**
59
+ * Returns `true` when the draft contains at least one `payload[]` entry and
60
+ * can therefore be serialized into an outbox job for submission.
61
+ *
62
+ * @param draft Communication draft to validate.
63
+ */
64
+ export declare function isCommunicationDraftReady(draft: CommunicationDraft): boolean;
65
+ /**
66
+ * Appends a concrete FHIR resource to the draft `Communication.payload[]`.
67
+ *
68
+ * @param draft Communication draft being edited.
69
+ * @param resource FHIR resource to attach.
70
+ * @param options Attachment/document wrapping options.
71
+ */
72
+ export declare function addFhirResourceToDraft(draft: CommunicationDraft, resource: FhirResourceLike, options?: ResourceAttachmentOptions): CommunicationDraft;
73
+ /**
74
+ * Appends a claims-only pseudo-resource to the draft `Communication.payload[]`.
75
+ *
76
+ * @param draft Communication draft being edited.
77
+ * @param resourceType FHIR `resourceType` name to materialize.
78
+ * @param claims Canonical claims to place under `resource.meta.claims`.
79
+ * @param options Attachment/document wrapping options.
80
+ */
81
+ export declare function addClaimsResourceToDraft(draft: CommunicationDraft, resourceType: string, claims: Record<string, unknown>, options?: ResourceAttachmentOptions): CommunicationDraft;
82
+ /**
83
+ * Freezes the current draft into a transport-oriented outbox job.
84
+ *
85
+ * The returned job contains the current `Communication` as `payload`, the prebuilt batch
86
+ * message, a thread id, and a transport status. Submission and polling are
87
+ * intentionally left to runtime packages.
88
+ *
89
+ * @param draft Draft to freeze.
90
+ * @param options Optional job id, timestamps, initial status, and batch options.
91
+ */
92
+ export declare function createOutboxJobFromDraft(draft: CommunicationDraft, options?: CommunicationOutboxJobOptions): CommunicationOutboxJob;
93
+ /**
94
+ * Returns a copy of the outbox job with a new status and optional transport
95
+ * result metadata such as gateway responses or error messages.
96
+ *
97
+ * @param job Existing outbox job.
98
+ * @param status Next transport status.
99
+ * @param patch Optional response/error payload.
100
+ */
101
+ export declare function updateOutboxJobStatus(job: CommunicationOutboxJob, status: CommunicationOutboxStatus, patch?: Readonly<{
102
+ response?: Record<string, unknown>;
103
+ errorMessage?: string;
104
+ }>): CommunicationOutboxJob;
@@ -0,0 +1,143 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { addClaimsResourceToCommunication, addFhirResourceToCommunication, buildCommunicationBatchMessage, createCommunicationResource, } from './communication-resource-helpers.js';
3
+ export const CommunicationOutboxStatuses = Object.freeze({
4
+ Draft: 'draft',
5
+ Ready: 'ready',
6
+ Submitting: 'submitting',
7
+ Sent: 'sent',
8
+ Completed: 'completed',
9
+ Failed: 'failed',
10
+ ErrorRetryable: 'error-retryable',
11
+ });
12
+ function runtimeUuid() {
13
+ const cryptoLike = globalThis;
14
+ if (typeof cryptoLike.crypto?.randomUUID === 'function') {
15
+ return cryptoLike.crypto.randomUUID();
16
+ }
17
+ return `draft-${Date.now()}-${Math.random().toString(16).slice(2)}`;
18
+ }
19
+ function clone(value) {
20
+ return JSON.parse(JSON.stringify(value));
21
+ }
22
+ function resolveDraftNoteText(communication) {
23
+ if (!Array.isArray(communication.note))
24
+ return undefined;
25
+ return communication.note
26
+ .map((item) => (item && typeof item.text === 'string' ? item.text.trim() : ''))
27
+ .filter(Boolean)
28
+ .join('\n\n') || undefined;
29
+ }
30
+ /**
31
+ * Creates an in-memory `CommunicationDraft` ready to receive resources,
32
+ * documents, notes, and attachments before submission.
33
+ *
34
+ * The draft is purely local. It does not imply persistence, network I/O,
35
+ * queueing, or polling until converted into an outbox job.
36
+ *
37
+ * @param options Draft metadata plus the base `Communication` creation fields.
38
+ */
39
+ export function createCommunicationDraft(options) {
40
+ const createdAt = options.createdAt || new Date().toISOString();
41
+ const communication = createCommunicationResource(options);
42
+ return Object.freeze({
43
+ id: options.draftId || runtimeUuid(),
44
+ communication,
45
+ createdAt,
46
+ updatedAt: createdAt,
47
+ noteText: resolveDraftNoteText(communication),
48
+ });
49
+ }
50
+ /**
51
+ * Returns the FHIR `Communication` currently being edited inside the draft.
52
+ *
53
+ * @param draft Communication draft to inspect.
54
+ */
55
+ export function getCommunicationFromDraft(draft) {
56
+ return clone(draft.communication);
57
+ }
58
+ /**
59
+ * Returns `true` when the draft contains at least one `payload[]` entry and
60
+ * can therefore be serialized into an outbox job for submission.
61
+ *
62
+ * @param draft Communication draft to validate.
63
+ */
64
+ export function isCommunicationDraftReady(draft) {
65
+ return Array.isArray(draft.communication.payload) && draft.communication.payload.length > 0;
66
+ }
67
+ /**
68
+ * Appends a concrete FHIR resource to the draft `Communication.payload[]`.
69
+ *
70
+ * @param draft Communication draft being edited.
71
+ * @param resource FHIR resource to attach.
72
+ * @param options Attachment/document wrapping options.
73
+ */
74
+ export function addFhirResourceToDraft(draft, resource, options = {}) {
75
+ const communication = addFhirResourceToCommunication(draft.communication, resource, options);
76
+ return Object.freeze({
77
+ ...draft,
78
+ communication,
79
+ updatedAt: new Date().toISOString(),
80
+ noteText: resolveDraftNoteText(communication),
81
+ });
82
+ }
83
+ /**
84
+ * Appends a claims-only pseudo-resource to the draft `Communication.payload[]`.
85
+ *
86
+ * @param draft Communication draft being edited.
87
+ * @param resourceType FHIR `resourceType` name to materialize.
88
+ * @param claims Canonical claims to place under `resource.meta.claims`.
89
+ * @param options Attachment/document wrapping options.
90
+ */
91
+ export function addClaimsResourceToDraft(draft, resourceType, claims, options = {}) {
92
+ const communication = addClaimsResourceToCommunication(draft.communication, resourceType, claims, options);
93
+ return Object.freeze({
94
+ ...draft,
95
+ communication,
96
+ updatedAt: new Date().toISOString(),
97
+ noteText: resolveDraftNoteText(communication),
98
+ });
99
+ }
100
+ /**
101
+ * Freezes the current draft into a transport-oriented outbox job.
102
+ *
103
+ * The returned job contains the current `Communication` as `payload`, the prebuilt batch
104
+ * message, a thread id, and a transport status. Submission and polling are
105
+ * intentionally left to runtime packages.
106
+ *
107
+ * @param draft Draft to freeze.
108
+ * @param options Optional job id, timestamps, initial status, and batch options.
109
+ */
110
+ export function createOutboxJobFromDraft(draft, options = {}) {
111
+ const createdAt = options.createdAt || new Date().toISOString();
112
+ const batchMessage = buildCommunicationBatchMessage(draft.communication, options.batchOptions);
113
+ const thid = typeof batchMessage.thid === 'string' ? batchMessage.thid : runtimeUuid();
114
+ return Object.freeze({
115
+ id: options.jobId || runtimeUuid(),
116
+ draftId: draft.id,
117
+ thid,
118
+ createdAt,
119
+ updatedAt: createdAt,
120
+ status: options.status || (isCommunicationDraftReady(draft)
121
+ ? CommunicationOutboxStatuses.Ready
122
+ : CommunicationOutboxStatuses.Draft),
123
+ payload: clone(draft.communication),
124
+ envelope: batchMessage,
125
+ });
126
+ }
127
+ /**
128
+ * Returns a copy of the outbox job with a new status and optional transport
129
+ * result metadata such as gateway responses or error messages.
130
+ *
131
+ * @param job Existing outbox job.
132
+ * @param status Next transport status.
133
+ * @param patch Optional response/error payload.
134
+ */
135
+ export function updateOutboxJobStatus(job, status, patch = {}) {
136
+ return Object.freeze({
137
+ ...job,
138
+ status,
139
+ updatedAt: new Date().toISOString(),
140
+ ...(patch.response ? { response: clone(patch.response) } : {}),
141
+ ...(patch.errorMessage ? { errorMessage: patch.errorMessage } : {}),
142
+ });
143
+ }