quantum-component-library 1.4.69 → 1.4.71
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/parameter-edit-list/index.d.ts +2 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1428 -1398
- 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 +601 -6
- package/dist/generated-graphql.cjs +1 -1
- package/dist/generated-graphql.js +83 -76
- 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 +1 -1
- package/dist/hooks.js +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +47 -46
- 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-icons-vendor-D3in8HbI.cjs +1 -0
- package/dist/{react-icons-vendor-DqOJrTLA.js → react-icons-vendor-bPI9-m-x.js} +26 -22
- 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 +1 -1
- package/dist/react-icons-vendor-c4NUuwCE.cjs +0 -1
- package/dist/services-human-DFPelsei.cjs +0 -1
- package/dist/utils-parameters-dwKmz1VU.cjs +0 -1
|
@@ -46,23 +46,21 @@ export type Scalars = {
|
|
|
46
46
|
input: any;
|
|
47
47
|
output: any;
|
|
48
48
|
};
|
|
49
|
-
/** An ISO-8601 encoded date string (YYYY-MM-DD) */
|
|
50
49
|
DateString: {
|
|
51
50
|
input: any;
|
|
52
51
|
output: any;
|
|
53
52
|
};
|
|
54
|
-
/** Long custom scalar type */
|
|
55
53
|
Long: {
|
|
56
54
|
input: any;
|
|
57
55
|
output: any;
|
|
58
56
|
};
|
|
59
|
-
/** Unit custom scalar type */
|
|
60
57
|
Unit: {
|
|
61
58
|
input: any;
|
|
62
59
|
output: any;
|
|
63
60
|
};
|
|
64
61
|
};
|
|
65
62
|
export type AcceptInvitationInput = {
|
|
63
|
+
dateOfBirth?: InputMaybe<Scalars['Date']['input']>;
|
|
66
64
|
firstName: Scalars['String']['input'];
|
|
67
65
|
lastName: Scalars['String']['input'];
|
|
68
66
|
password: Scalars['String']['input'];
|
|
@@ -71,9 +69,25 @@ export type AcceptInvitationInput = {
|
|
|
71
69
|
};
|
|
72
70
|
export type AcceptInvitationResult = {
|
|
73
71
|
__typename?: 'AcceptInvitationResult';
|
|
74
|
-
|
|
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>;
|
|
75
79
|
user: CurrentUser;
|
|
76
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
|
+
}
|
|
77
91
|
export type Action = {
|
|
78
92
|
__typename?: 'Action';
|
|
79
93
|
activityKind: ActionActivityKind;
|
|
@@ -126,6 +140,36 @@ export declare enum ActivityType {
|
|
|
126
140
|
IsolatedAction = "IsolatedAction",
|
|
127
141
|
IsolatedMovement = "IsolatedMovement"
|
|
128
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
|
+
}
|
|
129
173
|
export type AnalysisAction = {
|
|
130
174
|
__typename?: 'AnalysisAction';
|
|
131
175
|
id: Scalars['ID']['output'];
|
|
@@ -197,6 +241,36 @@ export type AnalysisSubClassification = {
|
|
|
197
241
|
id: Scalars['ID']['output'];
|
|
198
242
|
name: Scalars['String']['output'];
|
|
199
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
|
+
};
|
|
200
274
|
export type AssignedReport = {
|
|
201
275
|
__typename?: 'AssignedReport';
|
|
202
276
|
autoGenerate: Scalars['Boolean']['output'];
|
|
@@ -208,15 +282,93 @@ export type AssignedReport = {
|
|
|
208
282
|
testReport?: Maybe<TestReportUnion>;
|
|
209
283
|
testReportId?: Maybe<Scalars['ID']['output']>;
|
|
210
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
|
+
};
|
|
211
339
|
export type AuthSession = {
|
|
212
340
|
__typename?: 'AuthSession';
|
|
213
341
|
accessToken: Scalars['String']['output'];
|
|
342
|
+
/** Seconds until accessToken expires — refresh before it does, without decoding the JWT. */
|
|
343
|
+
expiresIn: Scalars['Int']['output'];
|
|
214
344
|
refreshToken?: Maybe<Scalars['String']['output']>;
|
|
215
345
|
};
|
|
216
346
|
export type ChangePasswordInput = {
|
|
217
|
-
|
|
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']>;
|
|
218
366
|
userId: Scalars['ID']['input'];
|
|
219
367
|
};
|
|
368
|
+
export type ChangePasswordResult = {
|
|
369
|
+
__typename?: 'ChangePasswordResult';
|
|
370
|
+
outcome: PasswordChangeOutcome;
|
|
371
|
+
};
|
|
220
372
|
export type ComparativeMetric = {
|
|
221
373
|
__typename?: 'ComparativeMetric';
|
|
222
374
|
labelA: Scalars['String']['output'];
|
|
@@ -250,6 +402,11 @@ export type CreateAccountInput = {
|
|
|
250
402
|
groupId?: InputMaybe<Scalars['ID']['input']>;
|
|
251
403
|
lastName: Scalars['String']['input'];
|
|
252
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;
|
|
253
410
|
username: Scalars['String']['input'];
|
|
254
411
|
};
|
|
255
412
|
export type CreateAccountResult = {
|
|
@@ -291,8 +448,20 @@ export type CreateInvitationInput = {
|
|
|
291
448
|
email: Scalars['String']['input'];
|
|
292
449
|
firstName?: InputMaybe<Scalars['String']['input']>;
|
|
293
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
|
+
*/
|
|
294
455
|
isAdmin?: InputMaybe<Scalars['Boolean']['input']>;
|
|
295
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;
|
|
296
465
|
};
|
|
297
466
|
export type CreateKeypointGroupInput = {
|
|
298
467
|
activity?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -346,13 +515,21 @@ export type CreateTestInput = {
|
|
|
346
515
|
actionId?: InputMaybe<Scalars['ID']['input']>;
|
|
347
516
|
assignedReportIds?: InputMaybe<Array<Scalars['ID']['input']>>;
|
|
348
517
|
comment?: InputMaybe<Scalars['String']['input']>;
|
|
518
|
+
dataUploadId?: InputMaybe<Scalars['ID']['input']>;
|
|
349
519
|
endedAt?: InputMaybe<Scalars['Date']['input']>;
|
|
350
520
|
info: CreateTestInfoInput;
|
|
521
|
+
isHorizontalFlip?: InputMaybe<Scalars['Boolean']['input']>;
|
|
351
522
|
kind: Scalars['ID']['input'];
|
|
523
|
+
metaData?: InputMaybe<Scalars['String']['input']>;
|
|
352
524
|
name: Scalars['String']['input'];
|
|
525
|
+
requestPose?: InputMaybe<Scalars['Boolean']['input']>;
|
|
526
|
+
routineId?: InputMaybe<Scalars['ID']['input']>;
|
|
353
527
|
sessionId: Scalars['ID']['input'];
|
|
354
528
|
startedAt: Scalars['Date']['input'];
|
|
355
529
|
timezone?: InputMaybe<Scalars['String']['input']>;
|
|
530
|
+
trimEndMs?: InputMaybe<Scalars['Int']['input']>;
|
|
531
|
+
trimStartMs?: InputMaybe<Scalars['Int']['input']>;
|
|
532
|
+
videoUploadId?: InputMaybe<Scalars['ID']['input']>;
|
|
356
533
|
};
|
|
357
534
|
export type CreateTrialInput = {
|
|
358
535
|
endFrame: Scalars['Int']['input'];
|
|
@@ -362,6 +539,7 @@ export type CreateTrialInput = {
|
|
|
362
539
|
};
|
|
363
540
|
export type CreateTrialParameterInput = {
|
|
364
541
|
data?: InputMaybe<TrialParameterDataInput>;
|
|
542
|
+
dataSource?: InputMaybe<TrialParameterDataSource>;
|
|
365
543
|
kind: ParameterKind;
|
|
366
544
|
max: Scalars['Float']['input'];
|
|
367
545
|
metrics?: InputMaybe<TrialParameterMetricsInput>;
|
|
@@ -392,6 +570,25 @@ export type CurrentUser = {
|
|
|
392
570
|
updatedAt: Scalars['String']['output'];
|
|
393
571
|
username: Scalars['String']['output'];
|
|
394
572
|
};
|
|
573
|
+
/**
|
|
574
|
+
* Display-only labels for the session list. Never used in an authorization
|
|
575
|
+
* decision, so treat them as untrusted client input when rendering.
|
|
576
|
+
*/
|
|
577
|
+
export type DeviceInput = {
|
|
578
|
+
name?: InputMaybe<Scalars['String']['input']>;
|
|
579
|
+
platform?: InputMaybe<Scalars['String']['input']>;
|
|
580
|
+
};
|
|
581
|
+
/** One signed-in device. */
|
|
582
|
+
export type DeviceSession = {
|
|
583
|
+
__typename?: 'DeviceSession';
|
|
584
|
+
createdAt: Scalars['String']['output'];
|
|
585
|
+
/** True for the session making this request. */
|
|
586
|
+
current: Scalars['Boolean']['output'];
|
|
587
|
+
deviceName?: Maybe<Scalars['String']['output']>;
|
|
588
|
+
devicePlatform?: Maybe<Scalars['String']['output']>;
|
|
589
|
+
id: Scalars['ID']['output'];
|
|
590
|
+
lastUsedAt?: Maybe<Scalars['String']['output']>;
|
|
591
|
+
};
|
|
395
592
|
export type DiscreteMetric = {
|
|
396
593
|
__typename?: 'DiscreteMetric';
|
|
397
594
|
unit: Scalars['Unit']['output'];
|
|
@@ -401,6 +598,15 @@ export type DiscreteMetricInput = {
|
|
|
401
598
|
unit: Scalars['Unit']['input'];
|
|
402
599
|
value: Scalars['Float']['input'];
|
|
403
600
|
};
|
|
601
|
+
/**
|
|
602
|
+
* A feature flag evaluated by the API for the signed-in user. Web and mobile read
|
|
603
|
+
* flags only through this query; no client talks to the flag provider directly.
|
|
604
|
+
*/
|
|
605
|
+
export type FeatureFlag = {
|
|
606
|
+
__typename?: 'FeatureFlag';
|
|
607
|
+
enabled: Scalars['Boolean']['output'];
|
|
608
|
+
key: Scalars['String']['output'];
|
|
609
|
+
};
|
|
404
610
|
export type GeneralActivityReport = {
|
|
405
611
|
__typename?: 'GeneralActivityReport';
|
|
406
612
|
averageParameterScores: Array<TestAverageParameterScore>;
|
|
@@ -414,15 +620,37 @@ export type Group = {
|
|
|
414
620
|
id: Scalars['ID']['output'];
|
|
415
621
|
imageUrl?: Maybe<Scalars['String']['output']>;
|
|
416
622
|
name: Scalars['String']['output'];
|
|
623
|
+
/**
|
|
624
|
+
* One page of the organisation's people, filtered by role and searchable by
|
|
625
|
+
* name, username or email. The split is decided ONCE, on the server.
|
|
626
|
+
*/
|
|
627
|
+
people: PersonPage;
|
|
417
628
|
profiles: Array<UserProfile>;
|
|
418
629
|
updatedAt: Scalars['String']['output'];
|
|
630
|
+
/**
|
|
631
|
+
* Superseded by `people`. Unfiltered and unpaged; kept so existing callers
|
|
632
|
+
* still work while they move over.
|
|
633
|
+
*/
|
|
419
634
|
users: Array<User>;
|
|
420
635
|
};
|
|
636
|
+
export type GroupPeopleArgs = {
|
|
637
|
+
cursor?: InputMaybe<Scalars['String']['input']>;
|
|
638
|
+
includeArchived?: InputMaybe<Scalars['Boolean']['input']>;
|
|
639
|
+
kind: PersonKind;
|
|
640
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
641
|
+
search?: InputMaybe<Scalars['String']['input']>;
|
|
642
|
+
};
|
|
421
643
|
export type GroupInfo = {
|
|
422
644
|
__typename?: 'GroupInfo';
|
|
423
645
|
id: Scalars['ID']['output'];
|
|
424
646
|
name: Scalars['String']['output'];
|
|
425
647
|
};
|
|
648
|
+
export type IdentityVerificationResult = {
|
|
649
|
+
__typename?: 'IdentityVerificationResult';
|
|
650
|
+
errorMessage?: Maybe<Scalars['String']['output']>;
|
|
651
|
+
locked: Scalars['Boolean']['output'];
|
|
652
|
+
verified: Scalars['Boolean']['output'];
|
|
653
|
+
};
|
|
426
654
|
export type ImageMetric = {
|
|
427
655
|
__typename?: 'ImageMetric';
|
|
428
656
|
path: Scalars['String']['output'];
|
|
@@ -439,6 +667,9 @@ export type Invitation = {
|
|
|
439
667
|
invitedBy?: Maybe<InvitationInviter>;
|
|
440
668
|
isAdmin: Scalars['Boolean']['output'];
|
|
441
669
|
lastName?: Maybe<Scalars['String']['output']>;
|
|
670
|
+
requiresIdentityVerification: Scalars['Boolean']['output'];
|
|
671
|
+
/** The role this invitation grants. Null only on rows predating US-1.3. */
|
|
672
|
+
role?: Maybe<InvitationRole>;
|
|
442
673
|
status: InvitationStatus;
|
|
443
674
|
type: InvitationType;
|
|
444
675
|
};
|
|
@@ -448,6 +679,22 @@ export type InvitationInviter = {
|
|
|
448
679
|
id: Scalars['ID']['output'];
|
|
449
680
|
username: Scalars['String']['output'];
|
|
450
681
|
};
|
|
682
|
+
/**
|
|
683
|
+
* The role an invitation grants. Every invitation carries exactly one, chosen at
|
|
684
|
+
* creation: an account that comes into existence holding no role can sign in and
|
|
685
|
+
* do nothing, and nobody can diagnose that from the outside (US-1.3).
|
|
686
|
+
*
|
|
687
|
+
* `admin` and `mobile_client` are absent from the Console's selector but present
|
|
688
|
+
* here, because the server decides both — an admin invitation is US-5.1's, and a
|
|
689
|
+
* client invitation is the customer web app's.
|
|
690
|
+
*/
|
|
691
|
+
export declare enum InvitationRole {
|
|
692
|
+
AccountAdmin = "account_admin",
|
|
693
|
+
AccountManager = "account_manager",
|
|
694
|
+
AccountUser = "account_user",
|
|
695
|
+
Admin = "admin",
|
|
696
|
+
MobileClient = "mobile_client"
|
|
697
|
+
}
|
|
451
698
|
export declare enum InvitationStatus {
|
|
452
699
|
Accepted = "ACCEPTED",
|
|
453
700
|
Cancelled = "CANCELLED",
|
|
@@ -461,6 +708,12 @@ export declare enum InvitationType {
|
|
|
461
708
|
}
|
|
462
709
|
export type InvitationValidation = {
|
|
463
710
|
__typename?: 'InvitationValidation';
|
|
711
|
+
/**
|
|
712
|
+
* MOB-552 — why the token is not valid: INVITATION_NOT_FOUND, INVITATION_EXPIRED,
|
|
713
|
+
* INVITATION_ALREADY_USED or INVITATION_CANCELLED. errorMessage is left as the
|
|
714
|
+
* text existing clients display.
|
|
715
|
+
*/
|
|
716
|
+
errorCode?: Maybe<Scalars['String']['output']>;
|
|
464
717
|
errorMessage?: Maybe<Scalars['String']['output']>;
|
|
465
718
|
invitation?: Maybe<Invitation>;
|
|
466
719
|
valid: Scalars['Boolean']['output'];
|
|
@@ -552,6 +805,14 @@ export type MetricInput = {
|
|
|
552
805
|
poiMetrics?: InputMaybe<Array<PoiMetricInput>>;
|
|
553
806
|
table?: InputMaybe<TableMetricInput>;
|
|
554
807
|
};
|
|
808
|
+
export declare enum MobileAccessStatus {
|
|
809
|
+
Accepted = "ACCEPTED",
|
|
810
|
+
Expired = "EXPIRED",
|
|
811
|
+
/** The profile is linked to a login that is not an active mobile client; it cannot be invited. */
|
|
812
|
+
LinkedAccount = "LINKED_ACCOUNT",
|
|
813
|
+
None = "NONE",
|
|
814
|
+
Pending = "PENDING"
|
|
815
|
+
}
|
|
555
816
|
export type ModuleAction = {
|
|
556
817
|
__typename?: 'ModuleAction';
|
|
557
818
|
action: Action;
|
|
@@ -592,10 +853,57 @@ export type Mutation = {
|
|
|
592
853
|
addActionToModule: ActionModule;
|
|
593
854
|
archiveUser: Scalars['Boolean']['output'];
|
|
594
855
|
assignActionToProfile: Scalars['Boolean']['output'];
|
|
856
|
+
assignModuleToProfile: Scalars['Boolean']['output'];
|
|
595
857
|
assignRoutineToProfile: Scalars['Boolean']['output'];
|
|
596
858
|
assignTestToRoutine: Scalars['Boolean']['output'];
|
|
859
|
+
attachReportToAssignedAction: Scalars['Boolean']['output'];
|
|
860
|
+
attachTestFiles: TestFile;
|
|
861
|
+
/**
|
|
862
|
+
* AC-4.6.12 — stop a pending change of email address, from the single-use link
|
|
863
|
+
* sent to the address currently on the account. Public for the same reason
|
|
864
|
+
* confirmation is, and a stronger one: the person objecting may be objecting
|
|
865
|
+
* because somebody else holds a session on their account.
|
|
866
|
+
*
|
|
867
|
+
* It can only ever STOP a change. There is no address it can set.
|
|
868
|
+
*/
|
|
869
|
+
cancelEmailChange: Scalars['Boolean']['output'];
|
|
597
870
|
cancelInvitation: Scalars['Boolean']['output'];
|
|
598
|
-
|
|
871
|
+
/**
|
|
872
|
+
* AC-4.7.3 — cancel a pending change from the Console, which kills the
|
|
873
|
+
* verification link with it. Omit `userId` to cancel your own.
|
|
874
|
+
*
|
|
875
|
+
* The pair to the link in the warning email: the same discard, reached by
|
|
876
|
+
* somebody signed in with authority over the account rather than by somebody
|
|
877
|
+
* holding a token. Succeeds when nothing is pending — no pending change is the
|
|
878
|
+
* outcome the caller wanted.
|
|
879
|
+
*/
|
|
880
|
+
cancelPendingEmailChange: Scalars['Boolean']['output'];
|
|
881
|
+
/**
|
|
882
|
+
* Change a password: your own (row D.3, and then `currentPassword` is required)
|
|
883
|
+
* or somebody else's (rows B.9 and C.7). The result says WHICH of the two
|
|
884
|
+
* outcomes happened rather than only that something did — see
|
|
885
|
+
* PasswordChangeOutcome.
|
|
886
|
+
*/
|
|
887
|
+
changePassword: ChangePasswordResult;
|
|
888
|
+
/**
|
|
889
|
+
* US-4.4 — move a person between the three clinic roles.
|
|
890
|
+
*
|
|
891
|
+
* A role could only be assigned at invitation time; there was no way to change
|
|
892
|
+
* it afterwards from any interface, so a promotion meant deleting the person and
|
|
893
|
+
* inviting them again.
|
|
894
|
+
*
|
|
895
|
+
* Granting is always a REPLACEMENT, because an account holds exactly one role:
|
|
896
|
+
* there is no state in which it holds two, and none in which it holds none.
|
|
897
|
+
* `account_user` is the floor, so no clinic role change can produce a roleless
|
|
898
|
+
* account.
|
|
899
|
+
*/
|
|
900
|
+
changeRole: User;
|
|
901
|
+
/**
|
|
902
|
+
* Confirm a change of email address. Public: the person opening the link is
|
|
903
|
+
* proving they hold the new mailbox, which is the whole point, and they may not
|
|
904
|
+
* be signed in when they do it.
|
|
905
|
+
*/
|
|
906
|
+
confirmEmailChange: Scalars['Boolean']['output'];
|
|
599
907
|
convertActionToQuantumOwned: Action;
|
|
600
908
|
copyActions: Scalars['Boolean']['output'];
|
|
601
909
|
copyModules: Scalars['Boolean']['output'];
|
|
@@ -633,18 +941,75 @@ export type Mutation = {
|
|
|
633
941
|
deleteTrial: Scalars['Boolean']['output'];
|
|
634
942
|
deleteTrialParameter: Scalars['Boolean']['output'];
|
|
635
943
|
deleteUserProfile: Scalars['Boolean']['output'];
|
|
944
|
+
detachReportFromAssignedAction: Scalars['Boolean']['output'];
|
|
636
945
|
duplicateAction: Scalars['Boolean']['output'];
|
|
637
946
|
inviteMobileAppUser: Scalars['Boolean']['output'];
|
|
638
947
|
inviteTeamMember: Invitation;
|
|
639
948
|
login?: Maybe<LoginResult>;
|
|
949
|
+
/**
|
|
950
|
+
* Closes one session. Pass refreshToken to log out with an expired access
|
|
951
|
+
* token; otherwise the bearer token identifies the session. Always succeeds —
|
|
952
|
+
* a session that is already closed is the outcome the caller wanted.
|
|
953
|
+
*/
|
|
954
|
+
logout: Scalars['Boolean']['output'];
|
|
955
|
+
/** Closes every session except the one making this request. */
|
|
956
|
+
logoutOtherDevices: Scalars['Boolean']['output'];
|
|
957
|
+
mobileInviteLink: Scalars['String']['output'];
|
|
640
958
|
refresh: LoginResult;
|
|
959
|
+
removeAccountAdminRole: Scalars['Boolean']['output'];
|
|
641
960
|
removeActionFromModule: ActionModule;
|
|
961
|
+
/**
|
|
962
|
+
* US-5.1 — REMOVE a Quantum staff account. NOT reversible: the same effects as
|
|
963
|
+
* suspending, and the role comes off so the person can never be restored.
|
|
964
|
+
* Bringing them back means a fresh invitation.
|
|
965
|
+
*
|
|
966
|
+
* Until now there was only suspend, used for both — so a departed employee
|
|
967
|
+
* still held an account with the highest privilege in the system, one click
|
|
968
|
+
* away from being live again, with nothing marking that they should not return.
|
|
969
|
+
*/
|
|
970
|
+
removeAdmin: Scalars['Boolean']['output'];
|
|
642
971
|
removeMobileAppAccess: Scalars['Boolean']['output'];
|
|
972
|
+
/**
|
|
973
|
+
* US-2.3 / row B.3 — REMOVE a staff member from a clinic. NOT reversible: the
|
|
974
|
+
* same effects as suspending (sessions end, the account is hidden), and the
|
|
975
|
+
* clinic role comes off so the person can never be restored.
|
|
976
|
+
*
|
|
977
|
+
* The pair to `archiveUser`, which suspends and is reversible. Removal is what
|
|
978
|
+
* a clinic needs when somebody has left rather than gone on leave — and until
|
|
979
|
+
* now only suspend existed, used for both.
|
|
980
|
+
*
|
|
981
|
+
* The row stays on the clinic's staff list, marked removed, with no action
|
|
982
|
+
* offered: with no audit-log viewer in this delivery, that row is the only
|
|
983
|
+
* thing that can answer who used to work here while the clinical records they
|
|
984
|
+
* created remain (AC-2.3.12).
|
|
985
|
+
*/
|
|
986
|
+
removeStaff: Scalars['Boolean']['output'];
|
|
643
987
|
replaceTrialParameters: Array<TrialParameter>;
|
|
988
|
+
/**
|
|
989
|
+
* US-4.6 — request a change of email address. Nothing on the account changes:
|
|
990
|
+
* a verification link goes to the NEW address, and the old one keeps working
|
|
991
|
+
* until it is confirmed. Omit `userId` to change your own (row D.4).
|
|
992
|
+
*/
|
|
993
|
+
requestEmailChange: Scalars['Boolean']['output'];
|
|
644
994
|
requestPoseProcessing: Scalars['Boolean']['output'];
|
|
645
995
|
resendInvitation: Invitation;
|
|
996
|
+
resetMobileClientPassword: Scalars['Boolean']['output'];
|
|
997
|
+
resetPasswordWithToken: Scalars['Boolean']['output'];
|
|
998
|
+
/** Reverse a suspension. */
|
|
999
|
+
restoreAdmin: Scalars['Boolean']['output'];
|
|
1000
|
+
/** Closes another of the caller's own devices. False if it was already gone. */
|
|
1001
|
+
revokeSession: Scalars['Boolean']['output'];
|
|
1002
|
+
revokeUserAccess: Scalars['Boolean']['output'];
|
|
1003
|
+
setProfileAssignments: SetProfileAssignmentsResult;
|
|
1004
|
+
/**
|
|
1005
|
+
* US-5.1 — SUSPEND a Quantum staff account. Reversible: sessions end and the
|
|
1006
|
+
* account is hidden, the role stays attached, and the person can come back.
|
|
1007
|
+
* For somebody on leave, under investigation, or with a lost laptop.
|
|
1008
|
+
*/
|
|
1009
|
+
suspendAdmin: Scalars['Boolean']['output'];
|
|
646
1010
|
unarchiveUserProfile: UserProfile;
|
|
647
1011
|
unassignActionFromProfile: Scalars['Boolean']['output'];
|
|
1012
|
+
unassignModuleFromProfile: Scalars['Boolean']['output'];
|
|
648
1013
|
unassignRoutineFromProfile: Scalars['Boolean']['output'];
|
|
649
1014
|
updateAction: Action;
|
|
650
1015
|
updateGroup: Group;
|
|
@@ -656,8 +1021,10 @@ export type Mutation = {
|
|
|
656
1021
|
updateTrialData: Trial;
|
|
657
1022
|
updateUserProfile: UserProfile;
|
|
658
1023
|
updateVideoDataOffset: TestFile;
|
|
1024
|
+
verifyInvitationIdentity: IdentityVerificationResult;
|
|
659
1025
|
};
|
|
660
1026
|
export type MutationAcceptInvitationArgs = {
|
|
1027
|
+
device?: InputMaybe<DeviceInput>;
|
|
661
1028
|
input: AcceptInvitationInput;
|
|
662
1029
|
};
|
|
663
1030
|
export type MutationAddActionToModuleArgs = {
|
|
@@ -672,6 +1039,10 @@ export type MutationAssignActionToProfileArgs = {
|
|
|
672
1039
|
actionId: Scalars['ID']['input'];
|
|
673
1040
|
profileId: Scalars['ID']['input'];
|
|
674
1041
|
};
|
|
1042
|
+
export type MutationAssignModuleToProfileArgs = {
|
|
1043
|
+
moduleId: Scalars['ID']['input'];
|
|
1044
|
+
profileId: Scalars['ID']['input'];
|
|
1045
|
+
};
|
|
675
1046
|
export type MutationAssignRoutineToProfileArgs = {
|
|
676
1047
|
profileId: Scalars['ID']['input'];
|
|
677
1048
|
routineId: Scalars['ID']['input'];
|
|
@@ -680,12 +1051,34 @@ export type MutationAssignTestToRoutineArgs = {
|
|
|
680
1051
|
routineId?: InputMaybe<Scalars['ID']['input']>;
|
|
681
1052
|
testId: Scalars['ID']['input'];
|
|
682
1053
|
};
|
|
1054
|
+
export type MutationAttachReportToAssignedActionArgs = {
|
|
1055
|
+
actionId: Scalars['ID']['input'];
|
|
1056
|
+
profileId: Scalars['ID']['input'];
|
|
1057
|
+
reportId: Scalars['ID']['input'];
|
|
1058
|
+
};
|
|
1059
|
+
export type MutationAttachTestFilesArgs = {
|
|
1060
|
+
input: AttachTestFilesInput;
|
|
1061
|
+
testId: Scalars['ID']['input'];
|
|
1062
|
+
};
|
|
1063
|
+
export type MutationCancelEmailChangeArgs = {
|
|
1064
|
+
token: Scalars['String']['input'];
|
|
1065
|
+
};
|
|
683
1066
|
export type MutationCancelInvitationArgs = {
|
|
684
1067
|
invitationId: Scalars['ID']['input'];
|
|
685
1068
|
};
|
|
1069
|
+
export type MutationCancelPendingEmailChangeArgs = {
|
|
1070
|
+
userId?: InputMaybe<Scalars['ID']['input']>;
|
|
1071
|
+
};
|
|
686
1072
|
export type MutationChangePasswordArgs = {
|
|
687
1073
|
input: ChangePasswordInput;
|
|
688
1074
|
};
|
|
1075
|
+
export type MutationChangeRoleArgs = {
|
|
1076
|
+
role: InvitationRole;
|
|
1077
|
+
userId: Scalars['ID']['input'];
|
|
1078
|
+
};
|
|
1079
|
+
export type MutationConfirmEmailChangeArgs = {
|
|
1080
|
+
token: Scalars['String']['input'];
|
|
1081
|
+
};
|
|
689
1082
|
export type MutationConvertActionToQuantumOwnedArgs = {
|
|
690
1083
|
id: Scalars['ID']['input'];
|
|
691
1084
|
};
|
|
@@ -810,6 +1203,10 @@ export type MutationDeleteTrialParameterArgs = {
|
|
|
810
1203
|
export type MutationDeleteUserProfileArgs = {
|
|
811
1204
|
id: Scalars['ID']['input'];
|
|
812
1205
|
};
|
|
1206
|
+
export type MutationDetachReportFromAssignedActionArgs = {
|
|
1207
|
+
actionId: Scalars['ID']['input'];
|
|
1208
|
+
profileId: Scalars['ID']['input'];
|
|
1209
|
+
};
|
|
813
1210
|
export type MutationDuplicateActionArgs = {
|
|
814
1211
|
id: Scalars['ID']['input'];
|
|
815
1212
|
};
|
|
@@ -821,28 +1218,70 @@ export type MutationInviteTeamMemberArgs = {
|
|
|
821
1218
|
input: CreateTeamInvitationInput;
|
|
822
1219
|
};
|
|
823
1220
|
export type MutationLoginArgs = {
|
|
1221
|
+
device?: InputMaybe<DeviceInput>;
|
|
824
1222
|
input: LoginInput;
|
|
825
1223
|
};
|
|
1224
|
+
export type MutationLogoutArgs = {
|
|
1225
|
+
refreshToken?: InputMaybe<Scalars['String']['input']>;
|
|
1226
|
+
};
|
|
1227
|
+
export type MutationMobileInviteLinkArgs = {
|
|
1228
|
+
profileId: Scalars['ID']['input'];
|
|
1229
|
+
};
|
|
826
1230
|
export type MutationRefreshArgs = {
|
|
827
1231
|
refreshToken: Scalars['String']['input'];
|
|
828
1232
|
};
|
|
1233
|
+
export type MutationRemoveAccountAdminRoleArgs = {
|
|
1234
|
+
userId: Scalars['ID']['input'];
|
|
1235
|
+
};
|
|
829
1236
|
export type MutationRemoveActionFromModuleArgs = {
|
|
830
1237
|
moduleActionId: Scalars['ID']['input'];
|
|
831
1238
|
moduleId: Scalars['ID']['input'];
|
|
832
1239
|
};
|
|
1240
|
+
export type MutationRemoveAdminArgs = {
|
|
1241
|
+
userId: Scalars['ID']['input'];
|
|
1242
|
+
};
|
|
833
1243
|
export type MutationRemoveMobileAppAccessArgs = {
|
|
834
1244
|
profileId: Scalars['ID']['input'];
|
|
835
1245
|
};
|
|
1246
|
+
export type MutationRemoveStaffArgs = {
|
|
1247
|
+
userId: Scalars['ID']['input'];
|
|
1248
|
+
};
|
|
836
1249
|
export type MutationReplaceTrialParametersArgs = {
|
|
837
1250
|
input: Array<ReplaceTrialParameterInput>;
|
|
838
1251
|
trialId: Scalars['ID']['input'];
|
|
839
1252
|
};
|
|
1253
|
+
export type MutationRequestEmailChangeArgs = {
|
|
1254
|
+
newEmail: Scalars['String']['input'];
|
|
1255
|
+
userId?: InputMaybe<Scalars['ID']['input']>;
|
|
1256
|
+
};
|
|
840
1257
|
export type MutationRequestPoseProcessingArgs = {
|
|
841
1258
|
testFileId: Scalars['ID']['input'];
|
|
842
1259
|
};
|
|
843
1260
|
export type MutationResendInvitationArgs = {
|
|
844
1261
|
invitationId: Scalars['ID']['input'];
|
|
845
1262
|
};
|
|
1263
|
+
export type MutationResetMobileClientPasswordArgs = {
|
|
1264
|
+
profileId: Scalars['ID']['input'];
|
|
1265
|
+
};
|
|
1266
|
+
export type MutationResetPasswordWithTokenArgs = {
|
|
1267
|
+
newPassword: Scalars['String']['input'];
|
|
1268
|
+
token: Scalars['String']['input'];
|
|
1269
|
+
};
|
|
1270
|
+
export type MutationRestoreAdminArgs = {
|
|
1271
|
+
userId: Scalars['ID']['input'];
|
|
1272
|
+
};
|
|
1273
|
+
export type MutationRevokeSessionArgs = {
|
|
1274
|
+
sessionId: Scalars['ID']['input'];
|
|
1275
|
+
};
|
|
1276
|
+
export type MutationRevokeUserAccessArgs = {
|
|
1277
|
+
userId: Scalars['ID']['input'];
|
|
1278
|
+
};
|
|
1279
|
+
export type MutationSetProfileAssignmentsArgs = {
|
|
1280
|
+
input: SetProfileAssignmentsInput;
|
|
1281
|
+
};
|
|
1282
|
+
export type MutationSuspendAdminArgs = {
|
|
1283
|
+
userId: Scalars['ID']['input'];
|
|
1284
|
+
};
|
|
846
1285
|
export type MutationUnarchiveUserProfileArgs = {
|
|
847
1286
|
id: Scalars['ID']['input'];
|
|
848
1287
|
};
|
|
@@ -850,6 +1289,10 @@ export type MutationUnassignActionFromProfileArgs = {
|
|
|
850
1289
|
actionId: Scalars['ID']['input'];
|
|
851
1290
|
profileId: Scalars['ID']['input'];
|
|
852
1291
|
};
|
|
1292
|
+
export type MutationUnassignModuleFromProfileArgs = {
|
|
1293
|
+
moduleId: Scalars['ID']['input'];
|
|
1294
|
+
profileId: Scalars['ID']['input'];
|
|
1295
|
+
};
|
|
853
1296
|
export type MutationUnassignRoutineFromProfileArgs = {
|
|
854
1297
|
profileId: Scalars['ID']['input'];
|
|
855
1298
|
routineId: Scalars['ID']['input'];
|
|
@@ -893,6 +1336,12 @@ export type MutationUpdateVideoDataOffsetArgs = {
|
|
|
893
1336
|
offset: Scalars['Int']['input'];
|
|
894
1337
|
testFileId: Scalars['ID']['input'];
|
|
895
1338
|
};
|
|
1339
|
+
export type MutationVerifyInvitationIdentityArgs = {
|
|
1340
|
+
dateOfBirth: Scalars['Date']['input'];
|
|
1341
|
+
firstName: Scalars['String']['input'];
|
|
1342
|
+
lastName: Scalars['String']['input'];
|
|
1343
|
+
token: Scalars['String']['input'];
|
|
1344
|
+
};
|
|
896
1345
|
export type Parameter = {
|
|
897
1346
|
__typename?: 'Parameter';
|
|
898
1347
|
id: Scalars['ID']['output'];
|
|
@@ -905,6 +1354,66 @@ export declare enum ParameterKind {
|
|
|
905
1354
|
Limit = "Limit",
|
|
906
1355
|
Target = "Target"
|
|
907
1356
|
}
|
|
1357
|
+
/**
|
|
1358
|
+
* AC-4.9.9 — WHICH of the two things a reset did.
|
|
1359
|
+
*
|
|
1360
|
+
* The mutation returned `Boolean!`, and a reset has two outcomes: the password is
|
|
1361
|
+
* set directly, or a single-use link is sent and the password the operator typed
|
|
1362
|
+
* is discarded. One bit cannot carry that, so the Console reported "Password for X
|
|
1363
|
+
* has been changed successfully" on a path where no password was changed and
|
|
1364
|
+
* support read out a credential that never existed.
|
|
1365
|
+
*/
|
|
1366
|
+
export declare enum PasswordChangeOutcome {
|
|
1367
|
+
/**
|
|
1368
|
+
* A single-use, time-limited link was sent to the person instead, and no
|
|
1369
|
+
* password was chosen on their behalf. Any password the caller supplied was
|
|
1370
|
+
* discarded. This is the outcome for every client (AC-4.9.2) and for anybody
|
|
1371
|
+
* outside the caller's own organisation (AC-4.9.5).
|
|
1372
|
+
*/
|
|
1373
|
+
LinkSent = "LINK_SENT",
|
|
1374
|
+
/**
|
|
1375
|
+
* Nothing was written. The row the update aimed at was not there — AC-3.3.1's
|
|
1376
|
+
* case, where reporting success from the absence of an error is the defect.
|
|
1377
|
+
*/
|
|
1378
|
+
NotChanged = "NOT_CHANGED",
|
|
1379
|
+
/** A password was set on the account. It is the one the caller supplied. */
|
|
1380
|
+
PasswordSet = "PASSWORD_SET"
|
|
1381
|
+
}
|
|
1382
|
+
/**
|
|
1383
|
+
* A change of email address that has been requested and not yet confirmed. It
|
|
1384
|
+
* carries no token: this is what a screen may show, and a token is not.
|
|
1385
|
+
*/
|
|
1386
|
+
export type PendingEmailChange = {
|
|
1387
|
+
__typename?: 'PendingEmailChange';
|
|
1388
|
+
/** When the verification link stops working. */
|
|
1389
|
+
expiresAt: Scalars['String']['output'];
|
|
1390
|
+
/** The address the account will move to once the link is opened. */
|
|
1391
|
+
newEmail: Scalars['String']['output'];
|
|
1392
|
+
};
|
|
1393
|
+
/**
|
|
1394
|
+
* Which of an organisation's people to return. One account holds one role, so
|
|
1395
|
+
* these two sets never overlap.
|
|
1396
|
+
*/
|
|
1397
|
+
export declare enum PersonKind {
|
|
1398
|
+
Client = "CLIENT",
|
|
1399
|
+
Staff = "STAFF"
|
|
1400
|
+
}
|
|
1401
|
+
/**
|
|
1402
|
+
* US-4.2 — one page of an organisation's people.
|
|
1403
|
+
*
|
|
1404
|
+
* `Group.users` returns EVERY user in the organisation including archived ones,
|
|
1405
|
+
* with no role filter, and the Console renders all of them in one pass. That does
|
|
1406
|
+
* not survive an organisation with two thousand people, and it left the split
|
|
1407
|
+
* between staff and clients to be decided in the client.
|
|
1408
|
+
*/
|
|
1409
|
+
export type PersonPage = {
|
|
1410
|
+
__typename?: 'PersonPage';
|
|
1411
|
+
/** Cursor for the next page, or null when this is the last one. */
|
|
1412
|
+
nextCursor?: Maybe<Scalars['String']['output']>;
|
|
1413
|
+
people: Array<User>;
|
|
1414
|
+
/** Total matching the filter, before paging. */
|
|
1415
|
+
totalCount: Scalars['Int']['output'];
|
|
1416
|
+
};
|
|
908
1417
|
export type PoiMetric = {
|
|
909
1418
|
__typename?: 'PoiMetric';
|
|
910
1419
|
frame: Scalars['Int']['output'];
|
|
@@ -935,9 +1444,19 @@ export type QuantumOwnedData = {
|
|
|
935
1444
|
export type Query = {
|
|
936
1445
|
__typename?: 'Query';
|
|
937
1446
|
actions: Array<Action>;
|
|
1447
|
+
/**
|
|
1448
|
+
* US-5.1 — every account holding admin, at every point in its lifecycle.
|
|
1449
|
+
* There is no consolidated list of admin holders anywhere in the product
|
|
1450
|
+
* today, and no way to grant the role or end it from any interface.
|
|
1451
|
+
*/
|
|
1452
|
+
adminHolders: Array<AdminHolder>;
|
|
938
1453
|
analysisClassifications: Array<AnalysisClassification>;
|
|
1454
|
+
appEnv: Scalars['String']['output'];
|
|
1455
|
+
assignCatalog: AssignCatalog;
|
|
939
1456
|
assignedReport?: Maybe<AssignedReport>;
|
|
1457
|
+
auditLogs: Array<AuditLogEntry>;
|
|
940
1458
|
currentGroup?: Maybe<Group>;
|
|
1459
|
+
featureFlags: Array<FeatureFlag>;
|
|
941
1460
|
generalActivityReport?: Maybe<GeneralActivityReport>;
|
|
942
1461
|
getActionById?: Maybe<Action>;
|
|
943
1462
|
getMetadataByKey: MetadataGroup;
|
|
@@ -950,6 +1469,17 @@ export type Query = {
|
|
|
950
1469
|
group?: Maybe<Group>;
|
|
951
1470
|
groups: Array<Group>;
|
|
952
1471
|
historicalMetrics: Array<AnalysisMetric>;
|
|
1472
|
+
/**
|
|
1473
|
+
* US-5.3 / UF-3.1 — Quantum's own organisation, which is where a Quantum staff
|
|
1474
|
+
* invitation must be written (AC-5.3.7) and the one organisation the customer
|
|
1475
|
+
* list deliberately excludes (US-5.4). The Quantum Staff screen cannot ask for
|
|
1476
|
+
* it through `groups`, which filters it out by design.
|
|
1477
|
+
*
|
|
1478
|
+
* Null when no organisation carries the flag — a real state where migration
|
|
1479
|
+
* 000078 has run and nobody has set it yet. The screen says so rather than
|
|
1480
|
+
* offering to invite somebody into nowhere.
|
|
1481
|
+
*/
|
|
1482
|
+
internalOrganisation?: Maybe<Group>;
|
|
953
1483
|
invitations: Array<Invitation>;
|
|
954
1484
|
keypoints: Array<Keypoint>;
|
|
955
1485
|
me?: Maybe<CurrentUser>;
|
|
@@ -957,6 +1487,12 @@ export type Query = {
|
|
|
957
1487
|
moduleCategories: Array<ModuleCategory>;
|
|
958
1488
|
modules: Array<ActionModule>;
|
|
959
1489
|
movementCoordinationReport?: Maybe<MovementCoordinationReport>;
|
|
1490
|
+
/**
|
|
1491
|
+
* AC-6.4.3 — your own pending change of address, so the person whose account it
|
|
1492
|
+
* is can see that one is in flight rather than only the operator who asked for
|
|
1493
|
+
* it.
|
|
1494
|
+
*/
|
|
1495
|
+
myPendingEmailChange?: Maybe<PendingEmailChange>;
|
|
960
1496
|
profileSessionForToday: Session;
|
|
961
1497
|
quantumOwnedActions: Array<Action>;
|
|
962
1498
|
quantumOwnedModules: Array<ActionModule>;
|
|
@@ -964,6 +1500,8 @@ export type Query = {
|
|
|
964
1500
|
rangeReport?: Maybe<RangeReport>;
|
|
965
1501
|
routine?: Maybe<Routine>;
|
|
966
1502
|
routines: Array<Routine>;
|
|
1503
|
+
/** The caller's signed-in devices, newest first. */
|
|
1504
|
+
sessions: Array<DeviceSession>;
|
|
967
1505
|
sessionsCreatedByProfile: Array<Session>;
|
|
968
1506
|
sessionsForProfile: Array<Session>;
|
|
969
1507
|
stabilityBalanceReport?: Maybe<StabilityBalanceReport>;
|
|
@@ -979,9 +1517,15 @@ export type Query = {
|
|
|
979
1517
|
export type QueryActionsArgs = {
|
|
980
1518
|
groupId?: InputMaybe<Scalars['ID']['input']>;
|
|
981
1519
|
};
|
|
1520
|
+
export type QueryAdminHoldersArgs = {
|
|
1521
|
+
search?: InputMaybe<Scalars['String']['input']>;
|
|
1522
|
+
};
|
|
982
1523
|
export type QueryAssignedReportArgs = {
|
|
983
1524
|
id: Scalars['ID']['input'];
|
|
984
1525
|
};
|
|
1526
|
+
export type QueryAuditLogsArgs = {
|
|
1527
|
+
filter?: InputMaybe<AuditLogFilter>;
|
|
1528
|
+
};
|
|
985
1529
|
export type QueryGeneralActivityReportArgs = {
|
|
986
1530
|
id: Scalars['ID']['input'];
|
|
987
1531
|
};
|
|
@@ -1169,6 +1713,23 @@ export declare enum SessionType {
|
|
|
1169
1713
|
BiofeedbackTraining = "BiofeedbackTraining",
|
|
1170
1714
|
RecordedTesting = "RecordedTesting"
|
|
1171
1715
|
}
|
|
1716
|
+
export type SetProfileAssignmentsInput = {
|
|
1717
|
+
changes: Array<AssignmentChangeInput>;
|
|
1718
|
+
profileId: Scalars['ID']['input'];
|
|
1719
|
+
};
|
|
1720
|
+
/**
|
|
1721
|
+
* Per-item outcomes plus the plan as the server now holds it, so the panel
|
|
1722
|
+
* reconciles against the server in the same round trip (AC-4.4.32).
|
|
1723
|
+
*/
|
|
1724
|
+
export type SetProfileAssignmentsResult = {
|
|
1725
|
+
__typename?: 'SetProfileAssignmentsResult';
|
|
1726
|
+
/** 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. */
|
|
1727
|
+
assignedActionIds: Array<Scalars['ID']['output']>;
|
|
1728
|
+
assignedActionReports: Array<AssignedActionReport>;
|
|
1729
|
+
/** 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. */
|
|
1730
|
+
assignedModuleIds: Array<Scalars['ID']['output']>;
|
|
1731
|
+
results: Array<AssignmentChangeResult>;
|
|
1732
|
+
};
|
|
1172
1733
|
export type StabilityBalanceReport = {
|
|
1173
1734
|
__typename?: 'StabilityBalanceReport';
|
|
1174
1735
|
averageParameterScores: Array<TestAverageParameterScore>;
|
|
@@ -1426,6 +1987,10 @@ export type TrialParameterDataInput = {
|
|
|
1426
1987
|
timestamps: Array<Scalars['Long']['input']>;
|
|
1427
1988
|
values: Array<Scalars['Float']['input']>;
|
|
1428
1989
|
};
|
|
1990
|
+
export declare enum TrialParameterDataSource {
|
|
1991
|
+
Pose = "Pose",
|
|
1992
|
+
Sensor = "Sensor"
|
|
1993
|
+
}
|
|
1429
1994
|
export type TrialParameterMetrics = {
|
|
1430
1995
|
__typename?: 'TrialParameterMetrics';
|
|
1431
1996
|
id: Scalars['ID']['output'];
|
|
@@ -1540,6 +2105,28 @@ export type User = {
|
|
|
1540
2105
|
deletedAt?: Maybe<Scalars['Date']['output']>;
|
|
1541
2106
|
email: Scalars['String']['output'];
|
|
1542
2107
|
id: Scalars['ID']['output'];
|
|
2108
|
+
/**
|
|
2109
|
+
* Where this account sits in its lifecycle. deletedAt says only that the account
|
|
2110
|
+
* is inactive; it cannot tell a SUSPENDED person, who can be restored, from a
|
|
2111
|
+
* REMOVED one, who never can.
|
|
2112
|
+
*
|
|
2113
|
+
* Reading the label from deletedAt alone made the Console offer Restore on a
|
|
2114
|
+
* removed account — an action the server refuses and always will, because the
|
|
2115
|
+
* person gave up their sign-in identity and somebody else may now hold it
|
|
2116
|
+
* (AC-2.3.12: a removed person stays listed, marked removed, with no action
|
|
2117
|
+
* offered on their row).
|
|
2118
|
+
*/
|
|
2119
|
+
lifecycle: AccountLifecycle;
|
|
2120
|
+
/**
|
|
2121
|
+
* AC-4.7.2 — a change of email address awaiting confirmation, and the address
|
|
2122
|
+
* it is going to. Null when none is in flight.
|
|
2123
|
+
*
|
|
2124
|
+
* The row has to be able to say this. Requesting a change alters nothing on the
|
|
2125
|
+
* account, so without it the screen shows the old address and looks identical
|
|
2126
|
+
* whether or not somebody asked for a change an hour ago — and an operator who
|
|
2127
|
+
* cannot see a pending change cannot cancel one either.
|
|
2128
|
+
*/
|
|
2129
|
+
pendingEmailChange?: Maybe<PendingEmailChange>;
|
|
1543
2130
|
profile?: Maybe<UserProfile>;
|
|
1544
2131
|
roles: Array<Scalars['String']['output']>;
|
|
1545
2132
|
unitSystem: UnitSystem;
|
|
@@ -1549,11 +2136,17 @@ export type User = {
|
|
|
1549
2136
|
export type UserProfile = {
|
|
1550
2137
|
__typename?: 'UserProfile';
|
|
1551
2138
|
age?: Maybe<Scalars['Int']['output']>;
|
|
2139
|
+
/** 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. */
|
|
2140
|
+
assignedActionProvenance: Array<AssignedActionProvenance>;
|
|
2141
|
+
assignedActionReports: Array<AssignedActionReport>;
|
|
1552
2142
|
assignedActions: Array<Action>;
|
|
2143
|
+
assignedModules: Array<ActionModule>;
|
|
1553
2144
|
assignedRoutines: Array<Routine>;
|
|
1554
2145
|
createdAt: Scalars['Date']['output'];
|
|
1555
2146
|
date_of_birth?: Maybe<Scalars['Date']['output']>;
|
|
1556
2147
|
deletedAt?: Maybe<Scalars['Date']['output']>;
|
|
2148
|
+
/** 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. */
|
|
2149
|
+
directAssignedActionIds: Array<Scalars['ID']['output']>;
|
|
1557
2150
|
firstName: Scalars['String']['output'];
|
|
1558
2151
|
gender?: Maybe<Scalars['String']['output']>;
|
|
1559
2152
|
group?: Maybe<GroupInfo>;
|
|
@@ -1562,6 +2155,8 @@ export type UserProfile = {
|
|
|
1562
2155
|
id: Scalars['ID']['output'];
|
|
1563
2156
|
lastName: Scalars['String']['output'];
|
|
1564
2157
|
mobileAccessEmail?: Maybe<Scalars['String']['output']>;
|
|
2158
|
+
mobileAccessStatus: MobileAccessStatus;
|
|
2159
|
+
mobileInvitation?: Maybe<Invitation>;
|
|
1565
2160
|
updatedAt: Scalars['Date']['output'];
|
|
1566
2161
|
weight?: Maybe<Scalars['Float']['output']>;
|
|
1567
2162
|
};
|