gdc-common-utils-ts 2.1.0 → 2.2.2

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 (154) hide show
  1. package/README.md +18 -0
  2. package/dist/claims/claims-helpers-allergy-intolerance.d.ts +8 -0
  3. package/dist/claims/claims-helpers-allergy-intolerance.js +30 -12
  4. package/dist/claims/claims-helpers-condition.d.ts +8 -0
  5. package/dist/claims/claims-helpers-condition.js +30 -12
  6. package/dist/claims/claims-helpers-consent.d.ts +4 -0
  7. package/dist/claims/claims-helpers-consent.js +15 -1
  8. package/dist/claims/claims-helpers-diagnostic-report.d.ts +4 -0
  9. package/dist/claims/claims-helpers-diagnostic-report.js +17 -2
  10. package/dist/claims/claims-helpers-medication-statement.d.ts +10 -2
  11. package/dist/claims/claims-helpers-medication-statement.js +32 -14
  12. package/dist/constants/didcomm.d.ts +22 -0
  13. package/dist/constants/didcomm.js +22 -0
  14. package/dist/constants/fhir-resource-types.d.ts +2 -0
  15. package/dist/constants/fhir-resource-types.js +1 -0
  16. package/dist/constants/index.d.ts +1 -0
  17. package/dist/constants/index.js +1 -0
  18. package/dist/constants/lifecycle.d.ts +2 -0
  19. package/dist/constants/lifecycle.js +2 -0
  20. package/dist/constants/verifiable-credentials.d.ts +9 -0
  21. package/dist/constants/verifiable-credentials.js +9 -0
  22. package/dist/examples/bundle-didcomm-payload.js +4 -2
  23. package/dist/examples/communication-attached-bundle-session.js +27 -27
  24. package/dist/examples/communication-didcomm-payload.d.ts +8 -4
  25. package/dist/examples/communication-didcomm-payload.js +17 -11
  26. package/dist/examples/consent-access.js +2 -1
  27. package/dist/examples/employee.d.ts +21 -0
  28. package/dist/examples/employee.js +21 -0
  29. package/dist/examples/individual-controller.d.ts +27 -0
  30. package/dist/examples/individual-controller.js +28 -1
  31. package/dist/examples/inter-tenant-access-contract.js +3 -2
  32. package/dist/examples/ips-bundle.js +17 -16
  33. package/dist/examples/lifecycle.js +13 -11
  34. package/dist/examples/profile-manager-mem.js +2 -1
  35. package/dist/examples/related-person.d.ts +14 -0
  36. package/dist/examples/related-person.js +18 -4
  37. package/dist/examples/shared.d.ts +12 -3
  38. package/dist/examples/shared.js +13 -4
  39. package/dist/examples/vital-signs.js +1 -1
  40. package/dist/examples/wallet-mem.js +4 -2
  41. package/dist/models/authority-resolution.d.ts +56 -0
  42. package/dist/models/authority-resolution.js +2 -0
  43. package/dist/models/bundle-editor-types.d.ts +89 -0
  44. package/dist/models/bundle-editor-types.js +45 -0
  45. package/dist/models/bundle.d.ts +5 -0
  46. package/dist/models/communication-attached-bundle-session.d.ts +6 -4
  47. package/dist/models/communication-attached-bundle-session.js +6 -4
  48. package/dist/models/confidential-storage.d.ts +2 -1
  49. package/dist/models/consent-rule.d.ts +11 -1
  50. package/dist/models/consent-rule.js +9 -1
  51. package/dist/models/index.d.ts +2 -0
  52. package/dist/models/index.js +2 -0
  53. package/dist/models/individual-onboarding.d.ts +18 -0
  54. package/dist/models/interoperable-claims/allergy-intolerance-claims.d.ts +12 -1
  55. package/dist/models/interoperable-claims/allergy-intolerance-claims.js +12 -1
  56. package/dist/models/interoperable-claims/condition-claims.d.ts +12 -1
  57. package/dist/models/interoperable-claims/condition-claims.js +12 -1
  58. package/dist/models/interoperable-claims/diagnostic-report-claims.d.ts +13 -2
  59. package/dist/models/interoperable-claims/diagnostic-report-claims.js +12 -1
  60. package/dist/models/interoperable-claims/document-reference-claims.d.ts +1 -0
  61. package/dist/models/interoperable-claims/document-reference-claims.js +3 -0
  62. package/dist/models/interoperable-claims/medication-statement-claims.d.ts +17 -0
  63. package/dist/models/interoperable-claims/medication-statement-claims.js +17 -0
  64. package/dist/utils/allergy-intolerance-entry-editor.d.ts +51 -0
  65. package/dist/utils/allergy-intolerance-entry-editor.js +55 -0
  66. package/dist/utils/authority-resolution.d.ts +37 -0
  67. package/dist/utils/authority-resolution.js +112 -0
  68. package/dist/utils/backend-message-manager-mem.d.ts +11 -0
  69. package/dist/utils/backend-message-manager-mem.js +11 -0
  70. package/dist/utils/bundle-didcomm-payload.js +3 -2
  71. package/dist/utils/bundle-document-builder.d.ts +1 -0
  72. package/dist/utils/bundle-document-builder.js +134 -14
  73. package/dist/utils/bundle-editor-core.d.ts +181 -0
  74. package/dist/utils/bundle-editor-core.js +467 -0
  75. package/dist/utils/bundle-editor-helpers.d.ts +53 -0
  76. package/dist/utils/bundle-editor-helpers.js +146 -0
  77. package/dist/utils/bundle-editor-registry.d.ts +6 -0
  78. package/dist/utils/bundle-editor-registry.js +14 -0
  79. package/dist/utils/bundle-editor.d.ts +21 -722
  80. package/dist/utils/bundle-editor.js +21 -1601
  81. package/dist/utils/bundle-entry-editor.d.ts +96 -0
  82. package/dist/utils/bundle-entry-editor.js +305 -0
  83. package/dist/utils/bundle-query.d.ts +1 -0
  84. package/dist/utils/bundle-query.js +12 -3
  85. package/dist/utils/bundle-reader.d.ts +48 -0
  86. package/dist/utils/bundle-reader.js +175 -1
  87. package/dist/utils/care-plan-entry-editor.d.ts +43 -0
  88. package/dist/utils/care-plan-entry-editor.js +47 -0
  89. package/dist/utils/client-assertion.d.ts +38 -0
  90. package/dist/utils/client-assertion.js +113 -0
  91. package/dist/utils/clinical-impression-entry-editor.d.ts +43 -0
  92. package/dist/utils/clinical-impression-entry-editor.js +47 -0
  93. package/dist/utils/clinical-resource-entry-editor.d.ts +123 -0
  94. package/dist/utils/clinical-resource-entry-editor.js +296 -0
  95. package/dist/utils/communication-attached-bundle-session-helpers.js +8 -6
  96. package/dist/utils/communication-attached-bundle-session.d.ts +29 -3
  97. package/dist/utils/communication-attached-bundle-session.js +62 -3
  98. package/dist/utils/communication-didcomm-payload.d.ts +5 -0
  99. package/dist/utils/communication-didcomm-payload.js +28 -18
  100. package/dist/utils/communication-document-reference.d.ts +23 -0
  101. package/dist/utils/communication-document-reference.js +89 -0
  102. package/dist/utils/communication-editor.d.ts +53 -0
  103. package/dist/utils/communication-editor.js +97 -0
  104. package/dist/utils/condition-entry-editor.d.ts +30 -0
  105. package/dist/utils/condition-entry-editor.js +34 -0
  106. package/dist/utils/consent-claim-helpers.d.ts +4 -0
  107. package/dist/utils/consent-claim-helpers.js +15 -1
  108. package/dist/utils/coverage-entry-editor.d.ts +51 -0
  109. package/dist/utils/coverage-entry-editor.js +55 -0
  110. package/dist/utils/device-entry-editor.d.ts +59 -0
  111. package/dist/utils/device-entry-editor.js +63 -0
  112. package/dist/utils/device-use-statement-entry-editor.d.ts +43 -0
  113. package/dist/utils/device-use-statement-entry-editor.js +47 -0
  114. package/dist/utils/diagnostic-report-entry-editor.d.ts +74 -0
  115. package/dist/utils/diagnostic-report-entry-editor.js +136 -0
  116. package/dist/utils/did.d.ts +8 -0
  117. package/dist/utils/did.js +22 -0
  118. package/dist/utils/document-reference-entry-editor.d.ts +62 -0
  119. package/dist/utils/document-reference-entry-editor.js +66 -0
  120. package/dist/utils/employee-entry-editor.d.ts +36 -0
  121. package/dist/utils/employee-entry-editor.js +88 -0
  122. package/dist/utils/employee.d.ts +1 -0
  123. package/dist/utils/employee.js +2 -1
  124. package/dist/utils/encounter-entry-editor.d.ts +51 -0
  125. package/dist/utils/encounter-entry-editor.js +55 -0
  126. package/dist/utils/flag-entry-editor.d.ts +47 -0
  127. package/dist/utils/flag-entry-editor.js +51 -0
  128. package/dist/utils/immunization-entry-editor.d.ts +87 -0
  129. package/dist/utils/immunization-entry-editor.js +169 -0
  130. package/dist/utils/index.d.ts +7 -0
  131. package/dist/utils/index.js +7 -0
  132. package/dist/utils/individual-onboarding-acceptance-credential.d.ts +35 -0
  133. package/dist/utils/individual-onboarding-acceptance-credential.js +55 -0
  134. package/dist/utils/individual-smart.d.ts +59 -0
  135. package/dist/utils/individual-smart.js +135 -0
  136. package/dist/utils/medication-statement-entry-editor.d.ts +90 -0
  137. package/dist/utils/medication-statement-entry-editor.js +94 -0
  138. package/dist/utils/observation-component-entry-editor.d.ts +57 -0
  139. package/dist/utils/observation-component-entry-editor.js +105 -0
  140. package/dist/utils/observation-entry-editor.d.ts +29 -0
  141. package/dist/utils/observation-entry-editor.js +68 -0
  142. package/dist/utils/procedure-entry-editor.d.ts +71 -0
  143. package/dist/utils/procedure-entry-editor.js +75 -0
  144. package/dist/utils/professional-smart.d.ts +87 -0
  145. package/dist/utils/professional-smart.js +118 -4
  146. package/dist/utils/same-as.d.ts +40 -0
  147. package/dist/utils/same-as.js +72 -0
  148. package/dist/utils/unified-health-id.d.ts +51 -0
  149. package/dist/utils/unified-health-id.js +92 -0
  150. package/dist/utils/vital-sign-day-batch.d.ts +25 -0
  151. package/dist/utils/vital-sign-day-batch.js +115 -0
  152. package/dist/utils/vital-sign-entry-editor.d.ts +61 -0
  153. package/dist/utils/vital-sign-entry-editor.js +152 -0
  154. package/package.json +2 -1
