gdc-sdk-node-ts 2.7.8 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -437,6 +437,12 @@ grant/deny operation and retains the original Communication identifier/thread.
437
437
  and `GatewayActiveConsentProvider` supplies `evaluateRequestedAccess(...)` from
438
438
  the GW Consent source of truth rather than a parallel application table.
439
439
  There is no `AccessRequest` FHIR resource or `AccessRequest.*` claim family.
440
+ The Communication itself uses the standard FHIR `notification` category;
441
+ `permission-request` is workflow meaning carried by the attached draft Consent,
442
+ not a custom category. See the
443
+ [HL7 category value set](https://www.hl7.org/fhir/valueset-communication-category.html),
444
+ [HL7 `v3-ActReason` BTG code system](http://terminology.hl7.org/CodeSystem/v3-ActReason),
445
+ and the [IHE compound normal/break-glass Consent example](https://profiles.ihe.net/ITI/PCF/Consent-ex-consent-advanced-normal-break-glass-restricted.json.html).
440
446
 
441
447
  ## Main Flows
442
448
 
@@ -497,6 +503,29 @@ Those belong to:
497
503
 
498
504
  ## Minimal Examples
499
505
 
506
+ ### Build the individual-controller DCR actor DID
507
+
508
+ The controller consumes the licensed member seat with role `RESPRSN`. A phone
509
+ or email stored on the Individual Organization remains contact data and does
510
+ not consume another seat. The role keeps its full type and value in protected
511
+ data; only the value is appended to the DID.
512
+
513
+ ```ts
514
+ import { buildIndividualMemberDidWebFromPrivateIdentifiers } from 'gdc-sdk-node-ts';
515
+
516
+ const individualControllerDid = buildIndividualMemberDidWebFromPrivateIdentifiers({
517
+ providerDidWeb: 'did:web:host.example.org:health-care:organization:taxid:VATES-B00112233',
518
+ secureIdTypeIndividual: 'UUID',
519
+ privateIdValueIndividual: 'a87e5b15-aea4-4475-9c7c-40aa88354b6f',
520
+ secureIdTypeMember: 'EMAIL',
521
+ privateIdValueMember: 'controller@example.org',
522
+ roleType: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode',
523
+ roleValue: 'RESPRSN',
524
+ });
525
+
526
+ // did:web:host.example.org:health-care:organization:taxid:VATES-B00112233:individual:UUID:zG9H82pae9SCXvec3D4YKqhX8bj8F1mRgzxMEdwXXonT7BWsvsUiP2u52sWQTeESpoMee:member:zG9DrMLpQW8eoCc9Ay9AFxuMGiswgJePpbUMz9svJCZ8tKjUd4xoExgCPA5jmHc6hPATJ:RESPRSN
527
+ ```
528
+
500
529
  ### Use shared invitation contract from Node
501
530
 
502
531
  ```ts
@@ -699,20 +728,26 @@ modules below.
699
728
  - draft/outbox helpers
700
729
  - document facade helpers
701
730
  - `cloneImportedClinicalDocumentForDemo(...)` for an explicit editable demo
702
- copy owned by an authenticated profile `actorDid`; direct summary updates
703
- use that same value as `sender` and the real hosted provider-tenant DID as
704
- `recipient`, never a portal alias
731
+ copy whose stable FHIR author/attester come from the protected
732
+ `clinicalCreator` export; direct summary updates use profile `actorDid` only
733
+ as `sender` and the real hosted provider-tenant DID as `recipient`, never a
734
+ portal alias
705
735
  - vital-sign helpers
706
736
 
707
737
  ### Composition provenance in clinical Bundles
708
738
 
709
- A document Bundle keeps `Composition.author` (who created the content) separate
710
- from `Composition.attester` (the registered personal or professional assignment
711
- that submitted/attested it). For a member or professional, the protected BFF
712
- profile selects only `owner` or `creator`; a `RelatedPerson` or
713
- `PractitionerRole` may be both author and attester when that actor created the
714
- content. DIDComm sender and signing keys remain audit/transport identities.
715
- See [Clinical writes from a Node BFF](./docs/101-BFF_CLINICAL_WRITES.md) and the
739
+ A document Bundle keeps `Composition.author` (the organization, EHR/patient
740
+ portal or individual that supplies the document) separate from
741
+ `Composition.attester` (the registered personal or professional assignment
742
+ that attested its content). A `RelatedPerson` or `PractitionerRole` is an
743
+ attester, never a shortcut for replacing the source author. The protected BFF
744
+ profile resolves both from its registered binding. DIDComm sender and signing
745
+ keys remain audit/transport identities.
746
+ The BFF never configures ledger routing or supplies channel/smart-contract
747
+ names. GW owns that decision and returns one transaction receipt with
748
+ per-resource CID/version evidence for a successful clinical Bundle.
749
+ See [Clinical writes from a Node BFF](./docs/101-BFF_CLINICAL_WRITES.md),
750
+ [multi-actor IPS export](./docs/101-MULTI_ACTOR_IPS_EXPORT.md), and the
716
751
  [gateway authorship contract](https://github.com/Global-DataCare/gwtemplate-node-ts/blob/main/docs/01-OVERVIEW-AND-GUIDES/101-01.N-AUTHENTICATED-CLINICAL-AUTHOR.md).
717
752
 
718
753
  ### Node runtime client
@@ -1,3 +1,5 @@
1
+ import { SecureIdTypesIndividual } from 'gdc-common-utils-ts';
2
+ export { buildIndividualMemberDidWebFromPrivateIdentifiers } from 'gdc-common-utils-ts';
1
3
  import type { FamilyRegistrationStatus } from 'gdc-common-utils-ts/utils/family-organization-summary';
2
4
  import type { PollOptions, SubmitAndPollResult } from './orchestration/client-port.js';
3
5
  import type { RouteContext } from './individual-onboarding.js';
@@ -77,8 +79,10 @@ export type IndividualOrganizationStartResult = {
77
79
  export type IndividualOrganizationBootstrapIdentity = {
78
80
  /** Technical UUID returned as `Bundle.data[0].resource.id`. */
79
81
  resourceId: string;
80
- /** Stable UUID-byte identifier serialized as multibase base58btc. */
81
- individualId: string;
82
+ /** Explicit governed identifier type serialized in the hosted DID path. */
83
+ secureIdTypeIndividual: typeof SecureIdTypesIndividual.Uuid;
84
+ /** SHA3-384 multihash of the UUID's canonical 16 bytes, as base58btc multibase. */
85
+ secureIdValueIndividual: string;
82
86
  /** Authoritative provider DID returned by GW in `Offer.offeredBy`. */
83
87
  providerDidWeb: string;
84
88
  /** Canonical child DID built beneath the exact provider DID returned by GW. */
@@ -108,4 +112,3 @@ export declare function startIndividualOrganizationWithDeps(deps: StartIndividua
108
112
  * individual suffix and never rewrites that provider lineage.
109
113
  */
110
114
  export declare function readIndividualOrganizationBootstrapIdentity(responseBody: unknown): IndividualOrganizationBootstrapIdentity | undefined;
111
- export {};
@@ -1,6 +1,7 @@
1
1
  // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
2
  import { ClaimsOfferSchemaorg, ClaimsOrganizationSchemaorg, ClaimsPersonSchemaorg, ClaimsServiceSchemaorg, } from 'gdc-common-utils-ts/constants';
3
- import { buildIndividualDidWeb, encodeHexToMultibase58btc, extractPrimaryClaims, readFamilyOrganizationSummaryFromResponseBody, } from 'gdc-common-utils-ts';
3
+ import { buildIndividualDidWeb, buildSecureIdValueIndividual, extractPrimaryClaims, readFamilyOrganizationSummaryFromResponseBody, SecureIdTypesIndividual, } from 'gdc-common-utils-ts';
4
+ export { buildIndividualMemberDidWebFromPrivateIdentifiers } from 'gdc-common-utils-ts';
4
5
  import { GwCoreLifecycleRequestType } from './constants/lifecycle.js';
5
6
  import { resolvePollOptionsFromSeconds } from './poll-options.js';
6
7
  export async function startIndividualOrganizationWithDeps(deps) {
@@ -106,18 +107,26 @@ export function readIndividualOrganizationBootstrapIdentity(responseBody) {
106
107
  const providerDidWeb = String(claims[ClaimsOfferSchemaorg.offeredBy] || '').trim();
107
108
  if (!resourceId || !providerDidWeb)
108
109
  return undefined;
109
- let individualId;
110
+ let secureIdValueIndividual;
110
111
  try {
111
- individualId = encodeHexToMultibase58btc(resourceId);
112
+ secureIdValueIndividual = buildSecureIdValueIndividual({
113
+ secureIdTypeIndividual: SecureIdTypesIndividual.Uuid,
114
+ privateIdValueIndividual: resourceId,
115
+ });
112
116
  }
113
117
  catch {
114
118
  return undefined;
115
119
  }
116
120
  return {
117
121
  resourceId,
118
- individualId,
122
+ secureIdTypeIndividual: SecureIdTypesIndividual.Uuid,
123
+ secureIdValueIndividual,
119
124
  providerDidWeb,
120
- subjectDid: buildIndividualDidWeb({ providerDidWeb, individualId }),
125
+ subjectDid: buildIndividualDidWeb({
126
+ providerDidWeb,
127
+ secureIdTypeIndividual: SecureIdTypesIndividual.Uuid,
128
+ secureIdValueIndividual,
129
+ }),
121
130
  };
122
131
  }
123
132
  function asRecord(value) {
@@ -515,7 +515,9 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
515
515
  * The attached payload must be a `Bundle.type=batch|collection`, and the
516
516
  * exact section is carried on the outer Communication. This flow is suitable
517
517
  * for vital-sign or other explicitly section-scoped updates; it does not
518
- * replace a multi-section IPS document.
518
+ * replace a multi-section IPS document. The terminal result may include one
519
+ * transaction receipt with per-resource CID/version evidence. Callers never
520
+ * supply or configure ledger channel or smart-contract names.
519
521
  */
520
522
  updateClinicalSection(ctx: RouteContext, input: ClinicalSectionUpdateInput): Promise<SubmitAndPollResult>;
521
523
  /**
@@ -525,7 +527,9 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
525
527
  * `entry[0]`; its `section[].entry[]` references delimit the updated data.
526
528
  * Direct callers pass the authenticated profile `actorDid` as `sender` and
527
529
  * the real hosted provider-tenant DID as `recipient`. A stable multibase URN
528
- * or portal DID/alias is never the authenticated clinical actor.
530
+ * or portal DID/alias is never the authenticated clinical actor. GW owns all
531
+ * ledger routing; callers receive evidence but never select a channel or
532
+ * smart contract.
529
533
  */
530
534
  updateClinicalSummary(ctx: RouteContext, input: ClinicalSummaryUpdateInput): Promise<SubmitAndPollResult>;
531
535
  /**
@@ -1010,7 +1010,9 @@ export class HttpRuntimeClient {
1010
1010
  * The attached payload must be a `Bundle.type=batch|collection`, and the
1011
1011
  * exact section is carried on the outer Communication. This flow is suitable
1012
1012
  * for vital-sign or other explicitly section-scoped updates; it does not
1013
- * replace a multi-section IPS document.
1013
+ * replace a multi-section IPS document. The terminal result may include one
1014
+ * transaction receipt with per-resource CID/version evidence. Callers never
1015
+ * supply or configure ledger channel or smart-contract names.
1014
1016
  */
1015
1017
  async updateClinicalSection(ctx, input) {
1016
1018
  return this.ingestCommunicationAndUpdateIndex(ctx, buildClinicalSectionUpdateIngestion(input));
@@ -1022,7 +1024,9 @@ export class HttpRuntimeClient {
1022
1024
  * `entry[0]`; its `section[].entry[]` references delimit the updated data.
1023
1025
  * Direct callers pass the authenticated profile `actorDid` as `sender` and
1024
1026
  * the real hosted provider-tenant DID as `recipient`. A stable multibase URN
1025
- * or portal DID/alias is never the authenticated clinical actor.
1027
+ * or portal DID/alias is never the authenticated clinical actor. GW owns all
1028
+ * ledger routing; callers receive evidence but never select a channel or
1029
+ * smart contract.
1026
1030
  */
1027
1031
  async updateClinicalSummary(ctx, input) {
1028
1032
  return this.ingestCommunicationAndUpdateIndex(ctx, buildClinicalSummaryUpdateIngestion(input));
@@ -307,11 +307,12 @@ type ClinicalUpdateRuntimeOptions = Readonly<{
307
307
  * Updates exactly one clinical section through a scoped batch/collection.
308
308
  * A `Bundle.type = batch` may mix typed create, update, and delete entries.
309
309
  * A delete targets `ResourceType/id`, carries no resource body, and may use
310
- * `ifMatch` for optimistic concurrency. GW authorizes it against the creator
311
- * DID plus the caller's linked verified login identity; contact identifiers
312
- * are never written into the clinical resource.
310
+ * `ifMatch` for optimistic concurrency. GW authorizes it against the stored
311
+ * attester assignment plus the caller's registered clinical creator binding;
312
+ * contact identifiers are never written into the clinical resource.
313
313
  * An externally authored `urn:*` may be preserved on first import, but a local
314
- * controller cannot subsequently update or delete that source-authored fact.
314
+ * local actor cannot subsequently update or delete that source-authored fact
315
+ * unless an explicit successor policy applies.
315
316
  */
316
317
  export type ClinicalSectionUpdateInput = ClinicalSectionUpdateCommunicationInput & ClinicalUpdateRuntimeOptions;
317
318
  /**
@@ -319,8 +320,9 @@ export type ClinicalSectionUpdateInput = ClinicalSectionUpdateCommunicationInput
319
320
  *
320
321
  * For the direct call, `sender` is the authenticated profile's operational
321
322
  * `actorDid`, and `recipient` is the real provider-tenant DID inside the host
322
- * that accommodates it. Neither value is a portal alias. When the document is
323
- * an editable demo clone, its `Composition.author` is that same `actorDid`.
323
+ * that accommodates it. Neither value is a portal alias. An editable demo
324
+ * clone obtains its stable FHIR author/attester from the protected
325
+ * `clinicalCreator` export, never from that `actorDid`.
324
326
  */
325
327
  export type ClinicalSummaryUpdateInput = ClinicalUpdateCommunicationInput & ClinicalUpdateRuntimeOptions;
326
328
  export declare function buildClinicalSectionUpdateIngestion(input: ClinicalSectionUpdateInput): CommunicationIngestionInput;
@@ -407,7 +409,12 @@ export type CommunicationParticipantRuntimeSearchInput = {
407
409
  };
408
410
  /** Subject/requester filters for canonical permission-request Communications. */
409
411
  export type ProfessionalAccessRequestSearchInput = CommunicationParticipantRuntimeSearchInput;
410
- /** Restricts a Communication participant search to permission requests. */
412
+ /**
413
+ * Restricts a Communication participant search to standard notifications.
414
+ * A permission request is identified by its attached draft Consent contract;
415
+ * it is not an invented fifth FHIR category. See
416
+ * https://www.hl7.org/fhir/valueset-communication-category.html
417
+ */
411
418
  export declare function buildProfessionalAccessRequestSearchInput(input: ProfessionalAccessRequestSearchInput): CommunicationParticipantRuntimeSearchInput;
412
419
  export type ClinicalDateRange = DateRange;
413
420
  export type ClinicalBundleSearchInput = Omit<BundleSearchQuery, 'section' | 'searchParams'> & {
@@ -6,6 +6,7 @@ import { CommunicationClaim } from 'gdc-common-utils-ts/models/interoperable-cla
6
6
  import { BundleEditor, buildCommunicationParticipantSearchBundle, buildBlockchainArtifactDocumentReference, BundleQuery, createInteroperableResourceOperationEditor, IndividualOrganizationLifecycleEditor, LicenseOfferSearchEditor, LicenseOrderSearchEditor, InteroperableLifecycleStatuses, LicenseListSearchEditor, buildLicenseIssueEntry, buildLicensePurchaseEntry, } from 'gdc-common-utils-ts';
7
7
  import { EmployeeBundleOperations, EmployeeResourceTypes, } from 'gdc-common-utils-ts/utils/employee';
8
8
  import { DeviceAppTypes, DeviceUserClasses } from 'gdc-common-utils-ts/constants/device';
9
+ import { CommunicationCategoryCodes } from 'gdc-common-utils-ts/constants/communication';
9
10
  import { addFhirResourceToCommunication, createCommunicationResource, buildClinicalSummaryCommunicationJob, buildPermissionRequestCommunication, createClinicalSectionUpdateOutboxJob, createClinicalSummaryUpdateOutboxJob, readClinicalSummaryOperationResult, TransportProfiles, } from 'gdc-sdk-core-ts';
10
11
  import { GwCoreLifecycleRequestMethod, GwCoreLifecycleRequestType, GwCoreLifecycleTodo, } from './constants/lifecycle.js';
11
12
  import { buildEmployeeSearchBundle, ConsentClaims, } from 'gdc-sdk-core-ts';
@@ -27,13 +28,18 @@ export function buildClinicalSummaryUpdateIngestion(input) {
27
28
  pollOptions: input.pollOptions,
28
29
  };
29
30
  }
30
- /** Restricts a Communication participant search to permission requests. */
31
+ /**
32
+ * Restricts a Communication participant search to standard notifications.
33
+ * A permission request is identified by its attached draft Consent contract;
34
+ * it is not an invented fifth FHIR category. See
35
+ * https://www.hl7.org/fhir/valueset-communication-category.html
36
+ */
31
37
  export function buildProfessionalAccessRequestSearchInput(input) {
32
38
  return {
33
39
  ...input,
34
40
  searchParams: {
35
41
  ...input.searchParams,
36
- [CommunicationClaim.Category]: 'permission-request',
42
+ [CommunicationClaim.Category]: CommunicationCategoryCodes.Notification.attributeValue,
37
43
  },
38
44
  };
39
45
  }
@@ -520,7 +526,7 @@ export async function requestProfessionalAccessWithDeps(routeCtx, input, deps) {
520
526
  });
521
527
  const communicationClaims = {
522
528
  ...communication.claims,
523
- [CommunicationClaim.Category]: 'permission-request',
529
+ [CommunicationClaim.Category]: CommunicationCategoryCodes.Notification.attributeValue,
524
530
  [CommunicationClaim.NoteText]: communication.text,
525
531
  };
526
532
  const persistedCommunication = { ...communication, claims: communicationClaims };
@@ -343,7 +343,11 @@ export declare class ServerProfileSessionManager {
343
343
  exportClinicalCreatorIps(input: Readonly<{
344
344
  ownerId: string;
345
345
  profileId: string;
346
- /** Closed BFF choice: content owner or authenticated registered creator. */
346
+ /**
347
+ * Deprecated compatibility choice. The high-level clone/section helpers
348
+ * derive the final professional or individual-member author boundary
349
+ * from the returned protected binding.
350
+ */
347
351
  sourceAuthor?: ClinicalSourceAuthorSelection;
348
352
  }>): Promise<ClinicalCreatorIpsExport>;
349
353
  enroll(input: ServerProfileEnrollmentInput): Promise<ServerProfileRecord>;
@@ -437,10 +441,13 @@ export declare class ServerProfileSessionManager {
437
441
  private now;
438
442
  }
439
443
  /**
440
- * Exports the stable FHIR IPS creator attached to a server profile. The
441
- * optional closed selection determines whether the owner or the authenticated
442
- * registered creator authored the content. DIDComm sender and signing keys
443
- * remain transport/audit evidence and never become FHIR provenance.
444
+ * Exports the stable FHIR IPS source author and attester attached to a server
445
+ * profile. The returned protected binding lets high-level helpers use the
446
+ * stable legal organization URN plus PractitionerRole for professionals, or
447
+ * one RelatedPerson urn:uuid as both author and attester for individual
448
+ * members/controllers. The optional selection remains only for backwards
449
+ * compatibility. DIDComm sender and signing keys remain transport/audit
450
+ * evidence and never become FHIR provenance.
444
451
  */
445
452
  export declare function exportServerProfileClinicalCreatorIps(profile: ServerProfileRecord, options?: Readonly<{
446
453
  sourceAuthor?: ClinicalSourceAuthorSelection;
@@ -829,10 +829,13 @@ function requireBase64UrlSeed32(seed) {
829
829
  }
830
830
  }
831
831
  /**
832
- * Exports the stable FHIR IPS creator attached to a server profile. The
833
- * optional closed selection determines whether the owner or the authenticated
834
- * registered creator authored the content. DIDComm sender and signing keys
835
- * remain transport/audit evidence and never become FHIR provenance.
832
+ * Exports the stable FHIR IPS source author and attester attached to a server
833
+ * profile. The returned protected binding lets high-level helpers use the
834
+ * stable legal organization URN plus PractitionerRole for professionals, or
835
+ * one RelatedPerson urn:uuid as both author and attester for individual
836
+ * members/controllers. The optional selection remains only for backwards
837
+ * compatibility. DIDComm sender and signing keys remain transport/audit
838
+ * evidence and never become FHIR provenance.
836
839
  */
837
840
  export function exportServerProfileClinicalCreatorIps(profile, options = {}) {
838
841
  if (!profile.clinicalCreatorBinding) {
package/dist/session.d.ts CHANGED
@@ -8,7 +8,7 @@ import { OrganizationEmployeeSdk } from './orchestration/organization-employee-s
8
8
  import { ProfessionalSdk } from './orchestration/professional-sdk.js';
9
9
  import { DigitalTwinSdk } from './orchestration/digital-twin-sdk.js';
10
10
  import type { RuntimeClient } from './orchestration/client-port.js';
11
- import { type DemoClinicalDocumentResourceIdContext } from 'gdc-sdk-core-ts';
11
+ import { type ClinicalCreatorIpsExport, type DemoClinicalDocumentResourceIdContext } from 'gdc-sdk-core-ts';
12
12
  export type NodeCapability = Capability;
13
13
  export type NodeActorSessionContext = {
14
14
  actorKind: ActorKind;
@@ -24,6 +24,8 @@ export type NodeActorSessionContext = {
24
24
  */
25
25
  export type ActorSessionContext = NodeActorSessionContext;
26
26
  export type DemoClinicalDocumentCloneOptions = Readonly<{
27
+ /** Protected profile projection; supplies stable FHIR author and attester. */
28
+ clinicalCreator?: ClinicalCreatorIpsExport;
27
29
  createResourceId?: (context: DemoClinicalDocumentResourceIdContext) => string;
28
30
  }>;
29
31
  /**
@@ -56,9 +58,9 @@ export declare class ActorSession {
56
58
  /** Materializes the digital-twin facade for an organization employee or professional actor. */
57
59
  asDigitalTwin(): DigitalTwinSdk;
58
60
  /**
59
- * Creates an editable demo copy whose `Composition.author` is this
60
- * authenticated profile's operational `actorDid`. The actor is never taken
61
- * from a stable multibase URN or a DID/alias supplied by a portal.
61
+ * Creates an editable demo copy whose stable FHIR author/attester come from
62
+ * `options.clinicalCreator`. This session's operational `actorDid` remains a
63
+ * compatibility fallback and belongs in the later write's sender field.
62
64
  */
63
65
  cloneImportedClinicalDocumentForDemo(bundle: Record<string, unknown>, options?: DemoClinicalDocumentCloneOptions): Record<string, any>;
64
66
  private requireClient;
package/dist/session.js CHANGED
@@ -71,9 +71,9 @@ export class ActorSession {
71
71
  return new DigitalTwinSdk(this.requireClient(), this.actorDid);
72
72
  }
73
73
  /**
74
- * Creates an editable demo copy whose `Composition.author` is this
75
- * authenticated profile's operational `actorDid`. The actor is never taken
76
- * from a stable multibase URN or a DID/alias supplied by a portal.
74
+ * Creates an editable demo copy whose stable FHIR author/attester come from
75
+ * `options.clinicalCreator`. This session's operational `actorDid` remains a
76
+ * compatibility fallback and belongs in the later write's sender field.
77
77
  */
78
78
  cloneImportedClinicalDocumentForDemo(bundle, options = {}) {
79
79
  const actorDid = String(this.actorDid || '').trim();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gdc-sdk-node-ts",
3
- "version": "2.7.8",
3
+ "version": "2.9.0",
4
4
  "description": "Next-generation Node runtime package for the GDC SDK family",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Antifraud Services Inc.",
@@ -38,8 +38,8 @@
38
38
  "test:e2e:live-gw:clean": "bash ./scripts/run-live-gw-clean.sh"
39
39
  },
40
40
  "dependencies": {
41
- "gdc-common-utils-ts": "2.8.7",
42
- "gdc-sdk-core-ts": "2.5.6"
41
+ "gdc-common-utils-ts": "2.9.3",
42
+ "gdc-sdk-core-ts": "2.9.1"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^20.14.10",