quantum-component-library 1.4.68 → 1.4.70
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/dist/components.cjs +1 -1
- package/dist/components.js +450 -443
- package/dist/{dnd-core-vendor-Dpm8Ha_h.cjs → dnd-core-vendor-BQo1WiA6.cjs} +1 -1
- package/dist/{dnd-core-vendor-BvkN08kD.js → dnd-core-vendor-NmXYCL5j.js} +2 -2
- package/dist/generated/graphql.d.ts +584 -3
- package/dist/generated-graphql.cjs +1 -1
- package/dist/generated-graphql.js +82 -75
- package/dist/{graphql-vendor-ipMKtdBu.js → graphql-vendor-BOwWQmc4.js} +1 -1
- package/dist/{graphql-vendor-CSrUjvOC.cjs → graphql-vendor-CMjSICJP.cjs} +1 -1
- package/dist/hooks.cjs +8 -8
- package/dist/hooks.js +136 -118
- package/dist/index.cjs +1 -1
- package/dist/index.js +121 -119
- package/dist/lib/hooks/use-graphql-client.d.ts +20 -0
- package/dist/lib/hooks/use-graphql-client.test.d.ts +1 -0
- package/dist/lib/types/sensor-info.test.d.ts +1 -0
- package/dist/lib/utils/parameters.d.ts +14 -1
- package/dist/lib/utils/parameters.test.d.ts +1 -0
- package/dist/{lodash-vendor-CfNg9qwP.cjs → lodash-vendor-CGEP7jch.cjs} +1 -1
- package/dist/{lodash-vendor-CY4G3-79.js → lodash-vendor-Deq42ySR.js} +1 -1
- package/dist/{other-CPHWCRXi.js → other-Bp68Uzz1.js} +3 -3
- package/dist/{other-B_xypnnb.cjs → other-Bsl3n3tj.cjs} +1 -1
- package/dist/{react-dnd-vendor-DvbjNa5U.cjs → react-dnd-vendor-CPQdLxxA.cjs} +1 -1
- package/dist/{react-dnd-vendor-DYesaYGm.js → react-dnd-vendor-D7ujbWN2.js} +2 -2
- package/dist/{react-select-vendor-B0QF8gkj.js → react-select-vendor-B-vWCyYj.js} +1 -1
- package/dist/{react-select-vendor-BLLqfZvd.cjs → react-select-vendor-Dletsq31.cjs} +1 -1
- package/dist/services-human-Cl36G8mV.cjs +1 -0
- package/dist/{services-human-D5IllQkM.js → services-human-mjbBM3xQ.js} +2 -2
- package/dist/services.cjs +1 -1
- package/dist/services.js +1 -1
- package/dist/types.cjs +1 -1
- package/dist/types.js +13 -13
- package/dist/{utils-conversion-DFO1UVSN.cjs → utils-conversion-CBAxJ_Vx.cjs} +1 -1
- package/dist/{utils-conversion-BQfLNP0g.js → utils-conversion-Dmt0JwSC.js} +1 -1
- package/dist/{utils-parameters-DkefNhWo.js → utils-parameters-BiyUnm5t.js} +17 -7
- package/dist/utils-parameters-Bx16_6xw.cjs +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +19 -18
- package/dist/{vendor-DeYnrakH.cjs → vendor-CNEuzHxC.cjs} +1 -1
- package/dist/{vendor-BSFJsa1P.js → vendor-D_9BWGCW.js} +1 -1
- package/package.json +6 -3
- package/dist/services-human-DFPelsei.cjs +0 -1
- package/dist/utils-parameters-dwKmz1VU.cjs +0 -1
|
@@ -60,6 +60,7 @@ export type Scalars = {
|
|
|
60
60
|
};
|
|
61
61
|
};
|
|
62
62
|
export type AcceptInvitationInput = {
|
|
63
|
+
dateOfBirth?: InputMaybe<Scalars['Date']['input']>;
|
|
63
64
|
firstName: Scalars['String']['input'];
|
|
64
65
|
lastName: Scalars['String']['input'];
|
|
65
66
|
password: Scalars['String']['input'];
|
|
@@ -68,9 +69,25 @@ export type AcceptInvitationInput = {
|
|
|
68
69
|
};
|
|
69
70
|
export type AcceptInvitationResult = {
|
|
70
71
|
__typename?: 'AcceptInvitationResult';
|
|
71
|
-
|
|
72
|
+
/**
|
|
73
|
+
* AC-5.2.9 — null for an admin invitation: acceptance carries no session, no
|
|
74
|
+
* cookie, no token, and nothing in the response that can call the API as the
|
|
75
|
+
* new account. The invitee is sent to sign in and proves the password reached
|
|
76
|
+
* the system as they typed it. Every other invitation type still gets one.
|
|
77
|
+
*/
|
|
78
|
+
session?: Maybe<AuthSession>;
|
|
72
79
|
user: CurrentUser;
|
|
73
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* The same three states, for any account rather than only a Quantum staff one.
|
|
83
|
+
* Declared separately from AdminLifecycle so the admin screen's contract is not
|
|
84
|
+
* widened by a change made for the clinic staff list.
|
|
85
|
+
*/
|
|
86
|
+
export declare enum AccountLifecycle {
|
|
87
|
+
Active = "ACTIVE",
|
|
88
|
+
Removed = "REMOVED",
|
|
89
|
+
Suspended = "SUSPENDED"
|
|
90
|
+
}
|
|
74
91
|
export type Action = {
|
|
75
92
|
__typename?: 'Action';
|
|
76
93
|
activityKind: ActionActivityKind;
|
|
@@ -123,6 +140,36 @@ export declare enum ActivityType {
|
|
|
123
140
|
IsolatedAction = "IsolatedAction",
|
|
124
141
|
IsolatedMovement = "IsolatedMovement"
|
|
125
142
|
}
|
|
143
|
+
export type AdminHolder = {
|
|
144
|
+
__typename?: 'AdminHolder';
|
|
145
|
+
createdAt: Scalars['String']['output'];
|
|
146
|
+
/** MOB-554 — when a suspension began, so the screen can say for how long. */
|
|
147
|
+
deletedAt?: Maybe<Scalars['String']['output']>;
|
|
148
|
+
email: Scalars['String']['output'];
|
|
149
|
+
firstName?: Maybe<Scalars['String']['output']>;
|
|
150
|
+
id: Scalars['ID']['output'];
|
|
151
|
+
lastName?: Maybe<Scalars['String']['output']>;
|
|
152
|
+
lifecycle: AdminLifecycle;
|
|
153
|
+
/**
|
|
154
|
+
* US-4.7 — the profile carrying this person's name, which is what
|
|
155
|
+
* updateUserProfile acts on. Nullable: an account can exist before a profile
|
|
156
|
+
* does, and the screen has to say so rather than send a null id to the server.
|
|
157
|
+
*/
|
|
158
|
+
profileId?: Maybe<Scalars['ID']['output']>;
|
|
159
|
+
username: Scalars['String']['output'];
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* US-5.1 — one Quantum staff account and where it sits in its lifecycle.
|
|
163
|
+
*
|
|
164
|
+
* ACTIVE, SUSPENDED and REMOVED are distinguishable because they mean different
|
|
165
|
+
* things: a suspended person can come back, a removed one cannot, and the record
|
|
166
|
+
* of who held Quantum-level access is never lost either way.
|
|
167
|
+
*/
|
|
168
|
+
export declare enum AdminLifecycle {
|
|
169
|
+
Active = "ACTIVE",
|
|
170
|
+
Removed = "REMOVED",
|
|
171
|
+
Suspended = "SUSPENDED"
|
|
172
|
+
}
|
|
126
173
|
export type AnalysisAction = {
|
|
127
174
|
__typename?: 'AnalysisAction';
|
|
128
175
|
id: Scalars['ID']['output'];
|
|
@@ -194,6 +241,36 @@ export type AnalysisSubClassification = {
|
|
|
194
241
|
id: Scalars['ID']['output'];
|
|
195
242
|
name: Scalars['String']['output'];
|
|
196
243
|
};
|
|
244
|
+
export type AssignCatalog = {
|
|
245
|
+
__typename?: 'AssignCatalog';
|
|
246
|
+
activities: Array<AssignCatalogActivity>;
|
|
247
|
+
programs: Array<AssignCatalogProgram>;
|
|
248
|
+
};
|
|
249
|
+
export type AssignCatalogActivity = {
|
|
250
|
+
__typename?: 'AssignCatalogActivity';
|
|
251
|
+
id: Scalars['ID']['output'];
|
|
252
|
+
name: Scalars['String']['output'];
|
|
253
|
+
};
|
|
254
|
+
export type AssignCatalogProgram = {
|
|
255
|
+
__typename?: 'AssignCatalogProgram';
|
|
256
|
+
activityIds: Array<Scalars['ID']['output']>;
|
|
257
|
+
id: Scalars['ID']['output'];
|
|
258
|
+
name: Scalars['String']['output'];
|
|
259
|
+
};
|
|
260
|
+
/** How one activity in a client's plan got there (AC-14.2.4): picked individually, supplied by an assigned program, or both. */
|
|
261
|
+
export type AssignedActionProvenance = {
|
|
262
|
+
__typename?: 'AssignedActionProvenance';
|
|
263
|
+
actionId: Scalars['ID']['output'];
|
|
264
|
+
/** The practitioner ticked this activity itself (a direct assignment). */
|
|
265
|
+
pickedIndividually: Scalars['Boolean']['output'];
|
|
266
|
+
/** The assigned programs that supply it. Empty when it is individually picked only. */
|
|
267
|
+
suppliedByModuleIds: Array<Scalars['ID']['output']>;
|
|
268
|
+
};
|
|
269
|
+
export type AssignedActionReport = {
|
|
270
|
+
__typename?: 'AssignedActionReport';
|
|
271
|
+
actionId: Scalars['ID']['output'];
|
|
272
|
+
reportId: Scalars['ID']['output'];
|
|
273
|
+
};
|
|
197
274
|
export type AssignedReport = {
|
|
198
275
|
__typename?: 'AssignedReport';
|
|
199
276
|
autoGenerate: Scalars['Boolean']['output'];
|
|
@@ -205,15 +282,93 @@ export type AssignedReport = {
|
|
|
205
282
|
testReport?: Maybe<TestReportUnion>;
|
|
206
283
|
testReportId?: Maybe<Scalars['ID']['output']>;
|
|
207
284
|
};
|
|
285
|
+
/**
|
|
286
|
+
* One staged change, as the practitioner made it. A change LIST rather than a
|
|
287
|
+
* desired full set, so a save touches only the items this practitioner staged
|
|
288
|
+
* and a colleague's concurrent change is never reverted (AC-4.4.24).
|
|
289
|
+
*/
|
|
290
|
+
export type AssignmentChangeInput = {
|
|
291
|
+
/** true = in the client's plan afterwards, false = not. */
|
|
292
|
+
assigned: Scalars['Boolean']['input'];
|
|
293
|
+
itemId: Scalars['ID']['input'];
|
|
294
|
+
kind: AssignmentItemKind;
|
|
295
|
+
/** ACTION + assigned:true only. null detaches; omitted leaves it untouched. */
|
|
296
|
+
reportId?: InputMaybe<Scalars['ID']['input']>;
|
|
297
|
+
};
|
|
298
|
+
/** Whether this item ended in the state that was chosen (AC-4.6.1). */
|
|
299
|
+
export type AssignmentChangeResult = {
|
|
300
|
+
__typename?: 'AssignmentChangeResult';
|
|
301
|
+
applied: Scalars['Boolean']['output'];
|
|
302
|
+
itemId: Scalars['ID']['output'];
|
|
303
|
+
kind: AssignmentItemKind;
|
|
304
|
+
/** Machine-readable code when applied is false. Never a client-facing string. */
|
|
305
|
+
reason?: Maybe<Scalars['String']['output']>;
|
|
306
|
+
};
|
|
307
|
+
export declare enum AssignmentItemKind {
|
|
308
|
+
Action = "ACTION",
|
|
309
|
+
Module = "MODULE"
|
|
310
|
+
}
|
|
311
|
+
export type AttachTestFilesInput = {
|
|
312
|
+
dataUploadId?: InputMaybe<Scalars['ID']['input']>;
|
|
313
|
+
isHorizontalFlip?: InputMaybe<Scalars['Boolean']['input']>;
|
|
314
|
+
metaData?: InputMaybe<Scalars['String']['input']>;
|
|
315
|
+
requestPose?: InputMaybe<Scalars['Boolean']['input']>;
|
|
316
|
+
trimEndMs?: InputMaybe<Scalars['Int']['input']>;
|
|
317
|
+
trimStartMs?: InputMaybe<Scalars['Int']['input']>;
|
|
318
|
+
videoUploadId?: InputMaybe<Scalars['ID']['input']>;
|
|
319
|
+
};
|
|
320
|
+
export type AuditLogEntry = {
|
|
321
|
+
__typename?: 'AuditLogEntry';
|
|
322
|
+
action: Scalars['String']['output'];
|
|
323
|
+
actorEmail?: Maybe<Scalars['String']['output']>;
|
|
324
|
+
actorUserId?: Maybe<Scalars['ID']['output']>;
|
|
325
|
+
createdAt: Scalars['String']['output'];
|
|
326
|
+
groupId?: Maybe<Scalars['ID']['output']>;
|
|
327
|
+
id: Scalars['ID']['output'];
|
|
328
|
+
metadata?: Maybe<Scalars['String']['output']>;
|
|
329
|
+
profileId?: Maybe<Scalars['ID']['output']>;
|
|
330
|
+
targetUserId?: Maybe<Scalars['ID']['output']>;
|
|
331
|
+
};
|
|
332
|
+
export type AuditLogFilter = {
|
|
333
|
+
action?: InputMaybe<Scalars['String']['input']>;
|
|
334
|
+
actorUserId?: InputMaybe<Scalars['ID']['input']>;
|
|
335
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
336
|
+
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
337
|
+
profileId?: InputMaybe<Scalars['ID']['input']>;
|
|
338
|
+
};
|
|
208
339
|
export type AuthSession = {
|
|
209
340
|
__typename?: 'AuthSession';
|
|
210
341
|
accessToken: Scalars['String']['output'];
|
|
342
|
+
/** Seconds until accessToken expires — refresh before it does, without decoding the JWT. */
|
|
343
|
+
expiresIn: Scalars['Int']['output'];
|
|
211
344
|
refreshToken?: Maybe<Scalars['String']['output']>;
|
|
212
345
|
};
|
|
213
346
|
export type ChangePasswordInput = {
|
|
214
|
-
|
|
347
|
+
/**
|
|
348
|
+
* Required when changing YOUR OWN password (AC-6.2.1). The mutation asked for
|
|
349
|
+
* no current password at all, so whoever held an open session could change it —
|
|
350
|
+
* holding a session is not by itself enough. Ignored when an authorised
|
|
351
|
+
* operator resets somebody else's, which is a different act governed by rows
|
|
352
|
+
* B.9 and C.7.
|
|
353
|
+
*/
|
|
354
|
+
currentPassword?: InputMaybe<Scalars['String']['input']>;
|
|
355
|
+
/**
|
|
356
|
+
* Required on every path that SETS a password: changing your own, and an
|
|
357
|
+
* operator resetting a colleague inside their own organisation.
|
|
358
|
+
*
|
|
359
|
+
* Omitted on the path that sends a LINK — a client, or anybody outside the
|
|
360
|
+
* caller's organisation (AC-4.9.2, AC-4.9.5). Nullable for exactly that reason:
|
|
361
|
+
* the Console must not offer a field whose value is discarded (AC-4.9.9), and a
|
|
362
|
+
* required field forced it to send one. The server refuses an omission on a path
|
|
363
|
+
* that needs it rather than inventing a password.
|
|
364
|
+
*/
|
|
365
|
+
newPassword?: InputMaybe<Scalars['String']['input']>;
|
|
215
366
|
userId: Scalars['ID']['input'];
|
|
216
367
|
};
|
|
368
|
+
export type ChangePasswordResult = {
|
|
369
|
+
__typename?: 'ChangePasswordResult';
|
|
370
|
+
outcome: PasswordChangeOutcome;
|
|
371
|
+
};
|
|
217
372
|
export type ComparativeMetric = {
|
|
218
373
|
__typename?: 'ComparativeMetric';
|
|
219
374
|
labelA: Scalars['String']['output'];
|
|
@@ -247,6 +402,11 @@ export type CreateAccountInput = {
|
|
|
247
402
|
groupId?: InputMaybe<Scalars['ID']['input']>;
|
|
248
403
|
lastName: Scalars['String']['input'];
|
|
249
404
|
password: Scalars['String']['input'];
|
|
405
|
+
/**
|
|
406
|
+
* Required. This path never called assignRole at all, so every account it
|
|
407
|
+
* created held no role (AC-1.3.2).
|
|
408
|
+
*/
|
|
409
|
+
role: InvitationRole;
|
|
250
410
|
username: Scalars['String']['input'];
|
|
251
411
|
};
|
|
252
412
|
export type CreateAccountResult = {
|
|
@@ -288,8 +448,20 @@ export type CreateInvitationInput = {
|
|
|
288
448
|
email: Scalars['String']['input'];
|
|
289
449
|
firstName?: InputMaybe<Scalars['String']['input']>;
|
|
290
450
|
groupId: Scalars['ID']['input'];
|
|
451
|
+
/**
|
|
452
|
+
* Superseded by `role` and retained only so existing callers still parse. When
|
|
453
|
+
* `role` is given this is ignored; the pair disagreeing is refused.
|
|
454
|
+
*/
|
|
291
455
|
isAdmin?: InputMaybe<Scalars['Boolean']['input']>;
|
|
292
456
|
lastName?: InputMaybe<Scalars['String']['input']>;
|
|
457
|
+
/** Required. The one role this invitation grants (AC-1.3.1). */
|
|
458
|
+
role: InvitationRole;
|
|
459
|
+
/**
|
|
460
|
+
* Required. It carried a server-side default of ADMIN_PORTAL, which minted the
|
|
461
|
+
* highest privilege in the system for any request that simply omitted it
|
|
462
|
+
* (AC-1.3.8).
|
|
463
|
+
*/
|
|
464
|
+
type: InvitationType;
|
|
293
465
|
};
|
|
294
466
|
export type CreateKeypointGroupInput = {
|
|
295
467
|
activity?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -343,13 +515,21 @@ export type CreateTestInput = {
|
|
|
343
515
|
actionId?: InputMaybe<Scalars['ID']['input']>;
|
|
344
516
|
assignedReportIds?: InputMaybe<Array<Scalars['ID']['input']>>;
|
|
345
517
|
comment?: InputMaybe<Scalars['String']['input']>;
|
|
518
|
+
dataUploadId?: InputMaybe<Scalars['ID']['input']>;
|
|
346
519
|
endedAt?: InputMaybe<Scalars['Date']['input']>;
|
|
347
520
|
info: CreateTestInfoInput;
|
|
521
|
+
isHorizontalFlip?: InputMaybe<Scalars['Boolean']['input']>;
|
|
348
522
|
kind: Scalars['ID']['input'];
|
|
523
|
+
metaData?: InputMaybe<Scalars['String']['input']>;
|
|
349
524
|
name: Scalars['String']['input'];
|
|
525
|
+
requestPose?: InputMaybe<Scalars['Boolean']['input']>;
|
|
526
|
+
routineId?: InputMaybe<Scalars['ID']['input']>;
|
|
350
527
|
sessionId: Scalars['ID']['input'];
|
|
351
528
|
startedAt: Scalars['Date']['input'];
|
|
352
529
|
timezone?: InputMaybe<Scalars['String']['input']>;
|
|
530
|
+
trimEndMs?: InputMaybe<Scalars['Int']['input']>;
|
|
531
|
+
trimStartMs?: InputMaybe<Scalars['Int']['input']>;
|
|
532
|
+
videoUploadId?: InputMaybe<Scalars['ID']['input']>;
|
|
353
533
|
};
|
|
354
534
|
export type CreateTrialInput = {
|
|
355
535
|
endFrame: Scalars['Int']['input'];
|
|
@@ -389,6 +569,25 @@ export type CurrentUser = {
|
|
|
389
569
|
updatedAt: Scalars['String']['output'];
|
|
390
570
|
username: Scalars['String']['output'];
|
|
391
571
|
};
|
|
572
|
+
/**
|
|
573
|
+
* Display-only labels for the session list. Never used in an authorization
|
|
574
|
+
* decision, so treat them as untrusted client input when rendering.
|
|
575
|
+
*/
|
|
576
|
+
export type DeviceInput = {
|
|
577
|
+
name?: InputMaybe<Scalars['String']['input']>;
|
|
578
|
+
platform?: InputMaybe<Scalars['String']['input']>;
|
|
579
|
+
};
|
|
580
|
+
/** One signed-in device. */
|
|
581
|
+
export type DeviceSession = {
|
|
582
|
+
__typename?: 'DeviceSession';
|
|
583
|
+
createdAt: Scalars['String']['output'];
|
|
584
|
+
/** True for the session making this request. */
|
|
585
|
+
current: Scalars['Boolean']['output'];
|
|
586
|
+
deviceName?: Maybe<Scalars['String']['output']>;
|
|
587
|
+
devicePlatform?: Maybe<Scalars['String']['output']>;
|
|
588
|
+
id: Scalars['ID']['output'];
|
|
589
|
+
lastUsedAt?: Maybe<Scalars['String']['output']>;
|
|
590
|
+
};
|
|
392
591
|
export type DiscreteMetric = {
|
|
393
592
|
__typename?: 'DiscreteMetric';
|
|
394
593
|
unit: Scalars['Unit']['output'];
|
|
@@ -411,15 +610,37 @@ export type Group = {
|
|
|
411
610
|
id: Scalars['ID']['output'];
|
|
412
611
|
imageUrl?: Maybe<Scalars['String']['output']>;
|
|
413
612
|
name: Scalars['String']['output'];
|
|
613
|
+
/**
|
|
614
|
+
* One page of the organisation's people, filtered by role and searchable by
|
|
615
|
+
* name, username or email. The split is decided ONCE, on the server.
|
|
616
|
+
*/
|
|
617
|
+
people: PersonPage;
|
|
414
618
|
profiles: Array<UserProfile>;
|
|
415
619
|
updatedAt: Scalars['String']['output'];
|
|
620
|
+
/**
|
|
621
|
+
* Superseded by `people`. Unfiltered and unpaged; kept so existing callers
|
|
622
|
+
* still work while they move over.
|
|
623
|
+
*/
|
|
416
624
|
users: Array<User>;
|
|
417
625
|
};
|
|
626
|
+
export type GroupPeopleArgs = {
|
|
627
|
+
cursor?: InputMaybe<Scalars['String']['input']>;
|
|
628
|
+
includeArchived?: InputMaybe<Scalars['Boolean']['input']>;
|
|
629
|
+
kind: PersonKind;
|
|
630
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
631
|
+
search?: InputMaybe<Scalars['String']['input']>;
|
|
632
|
+
};
|
|
418
633
|
export type GroupInfo = {
|
|
419
634
|
__typename?: 'GroupInfo';
|
|
420
635
|
id: Scalars['ID']['output'];
|
|
421
636
|
name: Scalars['String']['output'];
|
|
422
637
|
};
|
|
638
|
+
export type IdentityVerificationResult = {
|
|
639
|
+
__typename?: 'IdentityVerificationResult';
|
|
640
|
+
errorMessage?: Maybe<Scalars['String']['output']>;
|
|
641
|
+
locked: Scalars['Boolean']['output'];
|
|
642
|
+
verified: Scalars['Boolean']['output'];
|
|
643
|
+
};
|
|
423
644
|
export type ImageMetric = {
|
|
424
645
|
__typename?: 'ImageMetric';
|
|
425
646
|
path: Scalars['String']['output'];
|
|
@@ -436,6 +657,9 @@ export type Invitation = {
|
|
|
436
657
|
invitedBy?: Maybe<InvitationInviter>;
|
|
437
658
|
isAdmin: Scalars['Boolean']['output'];
|
|
438
659
|
lastName?: Maybe<Scalars['String']['output']>;
|
|
660
|
+
requiresIdentityVerification: Scalars['Boolean']['output'];
|
|
661
|
+
/** The role this invitation grants. Null only on rows predating US-1.3. */
|
|
662
|
+
role?: Maybe<InvitationRole>;
|
|
439
663
|
status: InvitationStatus;
|
|
440
664
|
type: InvitationType;
|
|
441
665
|
};
|
|
@@ -445,6 +669,22 @@ export type InvitationInviter = {
|
|
|
445
669
|
id: Scalars['ID']['output'];
|
|
446
670
|
username: Scalars['String']['output'];
|
|
447
671
|
};
|
|
672
|
+
/**
|
|
673
|
+
* The role an invitation grants. Every invitation carries exactly one, chosen at
|
|
674
|
+
* creation: an account that comes into existence holding no role can sign in and
|
|
675
|
+
* do nothing, and nobody can diagnose that from the outside (US-1.3).
|
|
676
|
+
*
|
|
677
|
+
* `admin` and `mobile_client` are absent from the Console's selector but present
|
|
678
|
+
* here, because the server decides both — an admin invitation is US-5.1's, and a
|
|
679
|
+
* client invitation is the customer web app's.
|
|
680
|
+
*/
|
|
681
|
+
export declare enum InvitationRole {
|
|
682
|
+
AccountAdmin = "account_admin",
|
|
683
|
+
AccountManager = "account_manager",
|
|
684
|
+
AccountUser = "account_user",
|
|
685
|
+
Admin = "admin",
|
|
686
|
+
MobileClient = "mobile_client"
|
|
687
|
+
}
|
|
448
688
|
export declare enum InvitationStatus {
|
|
449
689
|
Accepted = "ACCEPTED",
|
|
450
690
|
Cancelled = "CANCELLED",
|
|
@@ -458,6 +698,12 @@ export declare enum InvitationType {
|
|
|
458
698
|
}
|
|
459
699
|
export type InvitationValidation = {
|
|
460
700
|
__typename?: 'InvitationValidation';
|
|
701
|
+
/**
|
|
702
|
+
* MOB-552 — why the token is not valid: INVITATION_NOT_FOUND, INVITATION_EXPIRED,
|
|
703
|
+
* INVITATION_ALREADY_USED or INVITATION_CANCELLED. errorMessage is left as the
|
|
704
|
+
* text existing clients display.
|
|
705
|
+
*/
|
|
706
|
+
errorCode?: Maybe<Scalars['String']['output']>;
|
|
461
707
|
errorMessage?: Maybe<Scalars['String']['output']>;
|
|
462
708
|
invitation?: Maybe<Invitation>;
|
|
463
709
|
valid: Scalars['Boolean']['output'];
|
|
@@ -549,6 +795,12 @@ export type MetricInput = {
|
|
|
549
795
|
poiMetrics?: InputMaybe<Array<PoiMetricInput>>;
|
|
550
796
|
table?: InputMaybe<TableMetricInput>;
|
|
551
797
|
};
|
|
798
|
+
export declare enum MobileAccessStatus {
|
|
799
|
+
Accepted = "ACCEPTED",
|
|
800
|
+
Expired = "EXPIRED",
|
|
801
|
+
None = "NONE",
|
|
802
|
+
Pending = "PENDING"
|
|
803
|
+
}
|
|
552
804
|
export type ModuleAction = {
|
|
553
805
|
__typename?: 'ModuleAction';
|
|
554
806
|
action: Action;
|
|
@@ -589,10 +841,57 @@ export type Mutation = {
|
|
|
589
841
|
addActionToModule: ActionModule;
|
|
590
842
|
archiveUser: Scalars['Boolean']['output'];
|
|
591
843
|
assignActionToProfile: Scalars['Boolean']['output'];
|
|
844
|
+
assignModuleToProfile: Scalars['Boolean']['output'];
|
|
592
845
|
assignRoutineToProfile: Scalars['Boolean']['output'];
|
|
593
846
|
assignTestToRoutine: Scalars['Boolean']['output'];
|
|
847
|
+
attachReportToAssignedAction: Scalars['Boolean']['output'];
|
|
848
|
+
attachTestFiles: TestFile;
|
|
849
|
+
/**
|
|
850
|
+
* AC-4.6.12 — stop a pending change of email address, from the single-use link
|
|
851
|
+
* sent to the address currently on the account. Public for the same reason
|
|
852
|
+
* confirmation is, and a stronger one: the person objecting may be objecting
|
|
853
|
+
* because somebody else holds a session on their account.
|
|
854
|
+
*
|
|
855
|
+
* It can only ever STOP a change. There is no address it can set.
|
|
856
|
+
*/
|
|
857
|
+
cancelEmailChange: Scalars['Boolean']['output'];
|
|
594
858
|
cancelInvitation: Scalars['Boolean']['output'];
|
|
595
|
-
|
|
859
|
+
/**
|
|
860
|
+
* AC-4.7.3 — cancel a pending change from the Console, which kills the
|
|
861
|
+
* verification link with it. Omit `userId` to cancel your own.
|
|
862
|
+
*
|
|
863
|
+
* The pair to the link in the warning email: the same discard, reached by
|
|
864
|
+
* somebody signed in with authority over the account rather than by somebody
|
|
865
|
+
* holding a token. Succeeds when nothing is pending — no pending change is the
|
|
866
|
+
* outcome the caller wanted.
|
|
867
|
+
*/
|
|
868
|
+
cancelPendingEmailChange: Scalars['Boolean']['output'];
|
|
869
|
+
/**
|
|
870
|
+
* Change a password: your own (row D.3, and then `currentPassword` is required)
|
|
871
|
+
* or somebody else's (rows B.9 and C.7). The result says WHICH of the two
|
|
872
|
+
* outcomes happened rather than only that something did — see
|
|
873
|
+
* PasswordChangeOutcome.
|
|
874
|
+
*/
|
|
875
|
+
changePassword: ChangePasswordResult;
|
|
876
|
+
/**
|
|
877
|
+
* US-4.4 — move a person between the three clinic roles.
|
|
878
|
+
*
|
|
879
|
+
* A role could only be assigned at invitation time; there was no way to change
|
|
880
|
+
* it afterwards from any interface, so a promotion meant deleting the person and
|
|
881
|
+
* inviting them again.
|
|
882
|
+
*
|
|
883
|
+
* Granting is always a REPLACEMENT, because an account holds exactly one role:
|
|
884
|
+
* there is no state in which it holds two, and none in which it holds none.
|
|
885
|
+
* `account_user` is the floor, so no clinic role change can produce a roleless
|
|
886
|
+
* account.
|
|
887
|
+
*/
|
|
888
|
+
changeRole: User;
|
|
889
|
+
/**
|
|
890
|
+
* Confirm a change of email address. Public: the person opening the link is
|
|
891
|
+
* proving they hold the new mailbox, which is the whole point, and they may not
|
|
892
|
+
* be signed in when they do it.
|
|
893
|
+
*/
|
|
894
|
+
confirmEmailChange: Scalars['Boolean']['output'];
|
|
596
895
|
convertActionToQuantumOwned: Action;
|
|
597
896
|
copyActions: Scalars['Boolean']['output'];
|
|
598
897
|
copyModules: Scalars['Boolean']['output'];
|
|
@@ -630,18 +929,75 @@ export type Mutation = {
|
|
|
630
929
|
deleteTrial: Scalars['Boolean']['output'];
|
|
631
930
|
deleteTrialParameter: Scalars['Boolean']['output'];
|
|
632
931
|
deleteUserProfile: Scalars['Boolean']['output'];
|
|
932
|
+
detachReportFromAssignedAction: Scalars['Boolean']['output'];
|
|
633
933
|
duplicateAction: Scalars['Boolean']['output'];
|
|
634
934
|
inviteMobileAppUser: Scalars['Boolean']['output'];
|
|
635
935
|
inviteTeamMember: Invitation;
|
|
636
936
|
login?: Maybe<LoginResult>;
|
|
937
|
+
/**
|
|
938
|
+
* Closes one session. Pass refreshToken to log out with an expired access
|
|
939
|
+
* token; otherwise the bearer token identifies the session. Always succeeds —
|
|
940
|
+
* a session that is already closed is the outcome the caller wanted.
|
|
941
|
+
*/
|
|
942
|
+
logout: Scalars['Boolean']['output'];
|
|
943
|
+
/** Closes every session except the one making this request. */
|
|
944
|
+
logoutOtherDevices: Scalars['Boolean']['output'];
|
|
945
|
+
mobileInviteLink: Scalars['String']['output'];
|
|
637
946
|
refresh: LoginResult;
|
|
947
|
+
removeAccountAdminRole: Scalars['Boolean']['output'];
|
|
638
948
|
removeActionFromModule: ActionModule;
|
|
949
|
+
/**
|
|
950
|
+
* US-5.1 — REMOVE a Quantum staff account. NOT reversible: the same effects as
|
|
951
|
+
* suspending, and the role comes off so the person can never be restored.
|
|
952
|
+
* Bringing them back means a fresh invitation.
|
|
953
|
+
*
|
|
954
|
+
* Until now there was only suspend, used for both — so a departed employee
|
|
955
|
+
* still held an account with the highest privilege in the system, one click
|
|
956
|
+
* away from being live again, with nothing marking that they should not return.
|
|
957
|
+
*/
|
|
958
|
+
removeAdmin: Scalars['Boolean']['output'];
|
|
639
959
|
removeMobileAppAccess: Scalars['Boolean']['output'];
|
|
960
|
+
/**
|
|
961
|
+
* US-2.3 / row B.3 — REMOVE a staff member from a clinic. NOT reversible: the
|
|
962
|
+
* same effects as suspending (sessions end, the account is hidden), and the
|
|
963
|
+
* clinic role comes off so the person can never be restored.
|
|
964
|
+
*
|
|
965
|
+
* The pair to `archiveUser`, which suspends and is reversible. Removal is what
|
|
966
|
+
* a clinic needs when somebody has left rather than gone on leave — and until
|
|
967
|
+
* now only suspend existed, used for both.
|
|
968
|
+
*
|
|
969
|
+
* The row stays on the clinic's staff list, marked removed, with no action
|
|
970
|
+
* offered: with no audit-log viewer in this delivery, that row is the only
|
|
971
|
+
* thing that can answer who used to work here while the clinical records they
|
|
972
|
+
* created remain (AC-2.3.12).
|
|
973
|
+
*/
|
|
974
|
+
removeStaff: Scalars['Boolean']['output'];
|
|
640
975
|
replaceTrialParameters: Array<TrialParameter>;
|
|
976
|
+
/**
|
|
977
|
+
* US-4.6 — request a change of email address. Nothing on the account changes:
|
|
978
|
+
* a verification link goes to the NEW address, and the old one keeps working
|
|
979
|
+
* until it is confirmed. Omit `userId` to change your own (row D.4).
|
|
980
|
+
*/
|
|
981
|
+
requestEmailChange: Scalars['Boolean']['output'];
|
|
641
982
|
requestPoseProcessing: Scalars['Boolean']['output'];
|
|
642
983
|
resendInvitation: Invitation;
|
|
984
|
+
resetMobileClientPassword: Scalars['Boolean']['output'];
|
|
985
|
+
resetPasswordWithToken: Scalars['Boolean']['output'];
|
|
986
|
+
/** Reverse a suspension. */
|
|
987
|
+
restoreAdmin: Scalars['Boolean']['output'];
|
|
988
|
+
/** Closes another of the caller's own devices. False if it was already gone. */
|
|
989
|
+
revokeSession: Scalars['Boolean']['output'];
|
|
990
|
+
revokeUserAccess: Scalars['Boolean']['output'];
|
|
991
|
+
setProfileAssignments: SetProfileAssignmentsResult;
|
|
992
|
+
/**
|
|
993
|
+
* US-5.1 — SUSPEND a Quantum staff account. Reversible: sessions end and the
|
|
994
|
+
* account is hidden, the role stays attached, and the person can come back.
|
|
995
|
+
* For somebody on leave, under investigation, or with a lost laptop.
|
|
996
|
+
*/
|
|
997
|
+
suspendAdmin: Scalars['Boolean']['output'];
|
|
643
998
|
unarchiveUserProfile: UserProfile;
|
|
644
999
|
unassignActionFromProfile: Scalars['Boolean']['output'];
|
|
1000
|
+
unassignModuleFromProfile: Scalars['Boolean']['output'];
|
|
645
1001
|
unassignRoutineFromProfile: Scalars['Boolean']['output'];
|
|
646
1002
|
updateAction: Action;
|
|
647
1003
|
updateGroup: Group;
|
|
@@ -653,8 +1009,10 @@ export type Mutation = {
|
|
|
653
1009
|
updateTrialData: Trial;
|
|
654
1010
|
updateUserProfile: UserProfile;
|
|
655
1011
|
updateVideoDataOffset: TestFile;
|
|
1012
|
+
verifyInvitationIdentity: IdentityVerificationResult;
|
|
656
1013
|
};
|
|
657
1014
|
export type MutationAcceptInvitationArgs = {
|
|
1015
|
+
device?: InputMaybe<DeviceInput>;
|
|
658
1016
|
input: AcceptInvitationInput;
|
|
659
1017
|
};
|
|
660
1018
|
export type MutationAddActionToModuleArgs = {
|
|
@@ -669,6 +1027,10 @@ export type MutationAssignActionToProfileArgs = {
|
|
|
669
1027
|
actionId: Scalars['ID']['input'];
|
|
670
1028
|
profileId: Scalars['ID']['input'];
|
|
671
1029
|
};
|
|
1030
|
+
export type MutationAssignModuleToProfileArgs = {
|
|
1031
|
+
moduleId: Scalars['ID']['input'];
|
|
1032
|
+
profileId: Scalars['ID']['input'];
|
|
1033
|
+
};
|
|
672
1034
|
export type MutationAssignRoutineToProfileArgs = {
|
|
673
1035
|
profileId: Scalars['ID']['input'];
|
|
674
1036
|
routineId: Scalars['ID']['input'];
|
|
@@ -677,12 +1039,34 @@ export type MutationAssignTestToRoutineArgs = {
|
|
|
677
1039
|
routineId?: InputMaybe<Scalars['ID']['input']>;
|
|
678
1040
|
testId: Scalars['ID']['input'];
|
|
679
1041
|
};
|
|
1042
|
+
export type MutationAttachReportToAssignedActionArgs = {
|
|
1043
|
+
actionId: Scalars['ID']['input'];
|
|
1044
|
+
profileId: Scalars['ID']['input'];
|
|
1045
|
+
reportId: Scalars['ID']['input'];
|
|
1046
|
+
};
|
|
1047
|
+
export type MutationAttachTestFilesArgs = {
|
|
1048
|
+
input: AttachTestFilesInput;
|
|
1049
|
+
testId: Scalars['ID']['input'];
|
|
1050
|
+
};
|
|
1051
|
+
export type MutationCancelEmailChangeArgs = {
|
|
1052
|
+
token: Scalars['String']['input'];
|
|
1053
|
+
};
|
|
680
1054
|
export type MutationCancelInvitationArgs = {
|
|
681
1055
|
invitationId: Scalars['ID']['input'];
|
|
682
1056
|
};
|
|
1057
|
+
export type MutationCancelPendingEmailChangeArgs = {
|
|
1058
|
+
userId?: InputMaybe<Scalars['ID']['input']>;
|
|
1059
|
+
};
|
|
683
1060
|
export type MutationChangePasswordArgs = {
|
|
684
1061
|
input: ChangePasswordInput;
|
|
685
1062
|
};
|
|
1063
|
+
export type MutationChangeRoleArgs = {
|
|
1064
|
+
role: InvitationRole;
|
|
1065
|
+
userId: Scalars['ID']['input'];
|
|
1066
|
+
};
|
|
1067
|
+
export type MutationConfirmEmailChangeArgs = {
|
|
1068
|
+
token: Scalars['String']['input'];
|
|
1069
|
+
};
|
|
686
1070
|
export type MutationConvertActionToQuantumOwnedArgs = {
|
|
687
1071
|
id: Scalars['ID']['input'];
|
|
688
1072
|
};
|
|
@@ -807,6 +1191,10 @@ export type MutationDeleteTrialParameterArgs = {
|
|
|
807
1191
|
export type MutationDeleteUserProfileArgs = {
|
|
808
1192
|
id: Scalars['ID']['input'];
|
|
809
1193
|
};
|
|
1194
|
+
export type MutationDetachReportFromAssignedActionArgs = {
|
|
1195
|
+
actionId: Scalars['ID']['input'];
|
|
1196
|
+
profileId: Scalars['ID']['input'];
|
|
1197
|
+
};
|
|
810
1198
|
export type MutationDuplicateActionArgs = {
|
|
811
1199
|
id: Scalars['ID']['input'];
|
|
812
1200
|
};
|
|
@@ -818,28 +1206,70 @@ export type MutationInviteTeamMemberArgs = {
|
|
|
818
1206
|
input: CreateTeamInvitationInput;
|
|
819
1207
|
};
|
|
820
1208
|
export type MutationLoginArgs = {
|
|
1209
|
+
device?: InputMaybe<DeviceInput>;
|
|
821
1210
|
input: LoginInput;
|
|
822
1211
|
};
|
|
1212
|
+
export type MutationLogoutArgs = {
|
|
1213
|
+
refreshToken?: InputMaybe<Scalars['String']['input']>;
|
|
1214
|
+
};
|
|
1215
|
+
export type MutationMobileInviteLinkArgs = {
|
|
1216
|
+
profileId: Scalars['ID']['input'];
|
|
1217
|
+
};
|
|
823
1218
|
export type MutationRefreshArgs = {
|
|
824
1219
|
refreshToken: Scalars['String']['input'];
|
|
825
1220
|
};
|
|
1221
|
+
export type MutationRemoveAccountAdminRoleArgs = {
|
|
1222
|
+
userId: Scalars['ID']['input'];
|
|
1223
|
+
};
|
|
826
1224
|
export type MutationRemoveActionFromModuleArgs = {
|
|
827
1225
|
moduleActionId: Scalars['ID']['input'];
|
|
828
1226
|
moduleId: Scalars['ID']['input'];
|
|
829
1227
|
};
|
|
1228
|
+
export type MutationRemoveAdminArgs = {
|
|
1229
|
+
userId: Scalars['ID']['input'];
|
|
1230
|
+
};
|
|
830
1231
|
export type MutationRemoveMobileAppAccessArgs = {
|
|
831
1232
|
profileId: Scalars['ID']['input'];
|
|
832
1233
|
};
|
|
1234
|
+
export type MutationRemoveStaffArgs = {
|
|
1235
|
+
userId: Scalars['ID']['input'];
|
|
1236
|
+
};
|
|
833
1237
|
export type MutationReplaceTrialParametersArgs = {
|
|
834
1238
|
input: Array<ReplaceTrialParameterInput>;
|
|
835
1239
|
trialId: Scalars['ID']['input'];
|
|
836
1240
|
};
|
|
1241
|
+
export type MutationRequestEmailChangeArgs = {
|
|
1242
|
+
newEmail: Scalars['String']['input'];
|
|
1243
|
+
userId?: InputMaybe<Scalars['ID']['input']>;
|
|
1244
|
+
};
|
|
837
1245
|
export type MutationRequestPoseProcessingArgs = {
|
|
838
1246
|
testFileId: Scalars['ID']['input'];
|
|
839
1247
|
};
|
|
840
1248
|
export type MutationResendInvitationArgs = {
|
|
841
1249
|
invitationId: Scalars['ID']['input'];
|
|
842
1250
|
};
|
|
1251
|
+
export type MutationResetMobileClientPasswordArgs = {
|
|
1252
|
+
profileId: Scalars['ID']['input'];
|
|
1253
|
+
};
|
|
1254
|
+
export type MutationResetPasswordWithTokenArgs = {
|
|
1255
|
+
newPassword: Scalars['String']['input'];
|
|
1256
|
+
token: Scalars['String']['input'];
|
|
1257
|
+
};
|
|
1258
|
+
export type MutationRestoreAdminArgs = {
|
|
1259
|
+
userId: Scalars['ID']['input'];
|
|
1260
|
+
};
|
|
1261
|
+
export type MutationRevokeSessionArgs = {
|
|
1262
|
+
sessionId: Scalars['ID']['input'];
|
|
1263
|
+
};
|
|
1264
|
+
export type MutationRevokeUserAccessArgs = {
|
|
1265
|
+
userId: Scalars['ID']['input'];
|
|
1266
|
+
};
|
|
1267
|
+
export type MutationSetProfileAssignmentsArgs = {
|
|
1268
|
+
input: SetProfileAssignmentsInput;
|
|
1269
|
+
};
|
|
1270
|
+
export type MutationSuspendAdminArgs = {
|
|
1271
|
+
userId: Scalars['ID']['input'];
|
|
1272
|
+
};
|
|
843
1273
|
export type MutationUnarchiveUserProfileArgs = {
|
|
844
1274
|
id: Scalars['ID']['input'];
|
|
845
1275
|
};
|
|
@@ -847,6 +1277,10 @@ export type MutationUnassignActionFromProfileArgs = {
|
|
|
847
1277
|
actionId: Scalars['ID']['input'];
|
|
848
1278
|
profileId: Scalars['ID']['input'];
|
|
849
1279
|
};
|
|
1280
|
+
export type MutationUnassignModuleFromProfileArgs = {
|
|
1281
|
+
moduleId: Scalars['ID']['input'];
|
|
1282
|
+
profileId: Scalars['ID']['input'];
|
|
1283
|
+
};
|
|
850
1284
|
export type MutationUnassignRoutineFromProfileArgs = {
|
|
851
1285
|
profileId: Scalars['ID']['input'];
|
|
852
1286
|
routineId: Scalars['ID']['input'];
|
|
@@ -890,6 +1324,12 @@ export type MutationUpdateVideoDataOffsetArgs = {
|
|
|
890
1324
|
offset: Scalars['Int']['input'];
|
|
891
1325
|
testFileId: Scalars['ID']['input'];
|
|
892
1326
|
};
|
|
1327
|
+
export type MutationVerifyInvitationIdentityArgs = {
|
|
1328
|
+
dateOfBirth: Scalars['Date']['input'];
|
|
1329
|
+
firstName: Scalars['String']['input'];
|
|
1330
|
+
lastName: Scalars['String']['input'];
|
|
1331
|
+
token: Scalars['String']['input'];
|
|
1332
|
+
};
|
|
893
1333
|
export type Parameter = {
|
|
894
1334
|
__typename?: 'Parameter';
|
|
895
1335
|
id: Scalars['ID']['output'];
|
|
@@ -902,6 +1342,66 @@ export declare enum ParameterKind {
|
|
|
902
1342
|
Limit = "Limit",
|
|
903
1343
|
Target = "Target"
|
|
904
1344
|
}
|
|
1345
|
+
/**
|
|
1346
|
+
* AC-4.9.9 — WHICH of the two things a reset did.
|
|
1347
|
+
*
|
|
1348
|
+
* The mutation returned `Boolean!`, and a reset has two outcomes: the password is
|
|
1349
|
+
* set directly, or a single-use link is sent and the password the operator typed
|
|
1350
|
+
* is discarded. One bit cannot carry that, so the Console reported "Password for X
|
|
1351
|
+
* has been changed successfully" on a path where no password was changed and
|
|
1352
|
+
* support read out a credential that never existed.
|
|
1353
|
+
*/
|
|
1354
|
+
export declare enum PasswordChangeOutcome {
|
|
1355
|
+
/**
|
|
1356
|
+
* A single-use, time-limited link was sent to the person instead, and no
|
|
1357
|
+
* password was chosen on their behalf. Any password the caller supplied was
|
|
1358
|
+
* discarded. This is the outcome for every client (AC-4.9.2) and for anybody
|
|
1359
|
+
* outside the caller's own organisation (AC-4.9.5).
|
|
1360
|
+
*/
|
|
1361
|
+
LinkSent = "LINK_SENT",
|
|
1362
|
+
/**
|
|
1363
|
+
* Nothing was written. The row the update aimed at was not there — AC-3.3.1's
|
|
1364
|
+
* case, where reporting success from the absence of an error is the defect.
|
|
1365
|
+
*/
|
|
1366
|
+
NotChanged = "NOT_CHANGED",
|
|
1367
|
+
/** A password was set on the account. It is the one the caller supplied. */
|
|
1368
|
+
PasswordSet = "PASSWORD_SET"
|
|
1369
|
+
}
|
|
1370
|
+
/**
|
|
1371
|
+
* A change of email address that has been requested and not yet confirmed. It
|
|
1372
|
+
* carries no token: this is what a screen may show, and a token is not.
|
|
1373
|
+
*/
|
|
1374
|
+
export type PendingEmailChange = {
|
|
1375
|
+
__typename?: 'PendingEmailChange';
|
|
1376
|
+
/** When the verification link stops working. */
|
|
1377
|
+
expiresAt: Scalars['String']['output'];
|
|
1378
|
+
/** The address the account will move to once the link is opened. */
|
|
1379
|
+
newEmail: Scalars['String']['output'];
|
|
1380
|
+
};
|
|
1381
|
+
/**
|
|
1382
|
+
* Which of an organisation's people to return. One account holds one role, so
|
|
1383
|
+
* these two sets never overlap.
|
|
1384
|
+
*/
|
|
1385
|
+
export declare enum PersonKind {
|
|
1386
|
+
Client = "CLIENT",
|
|
1387
|
+
Staff = "STAFF"
|
|
1388
|
+
}
|
|
1389
|
+
/**
|
|
1390
|
+
* US-4.2 — one page of an organisation's people.
|
|
1391
|
+
*
|
|
1392
|
+
* `Group.users` returns EVERY user in the organisation including archived ones,
|
|
1393
|
+
* with no role filter, and the Console renders all of them in one pass. That does
|
|
1394
|
+
* not survive an organisation with two thousand people, and it left the split
|
|
1395
|
+
* between staff and clients to be decided in the client.
|
|
1396
|
+
*/
|
|
1397
|
+
export type PersonPage = {
|
|
1398
|
+
__typename?: 'PersonPage';
|
|
1399
|
+
/** Cursor for the next page, or null when this is the last one. */
|
|
1400
|
+
nextCursor?: Maybe<Scalars['String']['output']>;
|
|
1401
|
+
people: Array<User>;
|
|
1402
|
+
/** Total matching the filter, before paging. */
|
|
1403
|
+
totalCount: Scalars['Int']['output'];
|
|
1404
|
+
};
|
|
905
1405
|
export type PoiMetric = {
|
|
906
1406
|
__typename?: 'PoiMetric';
|
|
907
1407
|
frame: Scalars['Int']['output'];
|
|
@@ -932,8 +1432,17 @@ export type QuantumOwnedData = {
|
|
|
932
1432
|
export type Query = {
|
|
933
1433
|
__typename?: 'Query';
|
|
934
1434
|
actions: Array<Action>;
|
|
1435
|
+
/**
|
|
1436
|
+
* US-5.1 — every account holding admin, at every point in its lifecycle.
|
|
1437
|
+
* There is no consolidated list of admin holders anywhere in the product
|
|
1438
|
+
* today, and no way to grant the role or end it from any interface.
|
|
1439
|
+
*/
|
|
1440
|
+
adminHolders: Array<AdminHolder>;
|
|
935
1441
|
analysisClassifications: Array<AnalysisClassification>;
|
|
1442
|
+
appEnv: Scalars['String']['output'];
|
|
1443
|
+
assignCatalog: AssignCatalog;
|
|
936
1444
|
assignedReport?: Maybe<AssignedReport>;
|
|
1445
|
+
auditLogs: Array<AuditLogEntry>;
|
|
937
1446
|
currentGroup?: Maybe<Group>;
|
|
938
1447
|
generalActivityReport?: Maybe<GeneralActivityReport>;
|
|
939
1448
|
getActionById?: Maybe<Action>;
|
|
@@ -947,6 +1456,17 @@ export type Query = {
|
|
|
947
1456
|
group?: Maybe<Group>;
|
|
948
1457
|
groups: Array<Group>;
|
|
949
1458
|
historicalMetrics: Array<AnalysisMetric>;
|
|
1459
|
+
/**
|
|
1460
|
+
* US-5.3 / UF-3.1 — Quantum's own organisation, which is where a Quantum staff
|
|
1461
|
+
* invitation must be written (AC-5.3.7) and the one organisation the customer
|
|
1462
|
+
* list deliberately excludes (US-5.4). The Quantum Staff screen cannot ask for
|
|
1463
|
+
* it through `groups`, which filters it out by design.
|
|
1464
|
+
*
|
|
1465
|
+
* Null when no organisation carries the flag — a real state where migration
|
|
1466
|
+
* 000078 has run and nobody has set it yet. The screen says so rather than
|
|
1467
|
+
* offering to invite somebody into nowhere.
|
|
1468
|
+
*/
|
|
1469
|
+
internalOrganisation?: Maybe<Group>;
|
|
950
1470
|
invitations: Array<Invitation>;
|
|
951
1471
|
keypoints: Array<Keypoint>;
|
|
952
1472
|
me?: Maybe<CurrentUser>;
|
|
@@ -954,6 +1474,12 @@ export type Query = {
|
|
|
954
1474
|
moduleCategories: Array<ModuleCategory>;
|
|
955
1475
|
modules: Array<ActionModule>;
|
|
956
1476
|
movementCoordinationReport?: Maybe<MovementCoordinationReport>;
|
|
1477
|
+
/**
|
|
1478
|
+
* AC-6.4.3 — your own pending change of address, so the person whose account it
|
|
1479
|
+
* is can see that one is in flight rather than only the operator who asked for
|
|
1480
|
+
* it.
|
|
1481
|
+
*/
|
|
1482
|
+
myPendingEmailChange?: Maybe<PendingEmailChange>;
|
|
957
1483
|
profileSessionForToday: Session;
|
|
958
1484
|
quantumOwnedActions: Array<Action>;
|
|
959
1485
|
quantumOwnedModules: Array<ActionModule>;
|
|
@@ -961,6 +1487,8 @@ export type Query = {
|
|
|
961
1487
|
rangeReport?: Maybe<RangeReport>;
|
|
962
1488
|
routine?: Maybe<Routine>;
|
|
963
1489
|
routines: Array<Routine>;
|
|
1490
|
+
/** The caller's signed-in devices, newest first. */
|
|
1491
|
+
sessions: Array<DeviceSession>;
|
|
964
1492
|
sessionsCreatedByProfile: Array<Session>;
|
|
965
1493
|
sessionsForProfile: Array<Session>;
|
|
966
1494
|
stabilityBalanceReport?: Maybe<StabilityBalanceReport>;
|
|
@@ -976,9 +1504,15 @@ export type Query = {
|
|
|
976
1504
|
export type QueryActionsArgs = {
|
|
977
1505
|
groupId?: InputMaybe<Scalars['ID']['input']>;
|
|
978
1506
|
};
|
|
1507
|
+
export type QueryAdminHoldersArgs = {
|
|
1508
|
+
search?: InputMaybe<Scalars['String']['input']>;
|
|
1509
|
+
};
|
|
979
1510
|
export type QueryAssignedReportArgs = {
|
|
980
1511
|
id: Scalars['ID']['input'];
|
|
981
1512
|
};
|
|
1513
|
+
export type QueryAuditLogsArgs = {
|
|
1514
|
+
filter?: InputMaybe<AuditLogFilter>;
|
|
1515
|
+
};
|
|
982
1516
|
export type QueryGeneralActivityReportArgs = {
|
|
983
1517
|
id: Scalars['ID']['input'];
|
|
984
1518
|
};
|
|
@@ -1166,6 +1700,23 @@ export declare enum SessionType {
|
|
|
1166
1700
|
BiofeedbackTraining = "BiofeedbackTraining",
|
|
1167
1701
|
RecordedTesting = "RecordedTesting"
|
|
1168
1702
|
}
|
|
1703
|
+
export type SetProfileAssignmentsInput = {
|
|
1704
|
+
changes: Array<AssignmentChangeInput>;
|
|
1705
|
+
profileId: Scalars['ID']['input'];
|
|
1706
|
+
};
|
|
1707
|
+
/**
|
|
1708
|
+
* Per-item outcomes plus the plan as the server now holds it, so the panel
|
|
1709
|
+
* reconciles against the server in the same round trip (AC-4.4.32).
|
|
1710
|
+
*/
|
|
1711
|
+
export type SetProfileAssignmentsResult = {
|
|
1712
|
+
__typename?: 'SetProfileAssignmentsResult';
|
|
1713
|
+
/** The practitioner's individually-picked activities ONLY — not the client's full library. A program's activities are supplied by the program, not listed here; see UserProfile.assignedActions for the full union. */
|
|
1714
|
+
assignedActionIds: Array<Scalars['ID']['output']>;
|
|
1715
|
+
assignedActionReports: Array<AssignedActionReport>;
|
|
1716
|
+
/** The programs assigned directly to this profile. Does not include a program's own activities, which are derived at read time from the module, not stored here. */
|
|
1717
|
+
assignedModuleIds: Array<Scalars['ID']['output']>;
|
|
1718
|
+
results: Array<AssignmentChangeResult>;
|
|
1719
|
+
};
|
|
1169
1720
|
export type StabilityBalanceReport = {
|
|
1170
1721
|
__typename?: 'StabilityBalanceReport';
|
|
1171
1722
|
averageParameterScores: Array<TestAverageParameterScore>;
|
|
@@ -1537,6 +2088,28 @@ export type User = {
|
|
|
1537
2088
|
deletedAt?: Maybe<Scalars['Date']['output']>;
|
|
1538
2089
|
email: Scalars['String']['output'];
|
|
1539
2090
|
id: Scalars['ID']['output'];
|
|
2091
|
+
/**
|
|
2092
|
+
* Where this account sits in its lifecycle. deletedAt says only that the account
|
|
2093
|
+
* is inactive; it cannot tell a SUSPENDED person, who can be restored, from a
|
|
2094
|
+
* REMOVED one, who never can.
|
|
2095
|
+
*
|
|
2096
|
+
* Reading the label from deletedAt alone made the Console offer Restore on a
|
|
2097
|
+
* removed account — an action the server refuses and always will, because the
|
|
2098
|
+
* person gave up their sign-in identity and somebody else may now hold it
|
|
2099
|
+
* (AC-2.3.12: a removed person stays listed, marked removed, with no action
|
|
2100
|
+
* offered on their row).
|
|
2101
|
+
*/
|
|
2102
|
+
lifecycle: AccountLifecycle;
|
|
2103
|
+
/**
|
|
2104
|
+
* AC-4.7.2 — a change of email address awaiting confirmation, and the address
|
|
2105
|
+
* it is going to. Null when none is in flight.
|
|
2106
|
+
*
|
|
2107
|
+
* The row has to be able to say this. Requesting a change alters nothing on the
|
|
2108
|
+
* account, so without it the screen shows the old address and looks identical
|
|
2109
|
+
* whether or not somebody asked for a change an hour ago — and an operator who
|
|
2110
|
+
* cannot see a pending change cannot cancel one either.
|
|
2111
|
+
*/
|
|
2112
|
+
pendingEmailChange?: Maybe<PendingEmailChange>;
|
|
1540
2113
|
profile?: Maybe<UserProfile>;
|
|
1541
2114
|
roles: Array<Scalars['String']['output']>;
|
|
1542
2115
|
unitSystem: UnitSystem;
|
|
@@ -1546,11 +2119,17 @@ export type User = {
|
|
|
1546
2119
|
export type UserProfile = {
|
|
1547
2120
|
__typename?: 'UserProfile';
|
|
1548
2121
|
age?: Maybe<Scalars['Int']['output']>;
|
|
2122
|
+
/** AC-14.2.4: one entry per activity in the client's plan, saying how it got there. Deliberately NOT filtered by any practitioner's catalogue — items outside the reader's reach are reported too. Scoped like every other assignment read: a client reaches only their own profile. */
|
|
2123
|
+
assignedActionProvenance: Array<AssignedActionProvenance>;
|
|
2124
|
+
assignedActionReports: Array<AssignedActionReport>;
|
|
1549
2125
|
assignedActions: Array<Action>;
|
|
2126
|
+
assignedModules: Array<ActionModule>;
|
|
1550
2127
|
assignedRoutines: Array<Routine>;
|
|
1551
2128
|
createdAt: Scalars['Date']['output'];
|
|
1552
2129
|
date_of_birth?: Maybe<Scalars['Date']['output']>;
|
|
1553
2130
|
deletedAt?: Maybe<Scalars['Date']['output']>;
|
|
2131
|
+
/** The practitioner's individually-picked activities ONLY — the same set SetProfileAssignmentsResult.assignedActionIds returns. assignedActions, by contrast, is the client's whole visible library: these direct picks plus every activity supplied by an assigned program. */
|
|
2132
|
+
directAssignedActionIds: Array<Scalars['ID']['output']>;
|
|
1554
2133
|
firstName: Scalars['String']['output'];
|
|
1555
2134
|
gender?: Maybe<Scalars['String']['output']>;
|
|
1556
2135
|
group?: Maybe<GroupInfo>;
|
|
@@ -1559,6 +2138,8 @@ export type UserProfile = {
|
|
|
1559
2138
|
id: Scalars['ID']['output'];
|
|
1560
2139
|
lastName: Scalars['String']['output'];
|
|
1561
2140
|
mobileAccessEmail?: Maybe<Scalars['String']['output']>;
|
|
2141
|
+
mobileAccessStatus: MobileAccessStatus;
|
|
2142
|
+
mobileInvitation?: Maybe<Invitation>;
|
|
1562
2143
|
updatedAt: Scalars['Date']['output'];
|
|
1563
2144
|
weight?: Maybe<Scalars['Float']['output']>;
|
|
1564
2145
|
};
|