@@ -18,9 +18,17 @@ export var ClaimConsent;
18
18
  ClaimConsent["identifier"] = "Consent.identifier";
19
19
  ClaimConsent["eventBasedOn"] = "Consent.event-basedon";
20
20
  ClaimConsent["sourceReference"] = "Consent.source-reference";
21
+ ClaimConsent["containedReferenceList"] = "Consent.contained-reference-list";
22
+ /**
23
+ * @deprecated Use `containedReferenceList`.
24
+ */
25
+ ClaimConsent["containedResourceList"] = "Consent.contained-resource-list";
26
+ /**
27
+ * @deprecated Use `containedReferenceList`.
28
+ */
21
29
  ClaimConsent["containedDocuments"] = "Consent.contained-documents";
22
30
  /**
23
- * @deprecated Use `containedDocuments`.
31
+ * @deprecated Use `containedReferenceList`.
24
32
  */
25
33
  ClaimConsent["attachmentContentIds"] = "Consent.attachment-content-ids";
26
34
  ClaimConsent["attachmentContentType"] = "Consent.attachment-contenttype";
@@ -1,7 +1,9 @@
1
1
  export * from './actor-session';
2
2
  export * from './aes';
3
3
  export * from './auth';
4
+ export * from './authority-resolution';
4
5
  export * from './bundle';
