clarion-shared-types 1.0.104 → 1.0.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/modules/alert-dispatch/index.js +1 -0
  4. package/dist/cjs/modules/alert-dispatch/index.js.map +1 -1
  5. package/dist/cjs/modules/alert-dispatch/interfaces/guardian-audience.js +3 -0
  6. package/dist/cjs/modules/alert-dispatch/interfaces/guardian-audience.js.map +1 -0
  7. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +18 -0
  8. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  9. package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js +2 -0
  10. package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
  11. package/dist/cjs/modules/role/constants/newsfeed-roles.js +20 -0
  12. package/dist/cjs/modules/role/constants/newsfeed-roles.js.map +1 -0
  13. package/dist/cjs/modules/role/constants/safety-roles.js +19 -0
  14. package/dist/cjs/modules/role/constants/safety-roles.js.map +1 -0
  15. package/dist/cjs/modules/role/index.js +2 -0
  16. package/dist/cjs/modules/role/index.js.map +1 -1
  17. package/dist/cjs/modules/safety/constants/safety-check-limits.const.js +34 -0
  18. package/dist/cjs/modules/safety/constants/safety-check-limits.const.js.map +1 -0
  19. package/dist/cjs/modules/safety/constants/safety-taxonomy.const.js +17 -0
  20. package/dist/cjs/modules/safety/constants/safety-taxonomy.const.js.map +1 -0
  21. package/dist/cjs/modules/safety/enums/safety-enums.js +95 -0
  22. package/dist/cjs/modules/safety/enums/safety-enums.js.map +1 -0
  23. package/dist/cjs/modules/safety/index.js +26 -0
  24. package/dist/cjs/modules/safety/index.js.map +1 -0
  25. package/dist/cjs/modules/safety/interfaces/safety-check.dto.js +3 -0
  26. package/dist/cjs/modules/safety/interfaces/safety-check.dto.js.map +1 -0
  27. package/dist/cjs/modules/safety/utils/safety-display.util.js +96 -0
  28. package/dist/cjs/modules/safety/utils/safety-display.util.js.map +1 -0
  29. package/dist/esm/index.js +1 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/modules/alert-dispatch/index.js +1 -0
  32. package/dist/esm/modules/alert-dispatch/index.js.map +1 -1
  33. package/dist/esm/modules/alert-dispatch/interfaces/guardian-audience.js +2 -0
  34. package/dist/esm/modules/alert-dispatch/interfaces/guardian-audience.js.map +1 -0
  35. package/dist/esm/modules/permission/enums/permission-actions.enum.js +18 -0
  36. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  37. package/dist/esm/modules/permission/enums/permissions-moudule.enum.js +2 -0
  38. package/dist/esm/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
  39. package/dist/esm/modules/role/constants/newsfeed-roles.js +17 -0
  40. package/dist/esm/modules/role/constants/newsfeed-roles.js.map +1 -0
  41. package/dist/esm/modules/role/constants/safety-roles.js +16 -0
  42. package/dist/esm/modules/role/constants/safety-roles.js.map +1 -0
  43. package/dist/esm/modules/role/index.js +2 -0
  44. package/dist/esm/modules/role/index.js.map +1 -1
  45. package/dist/esm/modules/safety/constants/safety-check-limits.const.js +31 -0
  46. package/dist/esm/modules/safety/constants/safety-check-limits.const.js.map +1 -0
  47. package/dist/esm/modules/safety/constants/safety-taxonomy.const.js +14 -0
  48. package/dist/esm/modules/safety/constants/safety-taxonomy.const.js.map +1 -0
  49. package/dist/esm/modules/safety/enums/safety-enums.js +92 -0
  50. package/dist/esm/modules/safety/enums/safety-enums.js.map +1 -0
  51. package/dist/esm/modules/safety/index.js +10 -0
  52. package/dist/esm/modules/safety/index.js.map +1 -0
  53. package/dist/esm/modules/safety/interfaces/safety-check.dto.js +2 -0
  54. package/dist/esm/modules/safety/interfaces/safety-check.dto.js.map +1 -0
  55. package/dist/esm/modules/safety/utils/safety-display.util.js +89 -0
  56. package/dist/esm/modules/safety/utils/safety-display.util.js.map +1 -0
  57. package/dist/types/index.d.ts +1 -0
  58. package/dist/types/modules/alert-dispatch/index.d.ts +1 -0
  59. package/dist/types/modules/alert-dispatch/interfaces/guardian-audience.d.ts +12 -0
  60. package/dist/types/modules/incident/intefaces/incident-category.d.ts +9 -0
  61. package/dist/types/modules/incident/intefaces/incident-type.d.ts +9 -0
  62. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +12 -0
  63. package/dist/types/modules/permission/enums/permissions-moudule.enum.d.ts +3 -1
  64. package/dist/types/modules/role/constants/newsfeed-roles.d.ts +8 -0
  65. package/dist/types/modules/role/constants/safety-roles.d.ts +8 -0
  66. package/dist/types/modules/role/index.d.ts +2 -0
  67. package/dist/types/modules/safety/constants/safety-check-limits.const.d.ts +30 -0
  68. package/dist/types/modules/safety/constants/safety-taxonomy.const.d.ts +19 -0
  69. package/dist/types/modules/safety/enums/safety-enums.d.ts +83 -0
  70. package/dist/types/modules/safety/index.d.ts +5 -0
  71. package/dist/types/modules/safety/interfaces/safety-check.dto.d.ts +176 -0
  72. package/dist/types/modules/safety/utils/safety-display.util.d.ts +18 -0
  73. package/package.json +1 -1
