clarion-shared-types 1.0.106 → 1.0.108

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 (92) hide show
  1. package/dist/cjs/modules/gis/enums/routing.enum.js +30 -0
  2. package/dist/cjs/modules/gis/enums/routing.enum.js.map +1 -0
  3. package/dist/cjs/modules/gis/index.js +3 -0
  4. package/dist/cjs/modules/gis/index.js.map +1 -1
  5. package/dist/cjs/modules/gis/interfaces/routing.js +3 -0
  6. package/dist/cjs/modules/gis/interfaces/routing.js.map +1 -0
  7. package/dist/cjs/modules/gis/interfaces/trip-point.js +3 -0
  8. package/dist/cjs/modules/gis/interfaces/trip-point.js.map +1 -0
  9. package/dist/cjs/modules/incident/enums/incident-origin-type.enum.js +13 -0
  10. package/dist/cjs/modules/incident/enums/incident-origin-type.enum.js.map +1 -0
  11. package/dist/cjs/modules/incident/index.js +1 -0
  12. package/dist/cjs/modules/incident/index.js.map +1 -1
  13. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +10 -0
  14. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  15. package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js +1 -0
  16. package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
  17. package/dist/cjs/modules/role/constants/safety-roles.js +18 -1
  18. package/dist/cjs/modules/role/constants/safety-roles.js.map +1 -1
  19. package/dist/cjs/modules/safety/constants/follow-me.const.js +51 -0
  20. package/dist/cjs/modules/safety/constants/follow-me.const.js.map +1 -0
  21. package/dist/cjs/modules/safety/enums/follow-me.enums.js +238 -0
  22. package/dist/cjs/modules/safety/enums/follow-me.enums.js.map +1 -0
  23. package/dist/cjs/modules/safety/enums/safety-enums.js +3 -1
  24. package/dist/cjs/modules/safety/enums/safety-enums.js.map +1 -1
  25. package/dist/cjs/modules/safety/index.js +6 -0
  26. package/dist/cjs/modules/safety/index.js.map +1 -1
  27. package/dist/cjs/modules/safety/interfaces/follow-me.dto.js +3 -0
  28. package/dist/cjs/modules/safety/interfaces/follow-me.dto.js.map +1 -0
  29. package/dist/cjs/modules/safety/interfaces/safety-alert-context.js +3 -0
  30. package/dist/cjs/modules/safety/interfaces/safety-alert-context.js.map +1 -0
  31. package/dist/cjs/modules/safety/interfaces/safety-analytics.js +12 -0
  32. package/dist/cjs/modules/safety/interfaces/safety-analytics.js.map +1 -0
  33. package/dist/cjs/modules/safety/utils/follow-me-display.util.js +163 -0
  34. package/dist/cjs/modules/safety/utils/follow-me-display.util.js.map +1 -0
  35. package/dist/cjs/modules/safety/utils/safety-display.util.js +1 -0
  36. package/dist/cjs/modules/safety/utils/safety-display.util.js.map +1 -1
  37. package/dist/esm/modules/gis/enums/routing.enum.js +27 -0
  38. package/dist/esm/modules/gis/enums/routing.enum.js.map +1 -0
  39. package/dist/esm/modules/gis/index.js +3 -0
  40. package/dist/esm/modules/gis/index.js.map +1 -1
  41. package/dist/esm/modules/gis/interfaces/routing.js +2 -0
  42. package/dist/esm/modules/gis/interfaces/routing.js.map +1 -0
  43. package/dist/esm/modules/gis/interfaces/trip-point.js +2 -0
  44. package/dist/esm/modules/gis/interfaces/trip-point.js.map +1 -0
  45. package/dist/esm/modules/incident/enums/incident-origin-type.enum.js +10 -0
  46. package/dist/esm/modules/incident/enums/incident-origin-type.enum.js.map +1 -0
  47. package/dist/esm/modules/incident/index.js +1 -0
  48. package/dist/esm/modules/incident/index.js.map +1 -1
  49. package/dist/esm/modules/permission/enums/permission-actions.enum.js +10 -0
  50. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  51. package/dist/esm/modules/permission/enums/permissions-moudule.enum.js +1 -0
  52. package/dist/esm/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
  53. package/dist/esm/modules/role/constants/safety-roles.js +17 -0
  54. package/dist/esm/modules/role/constants/safety-roles.js.map +1 -1
  55. package/dist/esm/modules/safety/constants/follow-me.const.js +48 -0
  56. package/dist/esm/modules/safety/constants/follow-me.const.js.map +1 -0
  57. package/dist/esm/modules/safety/enums/follow-me.enums.js +235 -0
  58. package/dist/esm/modules/safety/enums/follow-me.enums.js.map +1 -0
  59. package/dist/esm/modules/safety/enums/safety-enums.js +3 -1
  60. package/dist/esm/modules/safety/enums/safety-enums.js.map +1 -1
  61. package/dist/esm/modules/safety/index.js +6 -0
  62. package/dist/esm/modules/safety/index.js.map +1 -1
  63. package/dist/esm/modules/safety/interfaces/follow-me.dto.js +2 -0
  64. package/dist/esm/modules/safety/interfaces/follow-me.dto.js.map +1 -0
  65. package/dist/esm/modules/safety/interfaces/safety-alert-context.js +2 -0
  66. package/dist/esm/modules/safety/interfaces/safety-alert-context.js.map +1 -0
  67. package/dist/esm/modules/safety/interfaces/safety-analytics.js +11 -0
  68. package/dist/esm/modules/safety/interfaces/safety-analytics.js.map +1 -0
  69. package/dist/esm/modules/safety/utils/follow-me-display.util.js +155 -0
  70. package/dist/esm/modules/safety/utils/follow-me-display.util.js.map +1 -0
  71. package/dist/esm/modules/safety/utils/safety-display.util.js +1 -0
  72. package/dist/esm/modules/safety/utils/safety-display.util.js.map +1 -1
  73. package/dist/types/modules/gis/enums/routing.enum.d.ts +22 -0
  74. package/dist/types/modules/gis/index.d.ts +3 -0
  75. package/dist/types/modules/gis/interfaces/routing.d.ts +43 -0
  76. package/dist/types/modules/gis/interfaces/trip-point.d.ts +16 -0
  77. package/dist/types/modules/incident/enums/incident-origin-type.enum.d.ts +7 -0
  78. package/dist/types/modules/incident/index.d.ts +1 -0
  79. package/dist/types/modules/incident/intefaces/incident.d.ts +8 -0
  80. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +5 -0
  81. package/dist/types/modules/permission/enums/permissions-moudule.enum.d.ts +2 -1
  82. package/dist/types/modules/role/constants/safety-roles.d.ts +6 -0
  83. package/dist/types/modules/safety/constants/follow-me.const.d.ts +46 -0
  84. package/dist/types/modules/safety/enums/follow-me.enums.d.ts +218 -0
  85. package/dist/types/modules/safety/enums/safety-enums.d.ts +4 -2
  86. package/dist/types/modules/safety/index.d.ts +6 -0
  87. package/dist/types/modules/safety/interfaces/follow-me.dto.d.ts +392 -0
  88. package/dist/types/modules/safety/interfaces/safety-alert-context.d.ts +8 -0
  89. package/dist/types/modules/safety/interfaces/safety-analytics.d.ts +360 -0
  90. package/dist/types/modules/safety/interfaces/safety-check.dto.d.ts +5 -1
  91. package/dist/types/modules/safety/utils/follow-me-display.util.d.ts +27 -0
  92. package/package.json +45 -45