6
+ export * from './bundle-editor-types';
5
7
  export * from './comm';
6
8
  export * from './clinical-sections';
7
9
  export * from './clinical-sections.en';
@@ -1,7 +1,9 @@
1
1
  export * from './actor-session.js';
2
2
  export * from './aes.js';
3
3
  export * from './auth.js';
4
+ export * from './authority-resolution.js';
4
5
  export * from './bundle.js';
6
+ export * from './bundle-editor-types.js';
5
7
  export * from './comm.js';
6
8
  export * from './clinical-sections.js';
7
9
  export * from './clinical-sections.en.js';
@@ -73,9 +73,27 @@ export interface IndividualFormTemplateFields {
73
73
  controllerSexAtBirth?: BirthSex | string;
74
74
  controllerIsSubject?: boolean;
75
75
  subjectAlternateName?: string;
76
+ /**
77
+ * Birth date for the indexed subject.
78
+ *
79
+ * Canonical downstream target:
80
+ * - `org.schema.Organization.member.birthDate`
81
+ *
82
+ * When `controllerIsSubject=true`, controller date fields may also be used
83
+ * as the subject seed for self-registration flows.
84
+ */
76
85
  subjectDateOfBirth?: string;
77
86
  subjectEmail?: string;
78
87
  subjectFamilyName?: string;
88
+ /**
89
+ * Gender for the indexed subject.
90
+ *
91
+ * Canonical downstream target:
92
+ * - `org.schema.Organization.member.gender`
93
+ *
94
+ * When `controllerIsSubject=true`, controller gender fields may also be used
95
+ * as the subject seed for self-registration flows.
96
+ */
79
97
  subjectGender?: GenderIdentity | string;
80
98
  subjectGivenName?: string;
81
99
  subjectIdType?: IdKindValue | string;
@@ -11,9 +11,20 @@ export declare const AllergyIntoleranceClaim: {
11
11
  readonly ClinicalStatus: "AllergyIntolerance.clinical-status";
12
12
  readonly VerificationStatus: "AllergyIntolerance.verification-status";
13
13
  readonly Category: "AllergyIntolerance.category";
14
+ /**
15
+ * Canonical CSV/list of related contained resource references or identifiers.
16
+ */
17
+ readonly ContainedReferenceList: "AllergyIntolerance.contained-reference-list";
18
+ /**
19
+ * @deprecated Use `ContainedReferenceList`.
20
+ */
21
+ readonly ContainedResourceList: "AllergyIntolerance.contained-resource-list";
22
+ /**
23
+ * @deprecated Use `ContainedReferenceList`.
24
+ */
14
25
  readonly ContainedDocuments: "AllergyIntolerance.contained-documents";
15
26
  /**
16
- * @deprecated Use `ContainedDocuments`.
27
+ * @deprecated Use `ContainedReferenceList`.
17
28
  */
18
29
  readonly AttachmentContentIds: "AllergyIntolerance.attachment-content-ids";
19
30
  readonly Criticality: "AllergyIntolerance.criticality";
@@ -13,9 +13,20 @@ export const AllergyIntoleranceClaim = {
13
13
  ClinicalStatus: 'AllergyIntolerance.clinical-status',
14
14
  VerificationStatus: 'AllergyIntolerance.verification-status',
15
15
  Category: 'AllergyIntolerance.category',
16
+ /**
17
+ * Canonical CSV/list of related contained resource references or identifiers.
18
+ */
19
+ ContainedReferenceList: 'AllergyIntolerance.contained-reference-list',
20
+ /**
21
+ * @deprecated Use `ContainedReferenceList`.
22
+ */
23
+ ContainedResourceList: 'AllergyIntolerance.contained-resource-list',
24
+ /**
25
+ * @deprecated Use `ContainedReferenceList`.
26
+ */
16
27
  ContainedDocuments: 'AllergyIntolerance.contained-documents',
17
28
  /**
18
- * @deprecated Use `ContainedDocuments`.
29
+ * @deprecated Use `ContainedReferenceList`.
19
30
  */
20
31
  AttachmentContentIds: 'AllergyIntolerance.attachment-content-ids',
21
32
  Criticality: 'AllergyIntolerance.criticality',
@@ -6,9 +6,20 @@ export declare const ConditionClaim: {
6
6
  readonly VerificationStatus: "Condition.verification-status";
7
7
  readonly Category: "Condition.category";
8
8
  readonly Code: "Condition.code";
9
+ /**
10
+ * Canonical CSV/list of related contained resource references or identifiers.
11
+ */
12
+ readonly ContainedReferenceList: "Condition.contained-reference-list";
13
+ /**
14
+ * @deprecated Use `ContainedReferenceList`.
15
+ */
16
+ readonly ContainedResourceList: "Condition.contained-resource-list";
17
+ /**
18
+ * @deprecated Use `ContainedReferenceList`.
19
+ */
9
20
  readonly ContainedDocuments: "Condition.contained-documents";
10
21
  /**
11
- * @deprecated Use `ContainedDocuments`.
22
+ * @deprecated Use `ContainedReferenceList`.
12
23
  */
13
24
  readonly AttachmentContentIds: "Condition.attachment-content-ids";
14
25
  readonly Severity: "Condition.severity";
@@ -8,9 +8,20 @@ export const ConditionClaim = {
8
8
  VerificationStatus: 'Condition.verification-status',
9
9
  Category: 'Condition.category',
10
10
  Code: 'Condition.code',
11
+ /**
12
+ * Canonical CSV/list of related contained resource references or identifiers.
13
+ */
14
+ ContainedReferenceList: 'Condition.contained-reference-list',
15
+ /**
16
+ * @deprecated Use `ContainedReferenceList`.
17
+ */
18
+ ContainedResourceList: 'Condition.contained-resource-list',
19
+ /**
20
+ * @deprecated Use `ContainedReferenceList`.
21
+ */
11
22
  ContainedDocuments: 'Condition.contained-documents',
12
23
  /**
13
- * @deprecated Use `ContainedDocuments`.
24
+ * @deprecated Use `ContainedReferenceList`.
14
25
  */
15
26
  AttachmentContentIds: 'Condition.attachment-content-ids',
16
27
  Severity: 'Condition.severity',
@@ -17,6 +17,17 @@ export declare const DiagnosticReportClaim: {
17
17
  readonly PresentedFormContentType: "DiagnosticReport.presented-form-contenttype";
18
18
  readonly PresentedFormData: "DiagnosticReport.presented-form-data";
19
19
  readonly PresentedFormUrl: "DiagnosticReport.presented-form-url";
20
+ /**
21
+ * Canonical CSV/list of related contained resource references or identifiers.
22
+ */
23
+ readonly ContainedReferenceList: "DiagnosticReport.contained-reference-list";
24
+ /**
25
+ * @deprecated Use `ContainedReferenceList`.
26
+ */
27
+ readonly ContainedResourceList: "DiagnosticReport.contained-resource-list";
28
+ /**
29
+ * @deprecated Use `ContainedReferenceList`.
30
+ */
20
31
  readonly ContainedDocuments: "DiagnosticReport.contained-documents";
21
32
  };
22
33
  /**
@@ -31,7 +42,7 @@ export declare const DiagnosticReportClaim: {
31
42
  * - `get/set/add/removeDiagnosticReportResultList`
32
43
  * - `get/set/add/removeDiagnosticReportPerformerList`
33
44
  * - `get/set/add/removeDiagnosticReportSpecimenList`
34
- * - `get/set/add/removeDiagnosticReportContainedDocuments`
45
+ * - `get/set/add/removeDiagnosticReportContainedResourceReferences`
35
46
  * - `get/setDiagnosticReportPresentedFormContentType`
36
47
  * - `get/setDiagnosticReportPresentedFormData`
37
48
  * - `get/setDiagnosticReportPresentedFormUrl`
@@ -87,7 +98,7 @@ export declare const DiagnosticReportSearchParamToClaimKey: Record<DiagnosticRep
87
98
  *
88
99
  * Do not invent camelCase names. Prefer official FHIR search parameter names
89
100
  * or explicit attachment aliases such as `presented-form-*` and
90
- * `contained-documents`.
101
+ * `contained-reference-list`.
91
102
  *
92
103
  * Keep `DiagnosticReport` paused at the typing/mapping layer until:
93
104
  * 1. `claims-helpers-diagnostic-report.ts` exists
@@ -18,6 +18,17 @@ export const DiagnosticReportClaim = {
18
18
  PresentedFormContentType: 'DiagnosticReport.presented-form-contenttype',
19
19
  PresentedFormData: 'DiagnosticReport.presented-form-data',
20
20
  PresentedFormUrl: 'DiagnosticReport.presented-form-url',
21
+ /**
22
+ * Canonical CSV/list of related contained resource references or identifiers.
23
+ */
24
+ ContainedReferenceList: 'DiagnosticReport.contained-reference-list',
25
+ /**
26
+ * @deprecated Use `ContainedReferenceList`.
27
+ */
28
+ ContainedResourceList: 'DiagnosticReport.contained-resource-list',
29
+ /**
30
+ * @deprecated Use `ContainedReferenceList`.
31
+ */
21
32
  ContainedDocuments: 'DiagnosticReport.contained-documents',
22
33
  };
23
34
  export const DiagnosticReportClaimSpecs = [
@@ -96,7 +107,7 @@ export const DiagnosticReportSearchParamToClaimKey = {
96
107
  *
97
108
  * Do not invent camelCase names. Prefer official FHIR search parameter names
98
109
  * or explicit attachment aliases such as `presented-form-*` and
99
- * `contained-documents`.
110
+ * `contained-reference-list`.
100
111
  *
101
112
  * Keep `DiagnosticReport` paused at the typing/mapping layer until:
102
113
  * 1. `claims-helpers-diagnostic-report.ts` exists
@@ -22,6 +22,7 @@ export declare const DocumentReferenceClaim: {
22
22
  readonly Relation: "DocumentReference.relation";
23
23
  readonly Subject: "DocumentReference.subject";
24
24
  readonly Type: "DocumentReference.type";
25
+ readonly UserSelected: "DocumentReference.user-selected";
25
26
  };
26
27
  export type DocumentReferenceClaimKey = typeof DocumentReferenceClaim[keyof typeof DocumentReferenceClaim];
27
28
  /**
@@ -24,6 +24,7 @@ export const DocumentReferenceClaim = {
24
24
  Relation: 'DocumentReference.relation',
25
25
  Subject: 'DocumentReference.subject',
26
26
  Type: 'DocumentReference.type',
27
+ UserSelected: 'DocumentReference.user-selected',
27
28
  };
28
29
  /**
29
30
  * Human-readable reference for UI/docs generators.
@@ -52,6 +53,7 @@ export const DocumentReferenceClaimSpecs = [
52
53
  { key: DocumentReferenceClaim.Relation, meaning: 'Relation type to related document.', example: 'appends' },
53
54
  { key: DocumentReferenceClaim.Subject, meaning: 'URN for the section in the individual index.', example: 'urn:uhix:section:vitals' },
54
55
  { key: DocumentReferenceClaim.Type, meaning: 'Lower-level, sector-specific type.', example: 'http://hl7.org/fhir/ValueSet/c80-doc-typecodes|34133-9' },
56
+ { key: DocumentReferenceClaim.UserSelected, meaning: 'Custom provenance flag telling whether the document was explicitly created or selected by the end user/controller.', example: 'true' },
55
57
  ];
56
58
  /**
57
59
  * Optional mapping helper when converting claims-first payloads to strict FHIR JSON.
@@ -86,4 +88,5 @@ export const DocumentReferenceClaimToFhirPath = {
86
88
  [DocumentReferenceClaim.Relation]: 'DocumentReference.relatesTo.code',
87
89
  [DocumentReferenceClaim.Subject]: 'DocumentReference.subject.reference',
88
90
  [DocumentReferenceClaim.Type]: 'DocumentReference.type.coding',
91
+ [DocumentReferenceClaim.UserSelected]: 'DocumentReference.user-selected',
89
92
  };
@@ -14,6 +14,7 @@ export declare const MedicationStatementClaim: {
14
14
  readonly PartOf: "MedicationStatement.part-of";
15
15
  readonly Source: "MedicationStatement.source";
16
16
  readonly MedicationText: "MedicationStatement.medication-text";
17
+ readonly UserSelected: "MedicationStatement.user-selected";
17
18
  /**
18
19
  * Free-text clinical note.
19
20
  *
@@ -27,6 +28,22 @@ export declare const MedicationStatementClaim: {
27
28
  * `TimingPeriodUnit`, and `DosagePatientInstructionText`.
28
29
  */
29
30
  readonly Note: "MedicationStatement.note";
31
+ /**
32
+ * Canonical CSV/list of related contained resource references or identifiers.
33
+ *
34
+ * Values may be:
35
+ * - `urn:uuid:*`
36
+ * - `ResourceType/urn:uuid:*`
37
+ * - another canonical local resource reference used inside the same bundle
38
+ */
39
+ readonly ContainedReferenceList: "MedicationStatement.contained-reference-list";
40
+ /**
41
+ * @deprecated Use `ContainedReferenceList`.
42
+ */
43
+ readonly ContainedResourceList: "MedicationStatement.contained-resource-list";
44
+ /**
45
+ * @deprecated Use `ContainedReferenceList`.
46
+ */
30
47
  readonly ContainedDocuments: "MedicationStatement.contained-documents";
31
48
  /**
32
49
  * @deprecated Use `ContainedDocuments`.
@@ -16,6 +16,7 @@ export const MedicationStatementClaim = {
16
16
  PartOf: 'MedicationStatement.part-of',
17
17
  Source: 'MedicationStatement.source',
18
18
  MedicationText: 'MedicationStatement.medication-text',
19
+ UserSelected: 'MedicationStatement.user-selected',
19
20
  /**
20
21
  * Free-text clinical note.
21
22
  *
@@ -29,6 +30,22 @@ export const MedicationStatementClaim = {
29
30
  * `TimingPeriodUnit`, and `DosagePatientInstructionText`.
30
31
  */
31
32
  Note: 'MedicationStatement.note',
33
+ /**
34
+ * Canonical CSV/list of related contained resource references or identifiers.
35
+ *
36
+ * Values may be:
37
+ * - `urn:uuid:*`
38
+ * - `ResourceType/urn:uuid:*`
39
+ * - another canonical local resource reference used inside the same bundle
40
+ */
41
+ ContainedReferenceList: 'MedicationStatement.contained-reference-list',
42
+ /**
43
+ * @deprecated Use `ContainedReferenceList`.
44
+ */
45
+ ContainedResourceList: 'MedicationStatement.contained-resource-list',
46
+ /**
47
+ * @deprecated Use `ContainedReferenceList`.
48
+ */
32
49
  ContainedDocuments: 'MedicationStatement.contained-documents',
33
50
  /**
34
51
  * @deprecated Use `ContainedDocuments`.
@@ -0,0 +1,51 @@
1
+ import { ClinicalResourceEntryEditor } from './clinical-resource-entry-editor';
2
+ /**
3
+ * Typed editor for one staged AllergyIntolerance resource entry.
4
+ *
5
+ * Use this from frontend/BFF bundle-authoring flows when the caller needs one
6
+ * allergy row with canonical claims-first accessors.
7
+ */
8
+ export declare class AllergyIntoleranceEntryEditor extends ClinicalResourceEntryEditor {
9
+ /** Writes the canonical allergy identifier. */
10
+ setIdentifier(identifier?: string | null): this;
11
+ /** Reads the canonical allergy identifier. */
12
+ getIdentifier(): string | undefined;
13
+ /** Ensures the allergy entry has one canonical `urn:uuid:*` identifier. */
14
+ ensureIdentifier(): string;
15
+ /** Writes the subject/patient reference for the allergy entry. */
16
+ setSubject(subject?: string | null): this;
17
+ /** Reads the subject/patient reference for the allergy entry. */
18
+ getSubject(): string | undefined;
19
+ /** Writes the coded allergy substance. */
20
+ setCode(code?: string | null): this;
21
+ /** Reads the coded allergy substance. */
22
+ getCode(): string | undefined;
23
+ /** Writes the clinical status. */
24
+ setClinicalStatus(status?: string | null): this;
25
+ /** Reads the clinical status. */
26
+ getClinicalStatus(): string | undefined;
27
+ /** Writes the verification status. */
28
+ setVerificationStatus(status?: string | null): this;
29
+ /** Reads the verification status. */
30
+ getVerificationStatus(): string | undefined;
31
+ /** Writes the allergy category. */
32
+ setCategory(category?: string | null): this;
33
+ /** Reads the allergy category. */
34
+ getCategory(): string | undefined;
35
+ /** Writes the allergy criticality. */
36
+ setCriticality(criticality?: string | null): this;
37
+ /** Reads the allergy criticality. */
38
+ getCriticality(): string | undefined;
39
+ /** Writes the onset date/time. */
40
+ setOnsetDateTime(value?: string | null): this;
41
+ /** Reads the onset date/time. */
42
+ getOnsetDateTime(): string | undefined;
43
+ /** Writes the recorder reference. */
44
+ setRecorder(reference?: string | null): this;
45
+ /** Reads the recorder reference. */
46
+ getRecorder(): string | undefined;
47
+ /** Writes the linked contained-document identifier list. */
48
+ setContainedDocumentIdentifierList(identifiers: readonly string[]): this;
49
+ /** Reads the linked contained-document identifier list. */
50
+ getContainedDocumentIdentifierList(): string[];
51
+ }
@@ -0,0 +1,55 @@
1
+ import { ClinicalResourceEntryEditor } from './clinical-resource-entry-editor.js';
2
+ import { AllergyIntoleranceClaim } from '../models/interoperable-claims/allergy-intolerance-claims.js';
3
+ import { BundleEditableResourceTypes } from '../models/bundle-editor-types.js';
4
+ import { registerBundleEntryEditor } from './bundle-editor-registry.js';
5
+ /**
6
+ * Typed editor for one staged AllergyIntolerance resource entry.
7
+ *
8
+ * Use this from frontend/BFF bundle-authoring flows when the caller needs one
9
+ * allergy row with canonical claims-first accessors.
10
+ */
11
+ export class AllergyIntoleranceEntryEditor extends ClinicalResourceEntryEditor {
12
+ /** Writes the canonical allergy identifier. */
13
+ setIdentifier(identifier) { return this.setIdentifierValue(AllergyIntoleranceClaim.Identifier, identifier); }
14
+ /** Reads the canonical allergy identifier. */
15
+ getIdentifier() { return this.getIdentifierValue(AllergyIntoleranceClaim.Identifier); }
16
+ /** Ensures the allergy entry has one canonical `urn:uuid:*` identifier. */
17
+ ensureIdentifier() { return this.ensureIdentifierValue(AllergyIntoleranceClaim.Identifier); }
18
+ /** Writes the subject/patient reference for the allergy entry. */
19
+ setSubject(subject) { return this.setSubjectClaims(AllergyIntoleranceClaim.Subject, AllergyIntoleranceClaim.Patient, subject); }
20
+ /** Reads the subject/patient reference for the allergy entry. */
21
+ getSubject() { return this.getSubjectClaims(AllergyIntoleranceClaim.Subject, AllergyIntoleranceClaim.Patient); }
22
+ /** Writes the coded allergy substance. */
23
+ setCode(code) { return this.setScalarClaim(AllergyIntoleranceClaim.Code, code); }
24
+ /** Reads the coded allergy substance. */
25
+ getCode() { return this.getScalarClaim(AllergyIntoleranceClaim.Code); }
26
+ /** Writes the clinical status. */
27
+ setClinicalStatus(status) { return this.setScalarClaim(AllergyIntoleranceClaim.ClinicalStatus, status); }
28
+ /** Reads the clinical status. */
29
+ getClinicalStatus() { return this.getScalarClaim(AllergyIntoleranceClaim.ClinicalStatus); }
30
+ /** Writes the verification status. */
31
+ setVerificationStatus(status) { return this.setScalarClaim(AllergyIntoleranceClaim.VerificationStatus, status); }
32
+ /** Reads the verification status. */
33
+ getVerificationStatus() { return this.getScalarClaim(AllergyIntoleranceClaim.VerificationStatus); }
34
+ /** Writes the allergy category. */
35
+ setCategory(category) { return this.setScalarClaim(AllergyIntoleranceClaim.Category, category); }
36
+ /** Reads the allergy category. */
37
+ getCategory() { return this.getScalarClaim(AllergyIntoleranceClaim.Category); }
38
+ /** Writes the allergy criticality. */
39
+ setCriticality(criticality) { return this.setScalarClaim(AllergyIntoleranceClaim.Criticality, criticality); }
40
+ /** Reads the allergy criticality. */
41
+ getCriticality() { return this.getScalarClaim(AllergyIntoleranceClaim.Criticality); }
42
+ /** Writes the onset date/time. */
43
+ setOnsetDateTime(value) { return this.setScalarClaim(AllergyIntoleranceClaim.OnsetDateTime, value); }
44
+ /** Reads the onset date/time. */
45
+ getOnsetDateTime() { return this.getScalarClaim(AllergyIntoleranceClaim.OnsetDateTime); }
46
+ /** Writes the recorder reference. */
47
+ setRecorder(reference) { return this.setScalarClaim(AllergyIntoleranceClaim.Recorder, reference); }
48
+ /** Reads the recorder reference. */
49
+ getRecorder() { return this.getScalarClaim(AllergyIntoleranceClaim.Recorder); }
50
+ /** Writes the linked contained-document identifier list. */
51
+ setContainedDocumentIdentifierList(identifiers) { return this.setCsvClaimList(AllergyIntoleranceClaim.ContainedDocuments, identifiers); }
52
+ /** Reads the linked contained-document identifier list. */
53
+ getContainedDocumentIdentifierList() { return this.getCsvClaimList(AllergyIntoleranceClaim.ContainedDocuments); }
54
+ }
55
+ registerBundleEntryEditor(BundleEditableResourceTypes.allergyIntolerance, AllergyIntoleranceEntryEditor);
@@ -0,0 +1,37 @@
1
+ import type { AuthorityCatalogRecord, AuthorityResolution, AuthorityResolutionInput } from '../models/authority-resolution';
2
+ /**
3
+ * Builds one authority/root `did:web` from a bare host authority or URL.
4
+ *
5
+ * Examples:
6
+ * - `https://gw.example.org` -> `did:web:gw.example.org`
7
+ * - `localhost:3300` -> `did:web:localhost%3A3300`
8
+ */
9
+ export declare function buildAuthorityDidWeb(input: {
10
+ authority: string;
11
+ }): string;
12
+ /**
13
+ * Normalizes one authority base URL from either an explicit URL or one
14
+ * authority/root `did:web`.
15
+ */
16
+ export declare function resolveAuthorityBaseUrl(input: {
17
+ authorityBaseUrl?: string;
18
+ authorityDidWeb?: string;
19
+ }): string | undefined;
20
+ /**
21
+ * Builds one compatibility authority resolution when the caller only knows:
22
+ * - tenant context
23
+ * - one base URL or one root authority `did:web`
24
+ *
25
+ * This helper intentionally keeps the current hosted-DID fallback in one place
26
+ * so app code does not have to hand-invent `did:web` strings.
27
+ */
28
+ export declare function buildLegacyAuthorityResolution(input: AuthorityResolutionInput & Readonly<{
29
+ tenantId: string;
30
+ jurisdiction: string;
31
+ sector: string;
32
+ }>): AuthorityResolution;
33
+ /**
34
+ * Converts one resolution into a catalog-style record so runtimes can preload
35
+ * legacy fallback data into a shared resolver cache.
36
+ */
37
+ export declare function authorityResolutionToCatalogRecord(resolution: AuthorityResolution): AuthorityCatalogRecord;
@@ -0,0 +1,112 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { buildOrganizationDidWeb, getBaseUrlFromDidWeb } from './did.js';
3
+ function normalizeString(value) {
4
+ return typeof value === 'string' ? value.trim() : '';
5
+ }
6
+ function encodeDidWebAuthority(authority) {
7
+ return authority.replace(/:/g, '%3A').toLowerCase();
8
+ }
9
+ function normalizeAuthorityHost(value) {
10
+ const raw = normalizeString(value).replace(/\/+$/, '');
11
+ if (!raw)
12
+ return '';
13
+ if (/^https?:\/\//i.test(raw)) {
14
+ try {
15
+ return new URL(raw).host;
16
+ }
17
+ catch {
18
+ return raw.replace(/^https?:\/\//i, '');
19
+ }
20
+ }
21
+ return raw;
22
+ }
23
+ function protocolForAuthority(authority) {
24
+ const normalized = authority.trim().toLowerCase();
25
+ return normalized.startsWith('localhost')
26
+ || normalized.startsWith('127.0.0.1')
27
+ || normalized.startsWith('[::1]')
28
+ ? 'http'
29
+ : 'https';
30
+ }
31
+ function inferMatchedBy(input) {
32
+ if (normalizeString(input.subjectDid))
33
+ return 'subject-did';
34
+ if (normalizeString(input.subjectSameAs))
35
+ return 'subject-same-as';
36
+ if (normalizeString(input.authorityDidWeb))
37
+ return 'authority-did';
38
+ if (normalizeString(input.authorityBaseUrl))
39
+ return 'authority-base-url';
40
+ return 'tenant-context';
41
+ }
42
+ /**
43
+ * Builds one authority/root `did:web` from a bare host authority or URL.
44
+ *
45
+ * Examples:
46
+ * - `https://gw.example.org` -> `did:web:gw.example.org`
47
+ * - `localhost:3300` -> `did:web:localhost%3A3300`
48
+ */
49
+ export function buildAuthorityDidWeb(input) {
50
+ const authority = normalizeAuthorityHost(input.authority);
51
+ if (!authority)
52
+ throw new Error('buildAuthorityDidWeb requires authority.');
53
+ return `did:web:${encodeDidWebAuthority(authority)}`;
54
+ }
55
+ /**
56
+ * Normalizes one authority base URL from either an explicit URL or one
57
+ * authority/root `did:web`.
58
+ */
59
+ export function resolveAuthorityBaseUrl(input) {
60
+ const direct = normalizeString(input.authorityBaseUrl);
61
+ if (direct) {
62
+ const host = normalizeAuthorityHost(direct);
63
+ return host ? `${protocolForAuthority(host)}://${host}/` : undefined;
64
+ }
65
+ const did = normalizeString(input.authorityDidWeb);
66
+ if (!did)
67
+ return undefined;
68
+ return getBaseUrlFromDidWeb(did);
69
+ }
70
+ /**
71
+ * Builds one compatibility authority resolution when the caller only knows:
72
+ * - tenant context
73
+ * - one base URL or one root authority `did:web`
74
+ *
75
+ * This helper intentionally keeps the current hosted-DID fallback in one place
76
+ * so app code does not have to hand-invent `did:web` strings.
77
+ */
78
+ export function buildLegacyAuthorityResolution(input) {
79
+ const authorityDidWeb = normalizeString(input.authorityDidWeb)
80
+ || buildAuthorityDidWeb({ authority: normalizeString(input.authorityBaseUrl) });
81
+ const authorityBaseUrl = resolveAuthorityBaseUrl({
82
+ authorityBaseUrl: input.authorityBaseUrl,
83
+ authorityDidWeb,
84
+ });
85
+ const tenantDidWeb = buildOrganizationDidWeb({
86
+ hostDidWeb: authorityDidWeb,
87
+ tenantId: input.tenantId,
88
+ jurisdiction: input.jurisdiction,
89
+ version: normalizeString(input.version) || 'v1',
90
+ sector: input.sector,
91
+ });
92
+ return {
93
+ authorityDidWeb,
94
+ authorityBaseUrl,
95
+ tenantDidWeb,
96
+ metadataUrl: normalizeString(input.metadataUrl) || undefined,
97
+ source: 'legacy',
98
+ matchedBy: inferMatchedBy(input),
99
+ };
100
+ }
101
+ /**
102
+ * Converts one resolution into a catalog-style record so runtimes can preload
103
+ * legacy fallback data into a shared resolver cache.
104
+ */
105
+ export function authorityResolutionToCatalogRecord(resolution) {
106
+ return {
107
+ authorityDidWeb: resolution.authorityDidWeb,
108
+ authorityBaseUrl: resolution.authorityBaseUrl,
109
+ tenantDidWeb: resolution.tenantDidWeb,
110
+ metadataUrl: resolution.metadataUrl,
111
+ };
112
+ }
@@ -17,6 +17,17 @@ export type BackendMessageManagerMemOptions = Readonly<{
17
17
  *
18
18
  * This is the lowest reusable BFF/proxy slice before actor-specific SDK
19
19
  * facades appear.
20
+ *
21
+ * Normal deployment story:
22
+ * - the injected wallet is the unlocked wallet of the user profile runtime
23
+ * - that same profile wallet usually encrypts outbound messages and decrypts
24
+ * replies
25
+ *
26
+ * Optional deployment story:
27
+ * - one BFF/proxy may also own a separate service wallet for its own
28
+ * envelopes, signatures, confidential storage, or tenant-level messaging
29
+ * - that service wallet is a different actor and must not be confused with
30
+ * the user-profile wallet handled here
20
31
  */
21
32
  export declare class BackendMessageManagerMem {
22
33
  private readonly wallet;
@@ -12,6 +12,17 @@ function clone(value) {
12
12
  *
13
13
  * This is the lowest reusable BFF/proxy slice before actor-specific SDK
14
14
  * facades appear.
15
+ *
16
+ * Normal deployment story:
17
+ * - the injected wallet is the unlocked wallet of the user profile runtime
18
+ * - that same profile wallet usually encrypts outbound messages and decrypts
19
+ * replies
20
+ *
21
+ * Optional deployment story:
22
+ * - one BFF/proxy may also own a separate service wallet for its own
23
+ * envelopes, signatures, confidential storage, or tenant-level messaging
24
+ * - that service wallet is a different actor and must not be confused with
25
+ * the user-profile wallet handled here
15
26
  */
16
27
  export class BackendMessageManagerMem {
17
28
  wallet;
@@ -1,7 +1,8 @@
1
1
  // Copyright 2026 Conectate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ import { DidcommMessageTypes } from '../constants/didcomm.js';
2
3
  export const BundleDidcommEntryTypes = Object.freeze({
3
- Batch: 'Bundle-batch-request-v1.0',
4
- Document: 'Bundle-document-request-v1.0',
4
+ Batch: DidcommMessageTypes.BundleBatchRequest,
5
+ Document: DidcommMessageTypes.BundleDocumentRequest,
5
6
  });
6
7
  function clone(value) {
7
8
  return JSON.parse(JSON.stringify(value));
@@ -4,6 +4,7 @@ export type BuildBundleDocumentFromClaimsInput = Readonly<{
4
4
  claimsList: readonly BundleDocumentClaims[];
5
5
  subjectDid?: string;
6
6
  compositionType?: string;
7
+ compositionClaims?: BundleDocumentClaims;
7
8
  }>;
8
9
  export type ValidateBundleDocumentResult = Readonly<{
9
10
  ok: boolean;