@@ -0,0 +1,176 @@
1
+ import { GuardianAudience } from '../../alert-dispatch/interfaces/guardian-audience';
2
+ import { SafetyCheckActorType, SafetyCheckAuditEventType, SafetyCheckSosTrigger, SafetyCheckStatus } from '../enums/safety-enums';
3
+ /**
4
+ * Response shapes of clarion-safety, mirrored from grm-shared-library
5
+ * (modules/safety/interfaces/safety-check.ts). Timestamps are ISO 8601 strings
6
+ * from the server clock.
7
+ */
8
+ /** A reason as the app's dropdown shows it. */
9
+ export interface SafetyCheckReasonView {
10
+ id: string;
11
+ code: string;
12
+ label: string;
13
+ description: string | null;
14
+ /** The "Write my own" entry: the user types the reason. */
15
+ isCustom: boolean;
16
+ displayOrder: number;
17
+ }
18
+ /** A reason as the admin manages it. */
19
+ export interface SafetyCheckReasonAdminView extends SafetyCheckReasonView {
20
+ /** Null for a platform-wide reason (Super-Admin only). */
21
+ organizationId: number | null;
22
+ /** Null for every country. */
23
+ countryCode: string | null;
24
+ active: boolean;
25
+ createdAt: string;
26
+ updatedAt: string;
27
+ }
28
+ /** Body of POST /safety/admin/check-reasons. */
29
+ export interface CreateSafetyCheckReasonRequest {
30
+ code: string;
31
+ label: string;
32
+ description?: string;
33
+ organizationId?: number;
34
+ countryCode?: string;
35
+ isCustom?: boolean;
36
+ active?: boolean;
37
+ displayOrder?: number;
38
+ }
39
+ /** Body of PATCH /safety/admin/check-reasons/:id. Code, organization and custom-ness are fixed. */
40
+ export interface UpdateSafetyCheckReasonRequest {
41
+ label?: string;
42
+ description?: string | null;
43
+ countryCode?: string | null;
44
+ active?: boolean;
45
+ displayOrder?: number;
46
+ }
47
+ /** One Safety Check as its owner sees it. */
48
+ export interface SafetyCheckView {
49
+ id: string;
50
+ status: SafetyCheckStatus;
51
+ reasonId: string | null;
52
+ reasonCode: string | null;
53
+ reasonLabel: string;
54
+ customReason: string | null;
55
+ durationMinutes: number;
56
+ extensionCount: number;
57
+ startedAt: string;
58
+ scheduledCheckInAt: string;
59
+ promptCountdownSeconds: number;
60
+ promptStartedAt: string | null;
61
+ promptDeadlineAt: string | null;
62
+ checkedInAt: string | null;
63
+ endedAt: string | null;
64
+ guardians: GuardianAudience;
65
+ notifyGuardiansOnStartEnd: boolean;
66
+ notifyServiceProviderRequested: boolean;
67
+ notifyServiceProviderAllowed: boolean;
68
+ sosTrigger: SafetyCheckSosTrigger | null;
69
+ sosTriggeredAt: string | null;
70
+ incidentId: number | null;
71
+ tripId: string | null;
72
+ serverTime: string;
73
+ }
74
+ /** What the setup screens need from the server. */
75
+ export interface SafetyCheckStartOptions {
76
+ limits: {
77
+ minDurationMinutes: number;
78
+ maxDurationMinutes: number;
79
+ presetDurationsMinutes: number[];
80
+ minPromptCountdownSeconds: number;
81
+ maxPromptCountdownSeconds: number;
82
+ customReasonMaxLength: number;
83
+ };
84
+ defaults: {
85
+ durationMinutes: number;
86
+ promptCountdownSeconds: number;
87
+ notifyServiceProvider: boolean;
88
+ notifyGuardiansOnStartEnd: boolean;
89
+ };
90
+ serviceProvider: {
91
+ available: boolean;
92
+ tier: string | null;
93
+ degraded: boolean;
94
+ };
95
+ serverTime: string;
96
+ }
97
+ /** The recorded trip, WITHOUT coordinates - location is never shown before an SOS. */
98
+ export interface SafetyCheckTripSummary {
99
+ id: string;
100
+ status: string;
101
+ visibility: string;
102
+ purpose: string;
103
+ incidentId: number | null;
104
+ startedAt: string;
105
+ endedAt: string | null;
106
+ sharedAt: string | null;
107
+ distanceMeters: number | null;
108
+ trackPointCount: number;
109
+ }
110
+ export interface SafetyCheckAuditEntry {
111
+ id: string;
112
+ eventType: SafetyCheckAuditEventType;
113
+ fromStatus: SafetyCheckStatus | null;
114
+ toStatus: SafetyCheckStatus | null;
115
+ actorType: SafetyCheckActorType;
116
+ actorUserId: number | null;
117
+ /** Identifiers and timings only - never a location or a message body. */
118
+ metadata: Record<string, unknown> | null;
119
+ createdAt: string;
120
+ }
121
+ /** A row of the admin list. */
122
+ export interface SafetyCheckAdminListItem {
123
+ id: string;
124
+ status: SafetyCheckStatus;
125
+ userId: number;
126
+ userName: string | null;
127
+ organizationId: number;
128
+ controlCentreId: number | null;
129
+ reasonLabel: string;
130
+ durationMinutes: number;
131
+ startedAt: string;
132
+ scheduledCheckInAt: string;
133
+ checkedInAt: string | null;
134
+ endedAt: string | null;
135
+ sosTrigger: SafetyCheckSosTrigger | null;
136
+ incidentId: number | null;
137
+ createdAt: string;
138
+ }
139
+ /** The check as the admin detail view receives it. */
140
+ export interface SafetyCheckAdminView extends SafetyCheckView {
141
+ userId: number;
142
+ userName: string | null;
143
+ userPhoneNumber: string | null;
144
+ organizationId: number;
145
+ controlCentreId: number | null;
146
+ appId: string | null;
147
+ countryCode: string | null;
148
+ entitlementTierAtStart: string | null;
149
+ workflowId: string | null;
150
+ workflowStartedAt: string | null;
151
+ trackPointCount: number;
152
+ lastLocationAt: string | null;
153
+ sosAttempts: number;
154
+ sosFailureReason: string | null;
155
+ createdAt: string;
156
+ updatedAt: string;
157
+ }
158
+ /** The admin detail view. */
159
+ export interface SafetyCheckAdminDetail {
160
+ check: SafetyCheckAdminView;
161
+ events: SafetyCheckAuditEntry[];
162
+ trip: SafetyCheckTripSummary | null;
163
+ }
164
+ /** Filters for GET /safety/admin/checks. */
165
+ export interface SafetyCheckAdminQuery {
166
+ page?: number;
167
+ limit?: number;
168
+ status?: SafetyCheckStatus;
169
+ /** Super-admin only. */
170
+ organizationId?: number;
171
+ userId?: number;
172
+ sosOnly?: boolean;
173
+ from?: string;
174
+ to?: string;
175
+ id?: string;
176
+ }
@@ -0,0 +1,18 @@
1
+ import { SafetyCheckActorType, SafetyCheckAuditEventType, SafetyCheckSosTrigger, SafetyCheckStatus } from '../enums/safety-enums';
2
+ /**
3
+ * Human labels for the Safety enums, kept here so every screen that shows a
4
+ * Safety Check names the same state the same way.
5
+ */
6
+ export declare const SAFETY_CHECK_STATUS_LABELS: Readonly<Record<SafetyCheckStatus, string>>;
7
+ export declare const SAFETY_CHECK_SOS_TRIGGER_LABELS: Readonly<Record<SafetyCheckSosTrigger, string>>;
8
+ export declare const SAFETY_CHECK_ACTOR_TYPE_LABELS: Readonly<Record<SafetyCheckActorType, string>>;
9
+ export declare const SAFETY_CHECK_AUDIT_EVENT_LABELS: Readonly<Record<SafetyCheckAuditEventType, string>>;
10
+ /** Chip tone. The admin maps these onto its own classes. */
11
+ export type SafetyTone = 'success' | 'warn' | 'danger' | 'neutral' | 'info';
12
+ export declare function safetyCheckStatusTone(status: SafetyCheckStatus): SafetyTone;
13
+ /** Whether the check is still running (the user is "in" it). */
14
+ export declare function isOpenSafetyCheck(status: SafetyCheckStatus): boolean;
15
+ /** "15 min", "2 h", "1 h 30 min", "24 h". */
16
+ export declare function formatSafetyCheckDuration(minutes: number | null | undefined): string;
17
+ /** A distance in metres as the admin shows it. */
18
+ export declare function formatSafetyTripDistance(metres: number | null | undefined): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarion-shared-types",
3
- "version": "1.0.104",
3
+ "version": "1.0.106",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",