@@ -0,0 +1,235 @@
1
+ /* Mirrored from grm-shared-library (modules/safety/enums/follow-me.enums.ts). Keep values byte-identical. */
2
+ /**
3
+ * Lifecycle of one Follow Me session. clarion-safety is the only writer; every
4
+ * transition is validated against FOLLOW_ME_TRANSITIONS and applied as a
5
+ * conditional update, exactly as a Safety Check is.
6
+ *
7
+ * CREATED accepted and persisted; the trip, the timer and the guardian
8
+ * requests are being set up. Already counts as live.
9
+ * ACTIVE the journey is being shared and monitored.
10
+ * PROMPTING a safety prompt is open (see FollowMePromptStatus); an SOS is
11
+ * raised if it is not answered.
12
+ * ARRIVED the destination was reached. Terminal, successful.
13
+ * SOS_TRIGGERED an SOS was raised - a prompt went unanswered or the user
14
+ * asked for one. Follow Me is over; the recorded trip goes on as
15
+ * the incident's trip and followers move to the SOS view.
16
+ * STOPPED the user ended it. Terminal.
17
+ * EXPIRED the chosen duration ran out before arrival. Terminal; never
18
+ * raises an SOS by itself. Deferred while a prompt is open.
19
+ * CANCELLED ended by the platform rather than the user (e.g. sign-out).
20
+ * FAILED the SOS could not be raised because clarion-incident refused
21
+ * it outright. Terminal; the user and guardians are told to act.
22
+ *
23
+ * Deliberately NOT a status: whether live sharing is healthy. That is
24
+ * FollowMeTrackingHealth, derived from when the last location arrived - a
25
+ * session with a flat battery is still a session.
26
+ */
27
+ export var FollowMeStatus;
28
+ (function (FollowMeStatus) {
29
+ FollowMeStatus["CREATED"] = "CREATED";
30
+ FollowMeStatus["ACTIVE"] = "ACTIVE";
31
+ FollowMeStatus["PROMPTING"] = "PROMPTING";
32
+ FollowMeStatus["ARRIVED"] = "ARRIVED";
33
+ FollowMeStatus["SOS_TRIGGERED"] = "SOS_TRIGGERED";
34
+ FollowMeStatus["STOPPED"] = "STOPPED";
35
+ FollowMeStatus["EXPIRED"] = "EXPIRED";
36
+ FollowMeStatus["CANCELLED"] = "CANCELLED";
37
+ FollowMeStatus["FAILED"] = "FAILED";
38
+ })(FollowMeStatus || (FollowMeStatus = {}));
39
+ /**
40
+ * One guardian's relationship to a session - separate from the session's own
41
+ * state. A guardian stopping following never ends the session.
42
+ *
43
+ * PENDING asked, not yet answered.
44
+ * ACCEPTED following (whether they are looking right now is
45
+ * presence, not state).
46
+ * DECLINED said no. May still accept while the session is live.
47
+ * STOPPED_FOLLOWING followed, then stopped. May follow again while live.
48
+ * EXPIRED the session ended; every open participation ends with it.
49
+ */
50
+ export var FollowMeParticipantStatus;
51
+ (function (FollowMeParticipantStatus) {
52
+ FollowMeParticipantStatus["PENDING"] = "PENDING";
53
+ FollowMeParticipantStatus["ACCEPTED"] = "ACCEPTED";
54
+ FollowMeParticipantStatus["DECLINED"] = "DECLINED";
55
+ FollowMeParticipantStatus["STOPPED_FOLLOWING"] = "STOPPED_FOLLOWING";
56
+ FollowMeParticipantStatus["EXPIRED"] = "EXPIRED";
57
+ })(FollowMeParticipantStatus || (FollowMeParticipantStatus = {}));
58
+ /** Who a participant is. App guardians sign in; external guardians hold a link. */
59
+ export var FollowMeParticipantKind;
60
+ (function (FollowMeParticipantKind) {
61
+ FollowMeParticipantKind["SYSTEM_GUARDIAN"] = "SYSTEM_GUARDIAN";
62
+ FollowMeParticipantKind["EXTERNAL_GUARDIAN"] = "EXTERNAL_GUARDIAN";
63
+ })(FollowMeParticipantKind || (FollowMeParticipantKind = {}));
64
+ export var FollowMeTransportMode;
65
+ (function (FollowMeTransportMode) {
66
+ FollowMeTransportMode["WALK"] = "WALK";
67
+ FollowMeTransportMode["DRIVE"] = "DRIVE";
68
+ FollowMeTransportMode["TWO_WHEELER"] = "TWO_WHEELER";
69
+ FollowMeTransportMode["PUBLIC_TRANSPORT"] = "PUBLIC_TRANSPORT";
70
+ /** A taxi or ride-hail: routed as driving, monitored as a vehicle. */
71
+ FollowMeTransportMode["RIDE_SERVICE"] = "RIDE_SERVICE";
72
+ })(FollowMeTransportMode || (FollowMeTransportMode = {}));
73
+ export var FollowMeWaypointKind;
74
+ (function (FollowMeWaypointKind) {
75
+ FollowMeWaypointKind["START"] = "START";
76
+ FollowMeWaypointKind["STOP"] = "STOP";
77
+ FollowMeWaypointKind["DESTINATION"] = "DESTINATION";
78
+ })(FollowMeWaypointKind || (FollowMeWaypointKind = {}));
79
+ /** A route is never replaced silently: the plan and every recalculation are kept. */
80
+ export var FollowMeRouteKind;
81
+ (function (FollowMeRouteKind) {
82
+ FollowMeRouteKind["ORIGINAL"] = "ORIGINAL";
83
+ FollowMeRouteKind["RECALCULATED"] = "RECALCULATED";
84
+ })(FollowMeRouteKind || (FollowMeRouteKind = {}));
85
+ /** What made Follow Me ask the user whether they are safe. */
86
+ export var FollowMeSafetyTrigger;
87
+ (function (FollowMeSafetyTrigger) {
88
+ FollowMeSafetyTrigger["CRASH_SUSPECTED"] = "CRASH_SUSPECTED";
89
+ FollowMeSafetyTrigger["ROUTE_DEVIATION"] = "ROUTE_DEVIATION";
90
+ FollowMeSafetyTrigger["PROLONGED_STOP"] = "PROLONGED_STOP";
91
+ FollowMeSafetyTrigger["ETA_OVERDUE"] = "ETA_OVERDUE";
92
+ })(FollowMeSafetyTrigger || (FollowMeSafetyTrigger = {}));
93
+ export var FollowMePromptStatus;
94
+ (function (FollowMePromptStatus) {
95
+ FollowMePromptStatus["ACTIVE"] = "ACTIVE";
96
+ FollowMePromptStatus["CONFIRMED_OK"] = "CONFIRMED_OK";
97
+ /** Unanswered - the SOS followed. */
98
+ FollowMePromptStatus["EXPIRED"] = "EXPIRED";
99
+ /** Closed without an answer for another reason: the session ended, or the user pressed SOS. */
100
+ FollowMePromptStatus["CANCELLED"] = "CANCELLED";
101
+ })(FollowMePromptStatus || (FollowMePromptStatus = {}));
102
+ /**
103
+ * What the monitors observed (follow_me_safety_events). Evidence, not decisions:
104
+ * most of these never become a prompt.
105
+ */
106
+ export var FollowMeSafetyEventType;
107
+ (function (FollowMeSafetyEventType) {
108
+ FollowMeSafetyEventType["OFF_ROUTE_SUSPECTED"] = "OFF_ROUTE_SUSPECTED";
109
+ FollowMeSafetyEventType["BACK_ON_ROUTE"] = "BACK_ON_ROUTE";
110
+ FollowMeSafetyEventType["ROUTE_RECALCULATED"] = "ROUTE_RECALCULATED";
111
+ FollowMeSafetyEventType["DEVIATION_CONFIRMED"] = "DEVIATION_CONFIRMED";
112
+ FollowMeSafetyEventType["PROLONGED_STOP_DETECTED"] = "PROLONGED_STOP_DETECTED";
113
+ FollowMeSafetyEventType["STOP_DEFERRED_FOR_TRAFFIC"] = "STOP_DEFERRED_FOR_TRAFFIC";
114
+ FollowMeSafetyEventType["ETA_RECALCULATED"] = "ETA_RECALCULATED";
115
+ FollowMeSafetyEventType["ETA_OVERDUE_DETECTED"] = "ETA_OVERDUE_DETECTED";
116
+ FollowMeSafetyEventType["CRASH_REPORTED"] = "CRASH_REPORTED";
117
+ FollowMeSafetyEventType["CRASH_REJECTED"] = "CRASH_REJECTED";
118
+ FollowMeSafetyEventType["ARRIVAL_DETECTED"] = "ARRIVAL_DETECTED";
119
+ FollowMeSafetyEventType["TRACKING_STALE"] = "TRACKING_STALE";
120
+ FollowMeSafetyEventType["TRACKING_RESTORED"] = "TRACKING_RESTORED";
121
+ })(FollowMeSafetyEventType || (FollowMeSafetyEventType = {}));
122
+ /** Is the session's live location actually live? Derived from lastLocationAt. */
123
+ export var FollowMeTrackingHealth;
124
+ (function (FollowMeTrackingHealth) {
125
+ FollowMeTrackingHealth["LIVE"] = "LIVE";
126
+ /** Nothing for a while - show "last seen N min ago", never "live". */
127
+ FollowMeTrackingHealth["STALE"] = "STALE";
128
+ /** No location has arrived yet. */
129
+ FollowMeTrackingHealth["NO_SIGNAL"] = "NO_SIGNAL";
130
+ })(FollowMeTrackingHealth || (FollowMeTrackingHealth = {}));
131
+ /** Audit trail (follow_me_audit_events). Never carries a location or a token. */
132
+ export var FollowMeAuditEventType;
133
+ (function (FollowMeAuditEventType) {
134
+ FollowMeAuditEventType["CREATED"] = "CREATED";
135
+ FollowMeAuditEventType["ACTIVATED"] = "ACTIVATED";
136
+ FollowMeAuditEventType["TRACKING_STARTED"] = "TRACKING_STARTED";
137
+ FollowMeAuditEventType["TRACKING_UNAVAILABLE"] = "TRACKING_UNAVAILABLE";
138
+ FollowMeAuditEventType["WORKFLOW_STARTED"] = "WORKFLOW_STARTED";
139
+ FollowMeAuditEventType["WORKFLOW_START_FAILED"] = "WORKFLOW_START_FAILED";
140
+ FollowMeAuditEventType["CHAT_CREATED"] = "CHAT_CREATED";
141
+ FollowMeAuditEventType["GUARDIAN_INVITED"] = "GUARDIAN_INVITED";
142
+ FollowMeAuditEventType["GUARDIAN_ACCEPTED"] = "GUARDIAN_ACCEPTED";
143
+ FollowMeAuditEventType["GUARDIAN_DECLINED"] = "GUARDIAN_DECLINED";
144
+ FollowMeAuditEventType["GUARDIAN_STOPPED_FOLLOWING"] = "GUARDIAN_STOPPED_FOLLOWING";
145
+ FollowMeAuditEventType["EXTERNAL_LINK_ISSUED"] = "EXTERNAL_LINK_ISSUED";
146
+ FollowMeAuditEventType["EXTERNAL_LINK_USED"] = "EXTERNAL_LINK_USED";
147
+ FollowMeAuditEventType["ROUTE_RECALCULATED"] = "ROUTE_RECALCULATED";
148
+ FollowMeAuditEventType["PROMPT_STARTED"] = "PROMPT_STARTED";
149
+ FollowMeAuditEventType["PROMPT_CONFIRMED"] = "PROMPT_CONFIRMED";
150
+ FollowMeAuditEventType["PROMPT_EXPIRED"] = "PROMPT_EXPIRED";
151
+ FollowMeAuditEventType["PROMPT_CANCELLED"] = "PROMPT_CANCELLED";
152
+ FollowMeAuditEventType["SOS_TRIGGERED"] = "SOS_TRIGGERED";
153
+ FollowMeAuditEventType["SOS_INCIDENT_CREATED"] = "SOS_INCIDENT_CREATED";
154
+ FollowMeAuditEventType["SOS_INCIDENT_RETRY"] = "SOS_INCIDENT_RETRY";
155
+ FollowMeAuditEventType["SOS_FAILED"] = "SOS_FAILED";
156
+ FollowMeAuditEventType["ARRIVED"] = "ARRIVED";
157
+ FollowMeAuditEventType["STOPPED"] = "STOPPED";
158
+ FollowMeAuditEventType["EXPIRED"] = "EXPIRED";
159
+ FollowMeAuditEventType["CANCELLED"] = "CANCELLED";
160
+ })(FollowMeAuditEventType || (FollowMeAuditEventType = {}));
161
+ /** Kafka event types (the `eventType` of FollowMeEvent), one topic each. */
162
+ export var FollowMeEventType;
163
+ (function (FollowMeEventType) {
164
+ FollowMeEventType["STARTED"] = "FOLLOW_ME_STARTED";
165
+ FollowMeEventType["GUARDIAN_RESPONDED"] = "FOLLOW_ME_GUARDIAN_RESPONDED";
166
+ FollowMeEventType["PROMPTING"] = "FOLLOW_ME_PROMPTING";
167
+ FollowMeEventType["SOS_TRIGGERED"] = "FOLLOW_ME_SOS_TRIGGERED";
168
+ FollowMeEventType["ENDED"] = "FOLLOW_ME_ENDED";
169
+ })(FollowMeEventType || (FollowMeEventType = {}));
170
+ /** Socket.IO `safety.event` types for Follow Me (FollowMeRealtimeEnvelope.type). */
171
+ export var FollowMeRealtimeEventType;
172
+ (function (FollowMeRealtimeEventType) {
173
+ FollowMeRealtimeEventType["STARTED"] = "FOLLOW_ME_STARTED";
174
+ FollowMeRealtimeEventType["REQUEST"] = "FOLLOW_ME_REQUEST";
175
+ FollowMeRealtimeEventType["GUARDIAN_ACCEPTED"] = "FOLLOW_ME_GUARDIAN_ACCEPTED";
176
+ FollowMeRealtimeEventType["GUARDIAN_DECLINED"] = "FOLLOW_ME_GUARDIAN_DECLINED";
177
+ FollowMeRealtimeEventType["GUARDIAN_STOPPED_FOLLOWING"] = "FOLLOW_ME_GUARDIAN_STOPPED_FOLLOWING";
178
+ FollowMeRealtimeEventType["LOCATION_UPDATED"] = "FOLLOW_ME_LOCATION_UPDATED";
179
+ FollowMeRealtimeEventType["ROUTE_UPDATED"] = "FOLLOW_ME_ROUTE_UPDATED";
180
+ FollowMeRealtimeEventType["ETA_UPDATED"] = "FOLLOW_ME_ETA_UPDATED";
181
+ FollowMeRealtimeEventType["SAFETY_EVENT"] = "FOLLOW_ME_SAFETY_EVENT";
182
+ FollowMeRealtimeEventType["PROMPT_STARTED"] = "FOLLOW_ME_PROMPT_STARTED";
183
+ FollowMeRealtimeEventType["PROMPT_CONFIRMED"] = "FOLLOW_ME_PROMPT_CONFIRMED";
184
+ FollowMeRealtimeEventType["SOS_TRIGGERED"] = "FOLLOW_ME_SOS_TRIGGERED";
185
+ FollowMeRealtimeEventType["ARRIVED"] = "FOLLOW_ME_ARRIVED";
186
+ FollowMeRealtimeEventType["STOPPED"] = "FOLLOW_ME_STOPPED";
187
+ FollowMeRealtimeEventType["EXPIRED"] = "FOLLOW_ME_EXPIRED";
188
+ FollowMeRealtimeEventType["ENDED"] = "FOLLOW_ME_ENDED";
189
+ FollowMeRealtimeEventType["PROVIDER_UPDATED"] = "FOLLOW_ME_PROVIDER_UPDATED";
190
+ })(FollowMeRealtimeEventType || (FollowMeRealtimeEventType = {}));
191
+ /**
192
+ * Push `data.action` / `data.type` values for Follow Me (allow-listed by the
193
+ * app's notification_deep_link_coordinator.dart - changing one breaks installed
194
+ * apps).
195
+ */
196
+ export var FollowMePushAction;
197
+ (function (FollowMePushAction) {
198
+ /** To a guardian: somebody asked you to follow their journey. */
199
+ FollowMePushAction["FOLLOW_ME_REQUEST"] = "FOLLOW_ME_REQUEST";
200
+ /** To the user: a guardian accepted or declined. */
201
+ FollowMePushAction["FOLLOW_ME_GUARDIAN_RESPONDED"] = "FOLLOW_ME_GUARDIAN_RESPONDED";
202
+ /** To the user: confirm you are safe. */
203
+ FollowMePushAction["FOLLOW_ME_PROMPT"] = "FOLLOW_ME_PROMPT";
204
+ /** To the user and followers: an SOS was raised from Follow Me. */
205
+ FollowMePushAction["FOLLOW_ME_SOS_TRIGGERED"] = "FOLLOW_ME_SOS_TRIGGERED";
206
+ /** To followers (and the user when it ended without them): Follow Me ended. */
207
+ FollowMePushAction["FOLLOW_ME_ENDED"] = "FOLLOW_ME_ENDED";
208
+ })(FollowMePushAction || (FollowMePushAction = {}));
209
+ /** Machine-readable `code` on every Follow Me error. */
210
+ export var FollowMeErrorCode;
211
+ (function (FollowMeErrorCode) {
212
+ FollowMeErrorCode["NOT_FOUND"] = "FOLLOW_ME_NOT_FOUND";
213
+ FollowMeErrorCode["ALREADY_ACTIVE"] = "FOLLOW_ME_ALREADY_ACTIVE";
214
+ FollowMeErrorCode["ALREADY_ENDED"] = "FOLLOW_ME_ENDED";
215
+ FollowMeErrorCode["SOS_ALREADY_TRIGGERED"] = "FOLLOW_ME_SOS_ALREADY_TRIGGERED";
216
+ FollowMeErrorCode["INVALID_TRANSITION"] = "FOLLOW_ME_INVALID_TRANSITION";
217
+ FollowMeErrorCode["INVALID_DURATION"] = "FOLLOW_ME_INVALID_DURATION";
218
+ FollowMeErrorCode["ROUTE_EXCEEDS_MAX_DURATION"] = "FOLLOW_ME_ROUTE_EXCEEDS_MAX_DURATION";
219
+ FollowMeErrorCode["ROUTE_INVALID"] = "FOLLOW_ME_ROUTE_INVALID";
220
+ FollowMeErrorCode["ROUTE_EXPIRED"] = "FOLLOW_ME_ROUTE_EXPIRED";
221
+ FollowMeErrorCode["ROUTING_UNAVAILABLE"] = "FOLLOW_ME_ROUTING_UNAVAILABLE";
222
+ FollowMeErrorCode["INVALID_REASON"] = "FOLLOW_ME_INVALID_REASON";
223
+ FollowMeErrorCode["CUSTOM_REASON_REQUIRED"] = "FOLLOW_ME_CUSTOM_REASON_REQUIRED";
224
+ FollowMeErrorCode["GUARDIAN_NOT_FOUND"] = "FOLLOW_ME_GUARDIAN_NOT_FOUND";
225
+ FollowMeErrorCode["GUARDIANS_UNAVAILABLE"] = "FOLLOW_ME_GUARDIANS_UNAVAILABLE";
226
+ FollowMeErrorCode["NO_RECIPIENTS"] = "FOLLOW_ME_NO_RECIPIENTS";
227
+ FollowMeErrorCode["SERVICE_PROVIDER_NOT_ENTITLED"] = "FOLLOW_ME_SERVICE_PROVIDER_NOT_ENTITLED";
228
+ FollowMeErrorCode["PROMPT_NOT_ACTIVE"] = "FOLLOW_ME_PROMPT_NOT_ACTIVE";
229
+ FollowMeErrorCode["TRACKING_CLOSED"] = "FOLLOW_ME_TRACKING_CLOSED";
230
+ FollowMeErrorCode["NOT_A_PARTICIPANT"] = "FOLLOW_ME_NOT_A_PARTICIPANT";
231
+ FollowMeErrorCode["ACCESS_EXPIRED"] = "FOLLOW_ME_ACCESS_EXPIRED";
232
+ FollowMeErrorCode["LOCATION_NOT_SHARED"] = "FOLLOW_ME_LOCATION_NOT_SHARED";
233
+ FollowMeErrorCode["RATE_LIMITED"] = "FOLLOW_ME_RATE_LIMITED";
234
+ })(FollowMeErrorCode || (FollowMeErrorCode = {}));
235
+ //# sourceMappingURL=follow-me.enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-me.enums.js","sourceRoot":"","sources":["../../../../../src/modules/safety/enums/follow-me.enums.ts"],"names":[],"mappings":"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"}
@@ -19,11 +19,13 @@ export var SafetyCheckStatus;
19
19
  SafetyCheckStatus["CANCELLED"] = "CANCELLED";
