gdc-sdk-node-ts 0.9.0 → 0.12.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 +89 -2
- package/dist/constants/lifecycle.d.ts +1 -0
- package/dist/constants/lifecycle.js +2 -0
- package/dist/gdc-session-bridge.js +6 -2
- package/dist/host-onboarding.d.ts +6 -39
- package/dist/host-onboarding.js +8 -38
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/individual-onboarding.d.ts +1 -0
- package/dist/individual-onboarding.js +1 -0
- package/dist/individual-start.d.ts +1 -10
- package/dist/legacy-compat.d.ts +2 -0
- package/dist/legacy-compat.js +1 -0
- package/dist/node-runtime-client.d.ts +87 -9
- package/dist/node-runtime-client.js +232 -25
- package/dist/orchestration/client-port.d.ts +21 -1
- package/dist/orchestration/host-onboarding-sdk.d.ts +16 -4
- package/dist/orchestration/host-onboarding-sdk.js +22 -1
- package/dist/orchestration/individual-controller-sdk.d.ts +36 -1
- package/dist/orchestration/individual-controller-sdk.js +51 -0
- package/dist/orchestration/organization-controller-sdk.d.ts +58 -1
- package/dist/orchestration/organization-controller-sdk.js +77 -0
- package/dist/orchestration/personal-sdk.d.ts +17 -1
- package/dist/orchestration/personal-sdk.js +32 -0
- package/dist/order-offer-summary.d.ts +6 -0
- package/dist/order-offer-summary.js +11 -0
- package/dist/organization-license-order.d.ts +40 -0
- package/dist/organization-license-order.js +42 -0
- package/dist/resource-operations.d.ts +153 -0
- package/dist/resource-operations.js +190 -13
- package/dist/session.js +1 -1
- package/package.json +13 -4
package/README.md
CHANGED
|
@@ -14,6 +14,24 @@ Use this package when your backend needs to:
|
|
|
14
14
|
This package is for runtime execution. It is not the place where the canonical
|
|
15
15
|
business contract is defined.
|
|
16
16
|
|
|
17
|
+
Important test-harness boundary:
|
|
18
|
+
|
|
19
|
+
- `gdc-sdk-node-ts` is not the product BFF
|
|
20
|
+
- the live E2E suite simulates a controlled `virtual API` with a BFF-like role
|
|
21
|
+
only to validate GW CORE lifecycles end to end
|
|
22
|
+
- the current live suites run with the future `user job manager` queue disabled,
|
|
23
|
+
so every high-level call goes directly through that controlled `virtual API`
|
|
24
|
+
- app-side job queues, offline retry, local vault/read models, and the future
|
|
25
|
+
user job manager are separate follow-up concerns
|
|
26
|
+
|
|
27
|
+
Important live-run rule:
|
|
28
|
+
|
|
29
|
+
- the canonical live E2E result must come from the user's real terminal/TTY
|
|
30
|
+
- do not assume an AI agent sandbox has equivalent localhost, Docker, DNS, or
|
|
31
|
+
GCP connectivity
|
|
32
|
+
- if sandboxed runs disagree with the user's terminal, trust the user's
|
|
33
|
+
terminal for live GW validation
|
|
34
|
+
|
|
17
35
|
Architectural rule:
|
|
18
36
|
|
|
19
37
|
- shared contracts and actor boundaries come from `gdc-sdk-core-ts`
|
|
@@ -44,10 +62,16 @@ If you are integrating this package for the first time, open these in order:
|
|
|
44
62
|
5. [gdc-sdk-core-ts/docs/101-SDK_FLOWS.md](https://github.com/Global-DataCare/gdc-sdk-core-ts/blob/main/docs/101-SDK_FLOWS.md)
|
|
45
63
|
Actor split and business-flow map across organization, individual,
|
|
46
64
|
permissions, invitation, import, and SMART flows.
|
|
47
|
-
6. [
|
|
65
|
+
6. [gwtemplate-node-ts/docs/PORTAL_API_TO_GW_CORE.md](https://github.com/Global-DataCare/gwtemplate-node-ts/blob/main/docs/PORTAL_API_TO_GW_CORE.md)
|
|
66
|
+
Canonical portal/BFF functional map over GW CORE, including the domain
|
|
67
|
+
split between `employees`, `related persons`, `members`, and `consents`.
|
|
68
|
+
7. [gdc-common-utils-ts/src/examples/](https://github.com/Global-DataCare/gdc-common-utils-ts/tree/main/src/examples)
|
|
48
69
|
Shared payload values used by the docs and tests.
|
|
49
|
-
|
|
70
|
+
8. [gdc-common-utils-ts/docs/101-LIFECYCLE.md](https://github.com/Global-DataCare/gdc-common-utils-ts/blob/main/docs/101-LIFECYCLE.md)
|
|
50
71
|
Canonical `enable/disable/delete` semantics and copy/paste placeholders.
|
|
72
|
+
9. [docs/NEXT_STEPS.md](./docs/NEXT_STEPS.md)
|
|
73
|
+
Follow-up scope after GW CORE live validation, including the future user job
|
|
74
|
+
manager boundary.
|
|
51
75
|
|
|
52
76
|
If you need the shortest path:
|
|
53
77
|
|
|
@@ -98,12 +122,20 @@ Before running that suite, read:
|
|
|
98
122
|
|
|
99
123
|
- [docs/101-LIVE_GW_LOCAL.md](./docs/101-LIVE_GW_LOCAL.md)
|
|
100
124
|
|
|
125
|
+
Execution requirement:
|
|
126
|
+
|
|
127
|
+
- run the live suite from a real user terminal/TTY
|
|
128
|
+
- if an AI agent is assisting, it should prefer a long-lived TTY process and
|
|
129
|
+
avoid treating sandbox-local connectivity failures as product failures
|
|
130
|
+
|
|
101
131
|
Teaching rule:
|
|
102
132
|
|
|
103
133
|
- defaults come from `gdc-common-utils-ts/examples`
|
|
104
134
|
- override with env vars only when your tenant, bearer, or route is different
|
|
105
135
|
- local GW default is `http://127.0.0.1:3000`
|
|
106
136
|
- Docker-exposed GW can be overridden with `BASE_URL=http://127.0.0.1:8000`
|
|
137
|
+
- `LIVE_GW_E2E_EXECUTION_MODE=direct` is the current and only supported mode
|
|
138
|
+
for live validation; queued app-side job management is a later phase
|
|
107
139
|
|
|
108
140
|
Current live flow covered by the test suite:
|
|
109
141
|
|
|
@@ -118,6 +150,47 @@ Current live flow covered by the test suite:
|
|
|
118
150
|
7. verify the returned bundle document contains both medication statements
|
|
119
151
|
8. persist audit/debug traces in `test-results/*.jsonl`
|
|
120
152
|
|
|
153
|
+
What is still not fully covered as one single root lifecycle:
|
|
154
|
+
|
|
155
|
+
- initial organization license listing
|
|
156
|
+
- extra-seat activation after the portal-side fictitious payment confirmation
|
|
157
|
+
- relisting licenses after seat activation
|
|
158
|
+
- one employee bundle with employee `A` and employee `B`
|
|
159
|
+
- selective disable/purge validation across both employees
|
|
160
|
+
- consent escalation from partial IPS access to broader IPS access
|
|
161
|
+
- final cleanup of consent, individual, remaining employees, and tenant
|
|
162
|
+
|
|
163
|
+
Current invoice/readback behavior:
|
|
164
|
+
|
|
165
|
+
- both host and individual `Order/_batch-response` flows now return the flat
|
|
166
|
+
compatibility claims and an embedded invoice `Bundle`
|
|
167
|
+
- the invoice bundle contains one FHIR `Invoice`, one PDF
|
|
168
|
+
`DocumentReference`, and one structured JSON/XML `DocumentReference`
|
|
169
|
+
- live suites can read that bundle back through the same high-level response
|
|
170
|
+
body that the virtual API exposes to the simulated front
|
|
171
|
+
|
|
172
|
+
Current runtime boundary:
|
|
173
|
+
|
|
174
|
+
- `OrganizationControllerSdk.confirmOrganizationLicenseOrder(...)` now uses the
|
|
175
|
+
public host `Order/_batch` route used by GW CORE for portal-managed
|
|
176
|
+
post-payment seat activation
|
|
177
|
+
- the long root lifecycle is still not fully closed because the suite does not
|
|
178
|
+
yet orchestrate the whole `license list -> pay -> confirm -> relist -> two
|
|
179
|
+
employees -> selective purge -> cleanup` dialogue as one single test
|
|
180
|
+
|
|
181
|
+
The exact pending release-readiness checklist lives in:
|
|
182
|
+
|
|
183
|
+
- [docs/NEXT_STEPS.md](./docs/NEXT_STEPS.md)
|
|
184
|
+
|
|
185
|
+
Optional live lifecycle extension:
|
|
186
|
+
|
|
187
|
+
- set `RUN_LIVE_GW_E2E_INDIVIDUAL_LIFECYCLE=1` to extend the same suite with
|
|
188
|
+
`disableIndividual(...)` + `purgeIndividual(...)` against the real
|
|
189
|
+
`gwtemplate-node-ts` runtime contract
|
|
190
|
+
- this extra block is intentionally separate from the default happy path
|
|
191
|
+
because it changes lifecycle state and should only run when that tenant/test
|
|
192
|
+
subject is disposable
|
|
193
|
+
|
|
121
194
|
Shared example source of truth:
|
|
122
195
|
|
|
123
196
|
- tenant/route/controller/professional defaults:
|
|
@@ -141,6 +214,20 @@ Run the full live runtime baseline:
|
|
|
141
214
|
npm run test:e2e:live-gw
|
|
142
215
|
```
|
|
143
216
|
|
|
217
|
+
Select one live transport profile from the same Node entrypoint:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
npm run test:e2e:live-gw:didcomm-plain
|
|
221
|
+
npm run test:e2e:live-gw:legacy-fhir
|
|
222
|
+
npm run test:e2e:live-gw:all
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Profile note:
|
|
226
|
+
|
|
227
|
+
- `didcomm-plain` is the current live baseline implemented by the Node runtime client
|
|
228
|
+
- `legacy-fhir` exercises raw `application/fhir+json` async batch submission for `org.hl7.fhir.*`
|
|
229
|
+
- `all` runs every implemented profile from the same suite file
|
|
230
|
+
|
|
144
231
|
Run the IPS ingestion/search branch as well:
|
|
145
232
|
|
|
146
233
|
```bash
|
|
@@ -31,6 +31,7 @@ export declare const GwCoreLifecycleRequestType: Readonly<{
|
|
|
31
31
|
readonly IndividualOrganizationRegistration: "SubjectOrg-registration-form-v1.0";
|
|
32
32
|
readonly IndividualOrganizationDisable: "Family-disable-request-v1.0";
|
|
33
33
|
readonly IndividualOrganizationPurge: "Family-purge-request-v1.0";
|
|
34
|
+
readonly IndividualMemberPurge: "RelatedPerson-purge-request-v1.0";
|
|
34
35
|
}>;
|
|
35
36
|
/**
|
|
36
37
|
* Named TODO ids kept close to the current lifecycle implementation so the
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
|
|
2
|
+
import { LifecycleRequestType } from 'gdc-common-utils-ts';
|
|
2
3
|
/**
|
|
3
4
|
* GW CORE lifecycle route/action tokens used by the Node runtime SDK.
|
|
4
5
|
*
|
|
@@ -32,6 +33,7 @@ export const GwCoreLifecycleRequestType = Object.freeze({
|
|
|
32
33
|
IndividualOrganizationRegistration: 'SubjectOrg-registration-form-v1.0',
|
|
33
34
|
IndividualOrganizationDisable: 'Family-disable-request-v1.0',
|
|
34
35
|
IndividualOrganizationPurge: 'Family-purge-request-v1.0',
|
|
36
|
+
IndividualMemberPurge: LifecycleRequestType.RelatedPersonPurge,
|
|
35
37
|
});
|
|
36
38
|
/**
|
|
37
39
|
* Named TODO ids kept close to the current lifecycle implementation so the
|
|
@@ -3,14 +3,18 @@ import { ActorCapabilities } from 'gdc-common-utils-ts/constants/actor-session';
|
|
|
3
3
|
import { expandActorSessionDescriptorToFacades, filterCapabilitiesForActor, } from 'gdc-sdk-core-ts';
|
|
4
4
|
import { ActorSession, NodeActorSession } from './session.js';
|
|
5
5
|
const capabilityMap = {
|
|
6
|
-
[ActorCapabilities.
|
|
7
|
-
[ActorCapabilities.
|
|
6
|
+
[ActorCapabilities.HostingActivateOrganization]: ActorCapabilities.HostingActivateOrganization,
|
|
7
|
+
[ActorCapabilities.HostingConfirmOrder]: ActorCapabilities.HostingConfirmOrder,
|
|
8
|
+
[ActorCapabilities.HostingDisableHost]: ActorCapabilities.HostingDisableHost,
|
|
9
|
+
[ActorCapabilities.HostingPurgeHost]: ActorCapabilities.HostingPurgeHost,
|
|
8
10
|
[ActorCapabilities.OrganizationCreateEmployee]: ActorCapabilities.OrganizationCreateEmployee,
|
|
9
11
|
[ActorCapabilities.OrganizationActivateDevice]: ActorCapabilities.OrganizationActivateDevice,
|
|
10
12
|
[ActorCapabilities.OrganizationIssueActivationCode]: ActorCapabilities.OrganizationIssueActivationCode,
|
|
11
13
|
[ActorCapabilities.OrganizationRequestSmartToken]: ActorCapabilities.OrganizationRequestSmartToken,
|
|
12
14
|
[ActorCapabilities.OrganizationDisableEmployee]: ActorCapabilities.OrganizationDisableEmployee,
|
|
13
15
|
[ActorCapabilities.OrganizationPurgeEmployee]: ActorCapabilities.OrganizationPurgeEmployee,
|
|
16
|
+
[ActorCapabilities.OrganizationDisableTenant]: ActorCapabilities.OrganizationDisableTenant,
|
|
17
|
+
[ActorCapabilities.OrganizationPurgeTenant]: ActorCapabilities.OrganizationPurgeTenant,
|
|
14
18
|
[ActorCapabilities.IndividualBootstrap]: ActorCapabilities.IndividualBootstrap,
|
|
15
19
|
[ActorCapabilities.IndividualDisable]: ActorCapabilities.IndividualDisable,
|
|
16
20
|
[ActorCapabilities.IndividualPurge]: ActorCapabilities.IndividualPurge,
|
|
@@ -1,42 +1,9 @@
|
|
|
1
|
-
import type { PollOptions, SubmitAndPollResult } from './orchestration/client-port.js';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* Compatibility re-export.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* The canonical host/hosting facade contract now lives in `gdc-sdk-core-ts` so
|
|
5
|
+
* browser and Node runtimes can share the same orchestration surface. This
|
|
6
|
+
* file stays as a stable import path for existing Node consumers.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
hostNetwork?: string;
|
|
11
|
-
/** @deprecated Use `hostNetwork`. */
|
|
12
|
-
sector?: string;
|
|
13
|
-
controllerDid?: string;
|
|
14
|
-
hostDid?: string;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Input for legal-organization order confirmation in the host registry.
|
|
18
|
-
*/
|
|
19
|
-
export type LegalOrganizationOrderInput = {
|
|
20
|
-
offerId: string;
|
|
21
|
-
jurisdiction?: string;
|
|
22
|
-
hostNetwork?: string;
|
|
23
|
-
/** @deprecated Use `hostNetwork`. */
|
|
24
|
-
sector?: string;
|
|
25
|
-
dataType?: string;
|
|
26
|
-
additionalClaims?: Record<string, unknown>;
|
|
27
|
-
timeoutSeconds?: number;
|
|
28
|
-
intervalSeconds?: number;
|
|
29
|
-
};
|
|
30
|
-
type ConfirmLegalOrganizationOrderDeps = {
|
|
31
|
-
input: LegalOrganizationOrderInput;
|
|
32
|
-
hostCtx: HostRouteContext;
|
|
33
|
-
defaultTimeoutMs?: number;
|
|
34
|
-
defaultIntervalMs?: number;
|
|
35
|
-
hostRegistryOrderBatchPath: (ctx: HostRouteContext) => string;
|
|
36
|
-
hostRegistryOrderPollPath: (ctx: HostRouteContext) => string;
|
|
37
|
-
submitAndPoll: (submitPath: string, pollPath: string, payload: {
|
|
38
|
-
thid?: string;
|
|
39
|
-
} & Record<string, unknown>, options?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
40
|
-
};
|
|
41
|
-
export declare function confirmLegalOrganizationOrderWithDeps(deps: ConfirmLegalOrganizationOrderDeps): Promise<SubmitAndPollResult>;
|
|
42
|
-
export {};
|
|
8
|
+
export { confirmLegalOrganizationOrderWithDeps, HostLifecycleRequestType, HostedTenantLifecycleRequestType, submitHostedTenantLifecycleWithDeps, } from 'gdc-sdk-core-ts';
|
|
9
|
+
export type { HostingControllerFacade, HostLifecycleInput, HostRouteContext, HostedTenantLifecycleInput, LegalOrganizationOrderInput, } from 'gdc-sdk-core-ts';
|
package/dist/host-onboarding.js
CHANGED
|
@@ -1,39 +1,9 @@
|
|
|
1
1
|
// Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
'Order.acceptedOffer.identifier': offerId,
|
|
11
|
-
...(deps.input.additionalClaims || {}),
|
|
12
|
-
};
|
|
13
|
-
const payload = {
|
|
14
|
-
jti: `jti-${createRuntimeUuid()}`,
|
|
15
|
-
iss: String(deps.hostCtx.controllerDid || '').trim() || undefined,
|
|
16
|
-
aud: String(deps.hostCtx.hostDid || '').trim() || undefined,
|
|
17
|
-
type: 'application/didcomm-plain+json',
|
|
18
|
-
thid: `order-${createRuntimeUuid()}`,
|
|
19
|
-
body: {
|
|
20
|
-
data: [{
|
|
21
|
-
type: deps.input.dataType || 'Organization-order-request-v1.0',
|
|
22
|
-
meta: { claims },
|
|
23
|
-
resource: { meta: { claims } },
|
|
24
|
-
}],
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
const pollOptions = resolvePollOptionsFromSeconds(deps.input.timeoutSeconds, deps.input.intervalSeconds, {
|
|
28
|
-
timeoutMs: deps.defaultTimeoutMs,
|
|
29
|
-
intervalMs: deps.defaultIntervalMs,
|
|
30
|
-
});
|
|
31
|
-
return deps.submitAndPoll(deps.hostRegistryOrderBatchPath(deps.hostCtx), deps.hostRegistryOrderPollPath(deps.hostCtx), payload, pollOptions);
|
|
32
|
-
}
|
|
33
|
-
function createRuntimeUuid() {
|
|
34
|
-
const fromCrypto = globalThis.crypto?.randomUUID?.();
|
|
35
|
-
if (fromCrypto) {
|
|
36
|
-
return fromCrypto;
|
|
37
|
-
}
|
|
38
|
-
return `fallback-${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
39
|
-
}
|
|
2
|
+
/**
|
|
3
|
+
* Compatibility re-export.
|
|
4
|
+
*
|
|
5
|
+
* The canonical host/hosting facade contract now lives in `gdc-sdk-core-ts` so
|
|
6
|
+
* browser and Node runtimes can share the same orchestration surface. This
|
|
7
|
+
* file stays as a stable import path for existing Node consumers.
|
|
8
|
+
*/
|
|
9
|
+
export { confirmLegalOrganizationOrderWithDeps, HostLifecycleRequestType, HostedTenantLifecycleRequestType, submitHostedTenantLifecycleWithDeps, } from 'gdc-sdk-core-ts';
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,10 @@ export * from './individual-start.js';
|
|
|
8
8
|
export * from './individual-onboarding.js';
|
|
9
9
|
export * from './device-activation.js';
|
|
10
10
|
export * from './smart-token.js';
|
|
11
|
+
export * from './order-offer-summary.js';
|
|
12
|
+
export * from './organization-license-order.js';
|
|
11
13
|
export * from './resource-operations.js';
|
|
14
|
+
export * from './constants/lifecycle.js';
|
|
12
15
|
export * from './consent-claim-helpers.js';
|
|
13
16
|
export * from './session.js';
|
|
14
17
|
export * from './node-runtime-client.js';
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,10 @@ export * from './individual-start.js';
|
|
|
9
9
|
export * from './individual-onboarding.js';
|
|
10
10
|
export * from './device-activation.js';
|
|
11
11
|
export * from './smart-token.js';
|
|
12
|
+
export * from './order-offer-summary.js';
|
|
13
|
+
export * from './organization-license-order.js';
|
|
12
14
|
export * from './resource-operations.js';
|
|
15
|
+
export * from './constants/lifecycle.js';
|
|
13
16
|
export * from './consent-claim-helpers.js';
|
|
14
17
|
export * from './session.js';
|
|
15
18
|
export * from './node-runtime-client.js';
|
|
@@ -8,6 +8,7 @@ export async function confirmIndividualOrganizationOrderWithDeps(deps) {
|
|
|
8
8
|
const orderClaims = {
|
|
9
9
|
'@context': 'org.schema',
|
|
10
10
|
'Order.acceptedOffer.identifier': offerId,
|
|
11
|
+
...(deps.input.additionalClaims || {}),
|
|
11
12
|
};
|
|
12
13
|
const payload = {
|
|
13
14
|
jti: `jti-${createRuntimeUuid()}`,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PollOptions, SubmitAndPollResult } from './orchestration/client-port.js';
|
|
2
2
|
import type { RouteContext } from './individual-onboarding.js';
|
|
3
|
+
import type { OfferPreview } from './order-offer-summary.js';
|
|
3
4
|
export type IndividualOrganizationBootstrapInput = {
|
|
4
5
|
/**
|
|
5
6
|
* Preferred route identifier for the selected personal indexing service provider.
|
|
@@ -54,16 +55,6 @@ export type IndividualOrganizationBootstrapInput = {
|
|
|
54
55
|
timeoutSeconds?: number;
|
|
55
56
|
intervalSeconds?: number;
|
|
56
57
|
};
|
|
57
|
-
export type OfferPreview = {
|
|
58
|
-
offerId?: string;
|
|
59
|
-
amount?: string;
|
|
60
|
-
currency?: string;
|
|
61
|
-
seats?: number | undefined;
|
|
62
|
-
planName?: string;
|
|
63
|
-
sku?: string;
|
|
64
|
-
paymentMethod?: string;
|
|
65
|
-
checkoutUrl?: string;
|
|
66
|
-
};
|
|
67
58
|
export type IndividualOrganizationStartResult = {
|
|
68
59
|
registration: SubmitAndPollResult;
|
|
69
60
|
offerId: string;
|
package/dist/legacy-compat.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { activateEmployeeDeviceWithActivationRequestWithDeps as activateEmployeeDeviceWithActivationCodeSimpleWithDeps, } from './device-activation.js';
|
|
2
2
|
export { confirmLegalOrganizationOrderWithDeps as confirmLegalOrganizationOrderSimpleWithDeps, } from './host-onboarding.js';
|
|
3
3
|
export { confirmIndividualOrganizationOrderWithDeps as confirmIndividualOrganizationOrderSimpleWithDeps, } from './individual-onboarding.js';
|
|
4
|
+
export { confirmOrganizationLicenseOrderWithDeps as confirmOrganizationLicenseOrderSimpleWithDeps, } from './organization-license-order.js';
|
|
4
5
|
export { requestSmartTokenWithDeps as requestSmartTokenSimpleWithDeps, } from './smart-token.js';
|
|
5
6
|
export { startIndividualOrganizationWithDeps as startIndividualOrganizationSimpleWithDeps, } from './individual-start.js';
|
|
6
7
|
export { grantProfessionalAccessWithDeps as grantProfessionalAccessSimpleWithDeps } from './resource-operations.js';
|
|
@@ -8,6 +9,7 @@ export { resolvePollOptionsFromSeconds as resolveSimplePollOptions } from './pol
|
|
|
8
9
|
export type { EmployeeDeviceActivationRequestInput as EmployeeDeviceActivationSimpleInput, } from './device-activation.js';
|
|
9
10
|
export type { LegalOrganizationOrderInput as LegalOrganizationOrderSimpleInput, } from './host-onboarding.js';
|
|
10
11
|
export type { IndividualOrganizationConfirmOrderInput as IndividualOrganizationConfirmOrderSimpleInput, } from './individual-onboarding.js';
|
|
12
|
+
export type { OrganizationLicenseOrderConfirmInput as OrganizationLicenseOrderConfirmSimpleInput, } from './organization-license-order.js';
|
|
11
13
|
export type { IndividualOrganizationBootstrapInput as IndividualOrganizationBootstrapSimpleInput, IndividualOrganizationStartResult as IndividualOrganizationStartSimpleResult, } from './individual-start.js';
|
|
12
14
|
export type { SmartTokenRequestInput as SmartTokenRequestSimpleInput, } from './smart-token.js';
|
|
13
15
|
export type { GrantProfessionalAccessInput as GrantProfessionalAccessSimpleInput, GrantProfessionalAccessResult as GrantProfessionalAccessSimpleResult, } from './resource-operations.js';
|
package/dist/legacy-compat.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
export { activateEmployeeDeviceWithActivationRequestWithDeps as activateEmployeeDeviceWithActivationCodeSimpleWithDeps, } from './device-activation.js';
|
|
4
4
|
export { confirmLegalOrganizationOrderWithDeps as confirmLegalOrganizationOrderSimpleWithDeps, } from './host-onboarding.js';
|
|
5
5
|
export { confirmIndividualOrganizationOrderWithDeps as confirmIndividualOrganizationOrderSimpleWithDeps, } from './individual-onboarding.js';
|
|
6
|
+
export { confirmOrganizationLicenseOrderWithDeps as confirmOrganizationLicenseOrderSimpleWithDeps, } from './organization-license-order.js';
|
|
6
7
|
export { requestSmartTokenWithDeps as requestSmartTokenSimpleWithDeps, } from './smart-token.js';
|
|
7
8
|
export { startIndividualOrganizationWithDeps as startIndividualOrganizationSimpleWithDeps, } from './individual-start.js';
|
|
8
9
|
export { grantProfessionalAccessWithDeps as grantProfessionalAccessSimpleWithDeps } from './resource-operations.js';
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { AppInfo } from 'gdc-sdk-core-ts';
|
|
2
2
|
import { type ResolvedAppInfo } from 'gdc-sdk-core-ts';
|
|
3
|
-
import { type HostRouteContext } from './host-onboarding.js';
|
|
3
|
+
import { type HostRouteContext, type HostedTenantLifecycleInput } from './host-onboarding.js';
|
|
4
4
|
import type { NodeOrganizationActivationInput } from './orchestration/client-port.js';
|
|
5
5
|
import { type IndividualOrganizationConfirmOrderInput, type RouteContext } from './individual-onboarding.js';
|
|
6
6
|
import { type SmartTokenRequestInput } from './smart-token.js';
|
|
7
|
+
import { type OrganizationLicenseOrderConfirmInput } from './organization-license-order.js';
|
|
7
8
|
import { type IndividualOrganizationBootstrapInput, type IndividualOrganizationStartResult } from './individual-start.js';
|
|
8
|
-
import { type CommunicationIngestionInput, type ClinicalBundleSearchInput, type GrantProfessionalAccessInput, type GrantProfessionalAccessResult, type IndividualMemberLifecycleInput, type IndividualOrganizationLifecycleInput, type OrganizationEmployeeCreationInput, type OrganizationEmployeeLifecycleInput, type OrganizationEmployeeSearchInput, type RelatedPersonUpsertInput } from './resource-operations.js';
|
|
9
|
+
import { type CommunicationIngestionInput, type ClinicalBundleSearchInput, type GrantProfessionalAccessInput, type GrantProfessionalAccessResult, type IndividualMemberLifecycleInput, type IndividualOrganizationLifecycleInput, type LicenseListRuntimeSearchInput, type LicenseOfferRuntimeSearchInput, type LicenseOrderRuntimeSearchInput, type OrganizationEmployeeCreationInput, type OrganizationEmployeeLifecycleInput, type OrganizationEmployeeSearchInput, type RelatedPersonUpsertInput } from './resource-operations.js';
|
|
9
10
|
import type { LegalOrganizationOrderInput } from './host-onboarding.js';
|
|
10
11
|
import type { SmartTokenExchangeResult } from './smart-token.js';
|
|
11
12
|
import type { NodeRuntimeClient, PollOptions, PollResult, SubmitAndPollResult, SubmitPayload, SubmitResponse } from './orchestration/client-port.js';
|
|
@@ -117,6 +118,25 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
117
118
|
* Confirms a host-side legal organization order after the initial activation.
|
|
118
119
|
*/
|
|
119
120
|
confirmLegalOrganizationOrder(hostCtx: HostRouteContext, input: LegalOrganizationOrderInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
121
|
+
/**
|
|
122
|
+
* Disables the host registration itself after every hosted tenant has
|
|
123
|
+
* already been purged from the host registry.
|
|
124
|
+
*/
|
|
125
|
+
disableHost(hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
126
|
+
/**
|
|
127
|
+
* Purges the disabled host registration after the hosted tenant registry has
|
|
128
|
+
* become empty.
|
|
129
|
+
*/
|
|
130
|
+
purgeHost(hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
131
|
+
/**
|
|
132
|
+
* Disables one hosted tenant through the host registry after its descendants
|
|
133
|
+
* have already been disabled/purged.
|
|
134
|
+
*/
|
|
135
|
+
disableTenant(hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
136
|
+
/**
|
|
137
|
+
* Purges one already-disabled hosted tenant through the host registry.
|
|
138
|
+
*/
|
|
139
|
+
purgeTenant(hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
120
140
|
/**
|
|
121
141
|
* Creates an employee or professional entry under an existing organization tenant.
|
|
122
142
|
*/
|
|
@@ -147,6 +167,31 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
147
167
|
* Searches employees/professionals under the selected organization tenant.
|
|
148
168
|
*/
|
|
149
169
|
searchOrganizationEmployees(ctx: RouteContext, input: OrganizationEmployeeSearchInput): Promise<SubmitAndPollResult>;
|
|
170
|
+
/**
|
|
171
|
+
* Searches organization-owned license seats through the canonical
|
|
172
|
+
* `License/_search` route.
|
|
173
|
+
*/
|
|
174
|
+
searchOrganizationLicenses(ctx: RouteContext, input: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
175
|
+
/**
|
|
176
|
+
* Lists organization-owned license seats using the same `License/_search`
|
|
177
|
+
* route with optional filters.
|
|
178
|
+
*/
|
|
179
|
+
listOrganizationLicenses(ctx: RouteContext, input?: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
180
|
+
searchOrganizationLicenseOffers(ctx: RouteContext, input: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
181
|
+
listOrganizationLicenseOffers(ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
182
|
+
searchOrganizationLicenseOrders(ctx: RouteContext, input: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
183
|
+
listOrganizationLicenseOrders(ctx: RouteContext, input?: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
184
|
+
/**
|
|
185
|
+
* Confirms an already paid organization-side license order so additional
|
|
186
|
+
* seats become usable once GW CORE exposes the public converged route.
|
|
187
|
+
*
|
|
188
|
+
* Current runtime note:
|
|
189
|
+
* - search/list for organization license offers and orders already works
|
|
190
|
+
* - the public/write post-payment seat activation route is not wired yet
|
|
191
|
+
* - this method therefore fails explicitly instead of guessing a transport
|
|
192
|
+
* contract that is not stable in GW CORE
|
|
193
|
+
*/
|
|
194
|
+
confirmOrganizationLicenseOrder(ctx: RouteContext, input: OrganizationLicenseOrderConfirmInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
150
195
|
/**
|
|
151
196
|
* Starts the onboarding flow for an individual-oriented tenant or index.
|
|
152
197
|
*/
|
|
@@ -178,19 +223,31 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
178
223
|
*/
|
|
179
224
|
purgeIndividual(ctx: RouteContext, input: IndividualOrganizationLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
180
225
|
/**
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
* Current GW CORE does not yet expose a stable lifecycle route for
|
|
184
|
-
* `RelatedPerson` / individual-member disable.
|
|
226
|
+
* Soft-disables a `RelatedPerson` membership/contact using the current
|
|
227
|
+
* public batch-update path and `RelatedPerson.active = false`.
|
|
185
228
|
*/
|
|
186
|
-
disableIndividualMember(
|
|
229
|
+
disableIndividualMember(ctx: RouteContext, input: IndividualMemberLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
230
|
+
/**
|
|
231
|
+
* Searches individual/family-side license seats through the canonical
|
|
232
|
+
* `License/_search` route.
|
|
233
|
+
*/
|
|
234
|
+
searchIndividualLicenses(ctx: RouteContext, input: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
235
|
+
/**
|
|
236
|
+
* Lists individual/family-side license seats using the same search route
|
|
237
|
+
* with optional filters.
|
|
238
|
+
*/
|
|
239
|
+
listIndividualLicenses(ctx: RouteContext, input?: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
240
|
+
searchIndividualLicenseOffers(ctx: RouteContext, input: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
241
|
+
listIndividualLicenseOffers(ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
242
|
+
searchIndividualLicenseOrders(ctx: RouteContext, input: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
243
|
+
listIndividualLicenseOrders(ctx: RouteContext, input?: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
187
244
|
/**
|
|
188
245
|
* Placeholder for a future GW CORE member/caregiver lifecycle contract.
|
|
189
246
|
*
|
|
190
247
|
* Current GW CORE does not yet expose a stable lifecycle route for
|
|
191
248
|
* `RelatedPerson` / individual-member purge.
|
|
192
249
|
*/
|
|
193
|
-
purgeIndividualMember(
|
|
250
|
+
purgeIndividualMember(ctx: RouteContext, input: IndividualMemberLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
194
251
|
/**
|
|
195
252
|
* Creates and submits a consent-oriented access grant for a professional actor.
|
|
196
253
|
*/
|
|
@@ -241,6 +298,10 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
241
298
|
* @param input Subject-scoped search parameters.
|
|
242
299
|
*/
|
|
243
300
|
searchLatestIps(ctx: RouteContext, input: Omit<ClinicalBundleSearchInput, 'includedTypes'>): Promise<SubmitAndPollResult>;
|
|
301
|
+
/**
|
|
302
|
+
* Preferred runtime alias for latest-IPS retrieval used by shared facades.
|
|
303
|
+
*/
|
|
304
|
+
getLatestIps(ctx: RouteContext, input: Omit<ClinicalBundleSearchInput, 'includedTypes'>): Promise<SubmitAndPollResult>;
|
|
244
305
|
/**
|
|
245
306
|
* Searches a communication/document thread using `thid` and returns the
|
|
246
307
|
* indexed communication/document projections.
|
|
@@ -262,12 +323,22 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
262
323
|
private requireHostRouteContext;
|
|
263
324
|
hostRegistryOrganizationActivatePath(ctx?: HostRouteContext): string;
|
|
264
325
|
hostRegistryOrganizationActivatePollPath(ctx?: HostRouteContext): string;
|
|
326
|
+
hostRegistryOrganizationDisablePath(ctx?: HostRouteContext): string;
|
|
327
|
+
hostRegistryOrganizationDisablePollPath(ctx?: HostRouteContext): string;
|
|
328
|
+
hostRegistryOrganizationPurgePath(ctx?: HostRouteContext): string;
|
|
329
|
+
hostRegistryOrganizationPurgePollPath(ctx?: HostRouteContext): string;
|
|
265
330
|
hostRegistryOrderBatchPath(ctx?: HostRouteContext): string;
|
|
266
331
|
hostRegistryOrderPollPath(ctx?: HostRouteContext): string;
|
|
267
332
|
employeeBatchPath(ctx?: RouteContext): string;
|
|
268
333
|
employeePollPath(ctx?: RouteContext): string;
|
|
269
334
|
employeeSearchPath(ctx?: RouteContext): string;
|
|
270
335
|
employeeSearchPollPath(ctx?: RouteContext): string;
|
|
336
|
+
organizationLicenseSearchPath(ctx?: RouteContext): string;
|
|
337
|
+
organizationLicenseSearchPollPath(ctx?: RouteContext): string;
|
|
338
|
+
organizationLicenseOfferSearchPath(ctx?: RouteContext): string;
|
|
339
|
+
organizationLicenseOfferSearchPollPath(ctx?: RouteContext): string;
|
|
340
|
+
organizationLicenseOrderSearchPath(ctx?: RouteContext): string;
|
|
341
|
+
organizationLicenseOrderSearchPollPath(ctx?: RouteContext): string;
|
|
271
342
|
employeePurgePath(ctx?: RouteContext): string;
|
|
272
343
|
employeePurgePollPath(ctx?: RouteContext): string;
|
|
273
344
|
individualFamilyOrganizationBatchPath(ctx?: RouteContext): string;
|
|
@@ -278,10 +349,18 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
278
349
|
individualFamilyOrganizationDisablePollPath(ctx?: RouteContext): string;
|
|
279
350
|
individualFamilyOrganizationPurgePath(ctx?: RouteContext): string;
|
|
280
351
|
individualFamilyOrganizationPurgePollPath(ctx?: RouteContext): string;
|
|
352
|
+
individualLicenseSearchPath(ctx?: RouteContext): string;
|
|
353
|
+
individualLicenseSearchPollPath(ctx?: RouteContext): string;
|
|
354
|
+
individualLicenseOfferSearchPath(ctx?: RouteContext): string;
|
|
355
|
+
individualLicenseOfferSearchPollPath(ctx?: RouteContext): string;
|
|
356
|
+
individualLicenseOrderSearchPath(ctx?: RouteContext): string;
|
|
357
|
+
individualLicenseOrderSearchPollPath(ctx?: RouteContext): string;
|
|
281
358
|
individualFamilyOrderBatchPath(ctx?: RouteContext): string;
|
|
282
359
|
individualFamilyOrderPollPath(ctx?: RouteContext): string;
|
|
283
360
|
individualRelatedPersonBatchPath(ctx?: RouteContext): string;
|
|
284
361
|
individualRelatedPersonPollPath(ctx?: RouteContext): string;
|
|
362
|
+
individualRelatedPersonPurgePath(ctx?: RouteContext): string;
|
|
363
|
+
individualRelatedPersonPurgePollPath(ctx?: RouteContext): string;
|
|
285
364
|
individualConsentR4BatchPath(ctx: RouteContext): string;
|
|
286
365
|
individualConsentR4PollPath(ctx: RouteContext): string;
|
|
287
366
|
individualCommunicationBatchPath(ctx: RouteContext, format: 'org.hl7.fhir.api' | 'org.hl7.fhir.r4'): string;
|
|
@@ -292,7 +371,6 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
292
371
|
identityTokenExchangePollPath(ctx: RouteContext): string;
|
|
293
372
|
identityOpenIdSmartTokenPath(ctx: RouteContext): string;
|
|
294
373
|
identityOpenIdSmartTokenPollPath(ctx: RouteContext): string;
|
|
295
|
-
private extractOfferId;
|
|
296
374
|
private appendHttpTrace;
|
|
297
375
|
private parseTraceBody;
|
|
298
376
|
private parseTraceRawText;
|