20
20
  SafetyCheckStatus["FAILED"] = "FAILED";
21
21
  })(SafetyCheckStatus || (SafetyCheckStatus = {}));
22
- /** Why a Safety Check raised an SOS. */
22
+ /** Why a safety feature raised an SOS (shared by Safety Check and Follow Me). */
23
23
  export var SafetyCheckSosTrigger;
24
24
  (function (SafetyCheckSosTrigger) {
25
25
  SafetyCheckSosTrigger["MISSED_CHECK_IN"] = "MISSED_CHECK_IN";
26
26
  SafetyCheckSosTrigger["USER_REQUESTED"] = "USER_REQUESTED";
27
+ /** Follow Me: a safety prompt (crash, deviation, stop, overdue) went unanswered. */
28
+ SafetyCheckSosTrigger["MISSED_SAFETY_PROMPT"] = "MISSED_SAFETY_PROMPT";
27
29
  })(SafetyCheckSosTrigger || (SafetyCheckSosTrigger = {}));
28
30
  /** Who caused a Safety Check transition. */
29
31
  export var SafetyCheckActorType;
@@ -1 +1 @@
1
- {"version":3,"file":"safety-enums.js","sourceRoot":"","sources":["../../../../../src/modules/safety/enums/safety-enums.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qFAAqF;AACrF,MAAM,CAAN,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB,wCAAmB,CAAA;IACnB,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;AACrB,CAAC,EAVW,iBAAiB,KAAjB,iBAAiB,QAU5B;AAED,wCAAwC;AACxC,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,4DAAmC,CAAA;IACnC,0DAAiC,CAAA;AACrC,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,4CAA4C;AAC5C,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,6CAAqB,CAAA;IACrB,iDAAyB,CAAA;IACzB,yCAAiB,CAAA;AACrB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,qDAAqD;AACrD,MAAM,CAAN,IAAY,yBAiBX;AAjBD,WAAY,yBAAyB;IACjC,gDAAmB,CAAA;IACnB,oDAAuB,CAAA;IACvB,kEAAqC,CAAA;IACrC,0EAA6C,CAAA;IAC7C,kEAAqC,CAAA;IACrC,4EAA+C,CAAA;IAC/C,kDAAqB,CAAA;IACrB,8DAAiC,CAAA;IACjC,sDAAyB,CAAA;IACzB,gDAAmB,CAAA;IACnB,oDAAuB,CAAA;IACvB,4DAA+B,CAAA;IAC/B,0EAA6C,CAAA;IAC7C,sEAAyC,CAAA;IACzC,sDAAyB,CAAA;IACzB,gDAAmB,CAAA;AACvB,CAAC,EAjBW,yBAAyB,KAAzB,yBAAyB,QAiBpC;AAED,sDAAsD;AACtD,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,8CAA6B,CAAA;IAC7B,wCAAuB,CAAA;AAC3B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,wEAAwE;AACxE,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IAClC,6DAA+B,CAAA;AACnC,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC;AAED,4EAA4E;AAC5E,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,+DAAqC,CAAA;IACrC,yDAA+B,CAAA;AACnC,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,gEAAgE;AAChE,MAAM,CAAN,IAAY,oBAgBX;AAhBD,WAAY,oBAAoB;IAC5B,4DAAoC,CAAA;IACpC,sEAA8C,CAAA;IAC9C,4DAAoC,CAAA;IACpC,oFAA4D,CAAA;IAC5D,8EAAsD,CAAA;IACtD,0EAAkD,CAAA;IAClD,oFAA4D,CAAA;IAC5D,sEAA8C,CAAA;IAC9C,sFAA8D,CAAA;IAC9D,8EAAsD,CAAA;IACtD,oFAA4D,CAAA;IAC5D,4EAAoD,CAAA;IACpD,oGAA4E,CAAA;IAC5E,wEAAgD,CAAA;IAChD,kEAA0C,CAAA;AAC9C,CAAC,EAhBW,oBAAoB,KAApB,oBAAoB,QAgB/B"}
1
+ {"version":3,"file":"safety-enums.js","sourceRoot":"","sources":["../../../../../src/modules/safety/enums/safety-enums.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qFAAqF;AACrF,MAAM,CAAN,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB,wCAAmB,CAAA;IACnB,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;AACrB,CAAC,EAVW,iBAAiB,KAAjB,iBAAiB,QAU5B;AAED,iFAAiF;AACjF,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,4DAAmC,CAAA;IACnC,0DAAiC,CAAA;IACjC,oFAAoF;IACpF,sEAA6C,CAAA;AACjD,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,4CAA4C;AAC5C,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,6CAAqB,CAAA;IACrB,iDAAyB,CAAA;IACzB,yCAAiB,CAAA;AACrB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,qDAAqD;AACrD,MAAM,CAAN,IAAY,yBAiBX;AAjBD,WAAY,yBAAyB;IACjC,gDAAmB,CAAA;IACnB,oDAAuB,CAAA;IACvB,kEAAqC,CAAA;IACrC,0EAA6C,CAAA;IAC7C,kEAAqC,CAAA;IACrC,4EAA+C,CAAA;IAC/C,kDAAqB,CAAA;IACrB,8DAAiC,CAAA;IACjC,sDAAyB,CAAA;IACzB,gDAAmB,CAAA;IACnB,oDAAuB,CAAA;IACvB,4DAA+B,CAAA;IAC/B,0EAA6C,CAAA;IAC7C,sEAAyC,CAAA;IACzC,sDAAyB,CAAA;IACzB,gDAAmB,CAAA;AACvB,CAAC,EAjBW,yBAAyB,KAAzB,yBAAyB,QAiBpC;AAED,sDAAsD;AACtD,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,8CAA6B,CAAA;IAC7B,wCAAuB,CAAA;AAC3B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,wEAAwE;AACxE,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IAClC,6DAA+B,CAAA;AACnC,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC;AAED,4EAA4E;AAC5E,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,+DAAqC,CAAA;IACrC,yDAA+B,CAAA;AACnC,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,gEAAgE;AAChE,MAAM,CAAN,IAAY,oBAgBX;AAhBD,WAAY,oBAAoB;IAC5B,4DAAoC,CAAA;IACpC,sEAA8C,CAAA;IAC9C,4DAAoC,CAAA;IACpC,oFAA4D,CAAA;IAC5D,8EAAsD,CAAA;IACtD,0EAAkD,CAAA;IAClD,oFAA4D,CAAA;IAC5D,sEAA8C,CAAA;IAC9C,sFAA8D,CAAA;IAC9D,8EAAsD,CAAA;IACtD,oFAA4D,CAAA;IAC5D,4EAAoD,CAAA;IACpD,oGAA4E,CAAA;IAC5E,wEAAgD,CAAA;IAChD,kEAA0C,CAAA;AAC9C,CAAC,EAhBW,oBAAoB,KAApB,oBAAoB,QAgB/B"}
@@ -1,10 +1,16 @@
1
1
  // Enums
2
2
  export * from './enums/safety-enums';
3
+ export * from './enums/follow-me.enums';
3
4
  // Constants
4
5
  export * from './constants/safety-check-limits.const';
5
6
  export * from './constants/safety-taxonomy.const';
7
+ export * from './constants/follow-me.const';
6
8
  // Interfaces / DTOs
7
9
  export * from './interfaces/safety-check.dto';
10
+ export * from './interfaces/safety-alert-context';
11
+ export * from './interfaces/follow-me.dto';
12
+ export * from './interfaces/safety-analytics';
8
13
  // Utilities
9
14
  export * from './utils/safety-display.util';
15
+ export * from './utils/follow-me-display.util';
10
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/safety/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,sBAAsB,CAAC;AAErC,YAAY;AACZ,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAElD,oBAAoB;AACpB,cAAc,+BAA+B,CAAC;AAE9C,YAAY;AACZ,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/safety/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAExC,YAAY;AACZ,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAE5C,oBAAoB;AACpB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAE9C,YAAY;AACZ,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=follow-me.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-me.dto.js","sourceRoot":"","sources":["../../../../../src/modules/safety/interfaces/follow-me.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=safety-alert-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-alert-context.js","sourceRoot":"","sources":["../../../../../src/modules/safety/interfaces/safety-alert-context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Safety analytics: how Safety Check and Follow Me were used over a period, by whom
3
+ * and how often, how they ended, what the monitoring caught and how the guardians
4
+ * followed. One read, computed by clarion-safety from one consistent snapshot, so
5
+ * every number on a dashboard agrees with every other.
6
+ *
7
+ * Counts only: never a location, a destination, a phone number, a name or a reason a
8
+ * user typed. A check or journey is counted by when it started, as it stands now.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=safety-analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-analytics.js","sourceRoot":"","sources":["../../../../../src/modules/safety/interfaces/safety-analytics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,155 @@
1
+ import { FollowMeAuditEventType, FollowMeParticipantKind, FollowMeParticipantStatus, FollowMePromptStatus, FollowMeRouteKind, FollowMeSafetyEventType, FollowMeSafetyTrigger, FollowMeStatus, FollowMeTrackingHealth, FollowMeTransportMode, FollowMeWaypointKind, } from '../enums/follow-me.enums';
2
+ /**
3
+ * Human labels for the Follow Me enums, so every screen names the same state the
4
+ * same way. Paired with an icon or text wherever colour is used - never colour alone.
5
+ */
6
+ export const FOLLOW_ME_STATUS_LABELS = {
7
+ [FollowMeStatus.CREATED]: 'Starting',
8
+ [FollowMeStatus.ACTIVE]: 'In progress',
9
+ [FollowMeStatus.PROMPTING]: 'Safety prompt open',
10
+ [FollowMeStatus.ARRIVED]: 'Arrived',
11
+ [FollowMeStatus.SOS_TRIGGERED]: 'SOS raised',
12
+ [FollowMeStatus.STOPPED]: 'Stopped',
13
+ [FollowMeStatus.EXPIRED]: 'Duration ended',
14
+ [FollowMeStatus.CANCELLED]: 'Cancelled',
15
+ [FollowMeStatus.FAILED]: 'SOS failed',
16
+ };
17
+ export const FOLLOW_ME_PARTICIPANT_STATUS_LABELS = {
18
+ [FollowMeParticipantStatus.PENDING]: 'Invited',
19
+ [FollowMeParticipantStatus.ACCEPTED]: 'Following',
20
+ [FollowMeParticipantStatus.DECLINED]: 'Declined',
21
+ [FollowMeParticipantStatus.STOPPED_FOLLOWING]: 'Stopped following',
22
+ [FollowMeParticipantStatus.EXPIRED]: 'Ended',
23
+ };
24
+ export const FOLLOW_ME_PARTICIPANT_KIND_LABELS = {
25
+ [FollowMeParticipantKind.SYSTEM_GUARDIAN]: 'App guardian',
26
+ [FollowMeParticipantKind.EXTERNAL_GUARDIAN]: 'External guardian (SMS link)',
27
+ };
28
+ export const FOLLOW_ME_TRANSPORT_MODE_LABELS = {
29
+ [FollowMeTransportMode.WALK]: 'Walking',
30
+ [FollowMeTransportMode.DRIVE]: 'Driving',
31
+ [FollowMeTransportMode.TWO_WHEELER]: 'Two-wheeler',
32
+ [FollowMeTransportMode.PUBLIC_TRANSPORT]: 'Public transport',
33
+ [FollowMeTransportMode.RIDE_SERVICE]: 'Ride service',
34
+ };
35
+ export const FOLLOW_ME_WAYPOINT_KIND_LABELS = {
36
+ [FollowMeWaypointKind.START]: 'Start',
37
+ [FollowMeWaypointKind.STOP]: 'Stop',
38
+ [FollowMeWaypointKind.DESTINATION]: 'Destination',
39
+ };
40
+ export const FOLLOW_ME_ROUTE_KIND_LABELS = {
41
+ [FollowMeRouteKind.ORIGINAL]: 'Planned route',
42
+ [FollowMeRouteKind.RECALCULATED]: 'Recalculated route',
43
+ };
44
+ export const FOLLOW_ME_TRIGGER_LABELS = {
45
+ [FollowMeSafetyTrigger.CRASH_SUSPECTED]: 'Possible crash',
46
+ [FollowMeSafetyTrigger.ROUTE_DEVIATION]: 'Significant route deviation',
47
+ [FollowMeSafetyTrigger.PROLONGED_STOP]: 'Unexpected long stop',
48
+ [FollowMeSafetyTrigger.ETA_OVERDUE]: 'Well past expected arrival',
49
+ };
50
+ export const FOLLOW_ME_PROMPT_STATUS_LABELS = {
51
+ [FollowMePromptStatus.ACTIVE]: 'Waiting for the user',
52
+ [FollowMePromptStatus.CONFIRMED_OK]: 'User confirmed OK',
53
+ [FollowMePromptStatus.EXPIRED]: 'No response - SOS raised',
54
+ [FollowMePromptStatus.CANCELLED]: 'Closed without an answer',
55
+ };
56
+ export const FOLLOW_ME_SAFETY_EVENT_LABELS = {
57
+ [FollowMeSafetyEventType.OFF_ROUTE_SUSPECTED]: 'Left the route corridor',
58
+ [FollowMeSafetyEventType.BACK_ON_ROUTE]: 'Back on route',
59
+ [FollowMeSafetyEventType.ROUTE_RECALCULATED]: 'Route recalculated',
60
+ [FollowMeSafetyEventType.DEVIATION_CONFIRMED]: 'Significant deviation confirmed',
61
+ [FollowMeSafetyEventType.PROLONGED_STOP_DETECTED]: 'Prolonged stop detected',
62
+ [FollowMeSafetyEventType.STOP_DEFERRED_FOR_TRAFFIC]: 'Stop explained by traffic',
63
+ [FollowMeSafetyEventType.ETA_RECALCULATED]: 'Arrival estimate updated',
64
+ [FollowMeSafetyEventType.ETA_OVERDUE_DETECTED]: 'Overdue past expected arrival',
65
+ [FollowMeSafetyEventType.CRASH_REPORTED]: 'Possible crash reported by the phone',
66
+ [FollowMeSafetyEventType.CRASH_REJECTED]: 'Crash report not confirmed by the track',
67
+ [FollowMeSafetyEventType.ARRIVAL_DETECTED]: 'Arrival detected',
68
+ [FollowMeSafetyEventType.TRACKING_STALE]: 'Location updates stopped',
69
+ [FollowMeSafetyEventType.TRACKING_RESTORED]: 'Location updates resumed',
70
+ };
71
+ export const FOLLOW_ME_AUDIT_EVENT_LABELS = {
72
+ [FollowMeAuditEventType.CREATED]: 'Follow Me requested',
73
+ [FollowMeAuditEventType.ACTIVATED]: 'Follow Me started',
74
+ [FollowMeAuditEventType.TRACKING_STARTED]: 'Location sharing started',
75
+ [FollowMeAuditEventType.TRACKING_UNAVAILABLE]: 'Location tracking unavailable',
76
+ [FollowMeAuditEventType.WORKFLOW_STARTED]: 'Timer scheduled',
77
+ [FollowMeAuditEventType.WORKFLOW_START_FAILED]: 'Timer could not be scheduled',
78
+ [FollowMeAuditEventType.CHAT_CREATED]: 'Chat opened',
79
+ [FollowMeAuditEventType.GUARDIAN_INVITED]: 'Guardian invited',
80
+ [FollowMeAuditEventType.GUARDIAN_ACCEPTED]: 'Guardian started following',
81
+ [FollowMeAuditEventType.GUARDIAN_DECLINED]: 'Guardian declined',
82
+ [FollowMeAuditEventType.GUARDIAN_STOPPED_FOLLOWING]: 'Guardian stopped following',
83
+ [FollowMeAuditEventType.EXTERNAL_LINK_ISSUED]: 'Follow link sent',
84
+ [FollowMeAuditEventType.EXTERNAL_LINK_USED]: 'Follow link opened',
85
+ [FollowMeAuditEventType.ROUTE_RECALCULATED]: 'Route recalculated',
86
+ [FollowMeAuditEventType.PROMPT_STARTED]: 'Safety prompt shown',
87
+ [FollowMeAuditEventType.PROMPT_CONFIRMED]: 'User confirmed OK',
88
+ [FollowMeAuditEventType.PROMPT_EXPIRED]: 'Safety prompt unanswered',
89
+ [FollowMeAuditEventType.PROMPT_CANCELLED]: 'Safety prompt closed',
90
+ [FollowMeAuditEventType.SOS_TRIGGERED]: 'SOS triggered',
91
+ [FollowMeAuditEventType.SOS_INCIDENT_CREATED]: 'SOS incident created',
92
+ [FollowMeAuditEventType.SOS_INCIDENT_RETRY]: 'SOS incident creation retried',
93
+ [FollowMeAuditEventType.SOS_FAILED]: 'SOS could not be raised',
94
+ [FollowMeAuditEventType.ARRIVED]: 'Arrived at destination',
95
+ [FollowMeAuditEventType.STOPPED]: 'Stopped by user',
96
+ [FollowMeAuditEventType.EXPIRED]: 'Duration ended',
97
+ [FollowMeAuditEventType.CANCELLED]: 'Cancelled',
98
+ };
99
+ export const FOLLOW_ME_TRACKING_HEALTH_LABELS = {
100
+ [FollowMeTrackingHealth.LIVE]: 'Live',
101
+ [FollowMeTrackingHealth.STALE]: 'Not updating',
102
+ [FollowMeTrackingHealth.NO_SIGNAL]: 'No location yet',
103
+ };
104
+ export function followMeStatusTone(status) {
105
+ switch (status) {
106
+ case FollowMeStatus.ARRIVED:
107
+ return 'success';
108
+ case FollowMeStatus.CREATED:
109
+ case FollowMeStatus.ACTIVE:
110
+ return 'info';
111
+ case FollowMeStatus.PROMPTING:
112
+ return 'warn';
113
+ case FollowMeStatus.SOS_TRIGGERED:
114
+ case FollowMeStatus.FAILED:
115
+ return 'danger';
116
+ default:
117
+ return 'neutral';
118
+ }
119
+ }
120
+ export function followMeParticipantTone(status) {
121
+ switch (status) {
122
+ case FollowMeParticipantStatus.ACCEPTED:
123
+ return 'success';
124
+ case FollowMeParticipantStatus.PENDING:
125
+ return 'info';
126
+ case FollowMeParticipantStatus.DECLINED:
127
+ case FollowMeParticipantStatus.STOPPED_FOLLOWING:
128
+ return 'warn';
129
+ default:
130
+ return 'neutral';
131
+ }
132
+ }
133
+ export function followMeTrackingHealthTone(health) {
134
+ return health === FollowMeTrackingHealth.LIVE ? 'success' : health === FollowMeTrackingHealth.STALE ? 'warn' : 'neutral';
135
+ }
136
+ /** Whether the session is still running. */
137
+ export function isOpenFollowMe(status) {
138
+ return status === FollowMeStatus.CREATED || status === FollowMeStatus.ACTIVE || status === FollowMeStatus.PROMPTING;
139
+ }
140
+ /**
141
+ * "Live", "Updated 3 min ago" or "No location yet" - so a stale position is never
142
+ * presented as live. `now` is injectable for tests.
143
+ */
144
+ export function describeFollowMeFreshness(health, lastLocationAt, now = new Date()) {
145
+ if (health === FollowMeTrackingHealth.NO_SIGNAL || !lastLocationAt)
146
+ return FOLLOW_ME_TRACKING_HEALTH_LABELS[FollowMeTrackingHealth.NO_SIGNAL];
147
+ if (health === FollowMeTrackingHealth.LIVE)
148
+ return FOLLOW_ME_TRACKING_HEALTH_LABELS[FollowMeTrackingHealth.LIVE];
149
+ const minutes = Math.max(1, Math.round((now.getTime() - new Date(lastLocationAt).getTime()) / 60000));
150
+ if (minutes < 60)
151
+ return `Updated ${minutes} min ago`;
152
+ const hours = Math.round(minutes / 60);
153
+ return `Updated ${hours} h ago`;
154
+ }
155
+ //# sourceMappingURL=follow-me-display.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-me-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/safety/utils/follow-me-display.util.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export const SAFETY_CHECK_STATUS_LABELS = {
17
17
  export const SAFETY_CHECK_SOS_TRIGGER_LABELS = {
18
18
  [SafetyCheckSosTrigger.MISSED_CHECK_IN]: 'Missed check-in',
19
19
  [SafetyCheckSosTrigger.USER_REQUESTED]: 'Requested by user',
20
+ [SafetyCheckSosTrigger.MISSED_SAFETY_PROMPT]: 'Unanswered safety prompt',
20
21
  };
21
22
  export const SAFETY_CHECK_ACTOR_TYPE_LABELS = {
22
23
  [SafetyCheckActorType.USER]: 'User',
@@ -1 +1 @@
1
- {"version":3,"file":"safety-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/safety/utils/safety-display.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safety-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/safety/utils/safety-display.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** How a computed route travels. Follow Me's ride service is routed as DRIVE. */
2
+ export declare enum GisTravelMode {
3
+ DRIVE = "DRIVE",
4
+ WALK = "WALK",
5
+ TWO_WHEELER = "TWO_WHEELER",
6
+ TRANSIT = "TRANSIT"
7
+ }
8
+ /**
9
+ * Who computed a route or resolved a place. ESTIMATE is clarion-gis's own
10
+ * straight-line estimate, used when the maps provider is not configured or not
11
+ * reachable - it has no road geometry and no traffic, and every consumer must say
12
+ * so rather than present it as a real route.
13
+ */
14
+ export declare enum GisRoutingProvider {
15
+ GOOGLE = "GOOGLE",
16
+ ESTIMATE = "ESTIMATE"
17
+ }
18
+ export declare enum SavedPlaceKind {
19
+ HOME = "HOME",
20
+ WORK = "WORK",
21
+ OTHER = "OTHER"
22
+ }
@@ -12,3 +12,6 @@ export * from './interfaces/zone-for-point';
12
12
  export * from './interfaces/zone-match-result';
13
13
  export * from './interfaces/zone-near-point';
14
14
  export * from './interfaces/zone-statistics';
15
+ export * from './enums/routing.enum';
16
+ export * from './interfaces/trip-point';
17
+ export * from './interfaces/routing';
@@ -0,0 +1,43 @@
1
+ import { GisRoutingProvider, SavedPlaceKind } from '../enums/routing.enum';
2
+ export interface ComputedRouteLeg {
3
+ distanceMeters: number;
4
+ durationSeconds: number;
5
+ }
6
+ /** A computed route. `polyline` is Google's encoded-polyline format (precision 5). */
7
+ export interface ComputedRoute {
8
+ provider: GisRoutingProvider;
9
+ polyline: string;
10
+ distanceMeters: number;
11
+ /** With traffic where available. */
12
+ durationSeconds: number;
13
+ /** Free-flow; equal to durationSeconds when traffic was not considered. */
14
+ staticDurationSeconds: number;
15
+ legs: ComputedRouteLeg[];
16
+ /** Human-readable caveats from the provider (tolls, ferries, "estimate only"...). */
17
+ warnings: string[];
18
+ computedAt: string;
19
+ }
20
+ export interface PlaceSuggestion {
21
+ placeId: string;
22
+ primaryText: string;
23
+ secondaryText: string | null;
24
+ }
25
+ export interface PlaceDetails {
26
+ placeId: string | null;
27
+ label: string;
28
+ address: string | null;
29
+ lat: number;
30
+ lng: number;
31
+ provider: GisRoutingProvider;
32
+ }
33
+ export interface SavedPlaceView {
34
+ id: string;
35
+ label: string;
36
+ kind: SavedPlaceKind;
37
+ lat: number;
38
+ lng: number;
39
+ address: string | null;
40
+ placeId: string | null;
41
+ createdAt: string;
42
+ updatedAt: string;
43
+ }
@@ -0,0 +1,16 @@
1
+ /** One recorded fix with everything the device told us about it. */
2
+ export interface TripPoint {
3
+ lat: number;
4
+ lng: number;
5
+ timestamp: string;
6
+ accuracy?: number | null;
7
+ altitude?: number | null;
8
+ speed?: number | null;
9
+ heading?: number | null;
10
+ source?: string | null;
11
+ }
12
+ export interface TripPointsPage {
13
+ points: TripPoint[];
14
+ /** Pass as `since` for the next page; null when there is nothing more. */
15
+ nextSince: string | null;
16
+ }
@@ -0,0 +1,7 @@
1
+ /** What raised an incident when it was not a person filling in a form. */
2
+ export declare enum IncidentOriginType {
3
+ /** A Safety Check the user missed or asked for help from. */
4
+ SAFETY_CHECK = "SAFETY_CHECK",
5
+ /** A Follow Me journey: an unanswered safety prompt, or SOS pressed during it. */
6
+ FOLLOW_ME = "FOLLOW_ME"
7
+ }