grm-shared-library 1.1.222 → 1.1.224

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 (151) hide show
  1. package/dist/cjs/kafka/topics.js +7 -0
  2. package/dist/cjs/kafka/topics.js.map +1 -1
  3. package/dist/cjs/modules/gis/dtos/private-trip.dto.js +34 -0
  4. package/dist/cjs/modules/gis/dtos/private-trip.dto.js.map +1 -1
  5. package/dist/cjs/modules/gis/dtos/routing.dto.js +251 -0
  6. package/dist/cjs/modules/gis/dtos/routing.dto.js.map +1 -0
  7. package/dist/cjs/modules/gis/dtos/trip-points.dto.js +35 -0
  8. package/dist/cjs/modules/gis/dtos/trip-points.dto.js.map +1 -0
  9. package/dist/cjs/modules/gis/enums/routing.enum.js +29 -0
  10. package/dist/cjs/modules/gis/enums/routing.enum.js.map +1 -0
  11. package/dist/cjs/modules/gis/enums/trip-privacy.enum.js +6 -0
  12. package/dist/cjs/modules/gis/enums/trip-privacy.enum.js.map +1 -1
  13. package/dist/cjs/modules/gis/index.js +5 -0
  14. package/dist/cjs/modules/gis/index.js.map +1 -1
  15. package/dist/cjs/modules/gis/interfaces/routing.js +3 -0
  16. package/dist/cjs/modules/gis/interfaces/routing.js.map +1 -0
  17. package/dist/cjs/modules/gis/interfaces/trip-point.js +3 -0
  18. package/dist/cjs/modules/gis/interfaces/trip-point.js.map +1 -0
  19. package/dist/cjs/modules/incident/dtos/incident/incident.dto.js +9 -1
  20. package/dist/cjs/modules/incident/dtos/incident/incident.dto.js.map +1 -1
  21. package/dist/cjs/modules/incident/enums/incident-origin-type.enum.js +2 -0
  22. package/dist/cjs/modules/incident/enums/incident-origin-type.enum.js.map +1 -1
  23. package/dist/cjs/modules/permission/data/permissions.data.js +10 -1
  24. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  25. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +12 -0
  26. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  27. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  28. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  29. package/dist/cjs/modules/role/constants/safety-roles.js +22 -1
  30. package/dist/cjs/modules/role/constants/safety-roles.js.map +1 -1
  31. package/dist/cjs/modules/role/data/roles.data.js +24 -7
  32. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  33. package/dist/cjs/modules/safety/constants/follow-me.const.js +137 -0
  34. package/dist/cjs/modules/safety/constants/follow-me.const.js.map +1 -0
  35. package/dist/cjs/modules/safety/constants/safety-integration.const.js +88 -1
  36. package/dist/cjs/modules/safety/constants/safety-integration.const.js.map +1 -1
  37. package/dist/cjs/modules/safety/dtos/follow-me.dto.js +501 -0
  38. package/dist/cjs/modules/safety/dtos/follow-me.dto.js.map +1 -0
  39. package/dist/cjs/modules/safety/dtos/safety-admin.dto.js +13 -0
  40. package/dist/cjs/modules/safety/dtos/safety-admin.dto.js.map +1 -1
  41. package/dist/cjs/modules/safety/dtos/safety-alert-context.dto.js +60 -0
  42. package/dist/cjs/modules/safety/dtos/safety-alert-context.dto.js.map +1 -0
  43. package/dist/cjs/modules/safety/dtos/safety-internal.dto.js +17 -0
  44. package/dist/cjs/modules/safety/dtos/safety-internal.dto.js.map +1 -1
  45. package/dist/cjs/modules/safety/enums/follow-me.enums.js +237 -0
  46. package/dist/cjs/modules/safety/enums/follow-me.enums.js.map +1 -0
  47. package/dist/cjs/modules/safety/enums/safety-enums.js +8 -3
  48. package/dist/cjs/modules/safety/enums/safety-enums.js.map +1 -1
  49. package/dist/cjs/modules/safety/index.js +7 -0
  50. package/dist/cjs/modules/safety/index.js.map +1 -1
  51. package/dist/cjs/modules/safety/interfaces/follow-me.js +3 -0
  52. package/dist/cjs/modules/safety/interfaces/follow-me.js.map +1 -0
  53. package/dist/cjs/modules/safety/interfaces/safety-alert-context.js +3 -0
  54. package/dist/cjs/modules/safety/interfaces/safety-alert-context.js.map +1 -0
  55. package/dist/cjs/modules/safety/utils/follow-me-state-machine.js +131 -0
  56. package/dist/cjs/modules/safety/utils/follow-me-state-machine.js.map +1 -0
  57. package/dist/cjs/modules/sms/constants/sms-templates.config.js +12 -0
  58. package/dist/cjs/modules/sms/constants/sms-templates.config.js.map +1 -1
  59. package/dist/cjs/modules/sms/enums/sms-template.enum.js +2 -0
  60. package/dist/cjs/modules/sms/enums/sms-template.enum.js.map +1 -1
  61. package/dist/esm/kafka/topics.js +7 -0
  62. package/dist/esm/kafka/topics.js.map +1 -1
  63. package/dist/esm/modules/gis/dtos/private-trip.dto.js +34 -0
  64. package/dist/esm/modules/gis/dtos/private-trip.dto.js.map +1 -1
  65. package/dist/esm/modules/gis/dtos/routing.dto.js +241 -0
  66. package/dist/esm/modules/gis/dtos/routing.dto.js.map +1 -0
  67. package/dist/esm/modules/gis/dtos/trip-points.dto.js +31 -0
  68. package/dist/esm/modules/gis/dtos/trip-points.dto.js.map +1 -0
  69. package/dist/esm/modules/gis/enums/routing.enum.js +26 -0
  70. package/dist/esm/modules/gis/enums/routing.enum.js.map +1 -0
  71. package/dist/esm/modules/gis/enums/trip-privacy.enum.js +6 -0
  72. package/dist/esm/modules/gis/enums/trip-privacy.enum.js.map +1 -1
  73. package/dist/esm/modules/gis/index.js +5 -0
  74. package/dist/esm/modules/gis/index.js.map +1 -1
  75. package/dist/esm/modules/gis/interfaces/routing.js +2 -0
  76. package/dist/esm/modules/gis/interfaces/routing.js.map +1 -0
  77. package/dist/esm/modules/gis/interfaces/trip-point.js +2 -0
  78. package/dist/esm/modules/gis/interfaces/trip-point.js.map +1 -0
  79. package/dist/esm/modules/incident/dtos/incident/incident.dto.js +9 -1
  80. package/dist/esm/modules/incident/dtos/incident/incident.dto.js.map +1 -1
  81. package/dist/esm/modules/incident/enums/incident-origin-type.enum.js +2 -0
  82. package/dist/esm/modules/incident/enums/incident-origin-type.enum.js.map +1 -1
  83. package/dist/esm/modules/permission/data/permissions.data.js +10 -1
  84. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  85. package/dist/esm/modules/permission/enums/permission-actions.enum.js +12 -0
  86. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  87. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  88. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  89. package/dist/esm/modules/role/constants/safety-roles.js +21 -0
  90. package/dist/esm/modules/role/constants/safety-roles.js.map +1 -1
  91. package/dist/esm/modules/role/data/roles.data.js +24 -7
  92. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  93. package/dist/esm/modules/safety/constants/follow-me.const.js +134 -0
  94. package/dist/esm/modules/safety/constants/follow-me.const.js.map +1 -0
  95. package/dist/esm/modules/safety/constants/safety-integration.const.js +86 -0
  96. package/dist/esm/modules/safety/constants/safety-integration.const.js.map +1 -1
  97. package/dist/esm/modules/safety/dtos/follow-me.dto.js +488 -0
  98. package/dist/esm/modules/safety/dtos/follow-me.dto.js.map +1 -0
  99. package/dist/esm/modules/safety/dtos/safety-admin.dto.js +13 -0
  100. package/dist/esm/modules/safety/dtos/safety-admin.dto.js.map +1 -1
  101. package/dist/esm/modules/safety/dtos/safety-alert-context.dto.js +55 -0
  102. package/dist/esm/modules/safety/dtos/safety-alert-context.dto.js.map +1 -0
  103. package/dist/esm/modules/safety/dtos/safety-internal.dto.js +17 -0
  104. package/dist/esm/modules/safety/dtos/safety-internal.dto.js.map +1 -1
  105. package/dist/esm/modules/safety/enums/follow-me.enums.js +234 -0
  106. package/dist/esm/modules/safety/enums/follow-me.enums.js.map +1 -0
  107. package/dist/esm/modules/safety/enums/safety-enums.js +8 -3
  108. package/dist/esm/modules/safety/enums/safety-enums.js.map +1 -1
  109. package/dist/esm/modules/safety/index.js +7 -0
  110. package/dist/esm/modules/safety/index.js.map +1 -1
  111. package/dist/esm/modules/safety/interfaces/follow-me.js +2 -0
  112. package/dist/esm/modules/safety/interfaces/follow-me.js.map +1 -0
  113. package/dist/esm/modules/safety/interfaces/safety-alert-context.js +2 -0
  114. package/dist/esm/modules/safety/interfaces/safety-alert-context.js.map +1 -0
  115. package/dist/esm/modules/safety/utils/follow-me-state-machine.js +116 -0
  116. package/dist/esm/modules/safety/utils/follow-me-state-machine.js.map +1 -0
  117. package/dist/esm/modules/sms/constants/sms-templates.config.js +12 -0
  118. package/dist/esm/modules/sms/constants/sms-templates.config.js.map +1 -1
  119. package/dist/esm/modules/sms/enums/sms-template.enum.js +2 -0
  120. package/dist/esm/modules/sms/enums/sms-template.enum.js.map +1 -1
  121. package/dist/types/kafka/topics.d.ts +5 -0
  122. package/dist/types/modules/gis/dtos/private-trip.dto.d.ts +4 -0
  123. package/dist/types/modules/gis/dtos/routing.dto.d.ts +48 -0
  124. package/dist/types/modules/gis/dtos/trip-points.dto.d.ts +5 -0
  125. package/dist/types/modules/gis/enums/routing.enum.d.ts +22 -0
  126. package/dist/types/modules/gis/enums/trip-privacy.enum.d.ts +7 -1
  127. package/dist/types/modules/gis/index.d.ts +5 -0
  128. package/dist/types/modules/gis/interfaces/routing.d.ts +43 -0
  129. package/dist/types/modules/gis/interfaces/trip-point.d.ts +16 -0
  130. package/dist/types/modules/gis/interfaces/trip-summary.d.ts +2 -6
  131. package/dist/types/modules/incident/dtos/incident/incident.dto.d.ts +2 -0
  132. package/dist/types/modules/incident/enums/incident-origin-type.enum.d.ts +3 -1
  133. package/dist/types/modules/incident/intefaces/incident.d.ts +3 -0
  134. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -0
  135. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
  136. package/dist/types/modules/role/constants/safety-roles.d.ts +10 -0
  137. package/dist/types/modules/safety/constants/follow-me.const.d.ts +120 -0
  138. package/dist/types/modules/safety/constants/safety-integration.const.d.ts +79 -0
  139. package/dist/types/modules/safety/dtos/follow-me.dto.d.ts +106 -0
  140. package/dist/types/modules/safety/dtos/safety-admin.dto.d.ts +3 -0
  141. package/dist/types/modules/safety/dtos/safety-alert-context.dto.d.ts +14 -0
  142. package/dist/types/modules/safety/dtos/safety-internal.dto.d.ts +3 -0
  143. package/dist/types/modules/safety/enums/follow-me.enums.d.ts +218 -0
  144. package/dist/types/modules/safety/enums/safety-enums.d.ts +9 -4
  145. package/dist/types/modules/safety/index.d.ts +7 -0
  146. package/dist/types/modules/safety/interfaces/follow-me.d.ts +377 -0
  147. package/dist/types/modules/safety/interfaces/safety-alert-context.d.ts +8 -0
  148. package/dist/types/modules/safety/interfaces/safety-check.d.ts +3 -1
  149. package/dist/types/modules/safety/utils/follow-me-state-machine.d.ts +51 -0
  150. package/dist/types/modules/sms/enums/sms-template.enum.d.ts +2 -0
  151. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"safety-internal.dto.js","sourceRoot":"","sources":["../../../../../src/modules/safety/dtos/safety-internal.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safety-internal.dto.js","sourceRoot":"","sources":["../../../../../src/modules/safety/dtos/safety-internal.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Lifecycle of one Follow Me session. clarion-safety is the only writer; every
3
+ * transition is validated against FOLLOW_ME_TRANSITIONS and applied as a
4
+ * conditional update, exactly as a Safety Check is.
5
+ *
6
+ * CREATED accepted and persisted; the trip, the timer and the guardian
7
+ * requests are being set up. Already counts as live.
8
+ * ACTIVE the journey is being shared and monitored.
9
+ * PROMPTING a safety prompt is open (see FollowMePromptStatus); an SOS is
10
+ * raised if it is not answered.
11
+ * ARRIVED the destination was reached. Terminal, successful.
12
+ * SOS_TRIGGERED an SOS was raised - a prompt went unanswered or the user
13
+ * asked for one. Follow Me is over; the recorded trip goes on as
14
+ * the incident's trip and followers move to the SOS view.
15
+ * STOPPED the user ended it. Terminal.
16
+ * EXPIRED the chosen duration ran out before arrival. Terminal; never
17
+ * raises an SOS by itself. Deferred while a prompt is open.
18
+ * CANCELLED ended by the platform rather than the user (e.g. sign-out).
19
+ * FAILED the SOS could not be raised because clarion-incident refused
20
+ * it outright. Terminal; the user and guardians are told to act.
21
+ *
22
+ * Deliberately NOT a status: whether live sharing is healthy. That is
23
+ * FollowMeTrackingHealth, derived from when the last location arrived - a
24
+ * session with a flat battery is still a session.
25
+ */
26
+ export var FollowMeStatus;
27
+ (function (FollowMeStatus) {
28
+ FollowMeStatus["CREATED"] = "CREATED";
29
+ FollowMeStatus["ACTIVE"] = "ACTIVE";
30
+ FollowMeStatus["PROMPTING"] = "PROMPTING";
31
+ FollowMeStatus["ARRIVED"] = "ARRIVED";
32
+ FollowMeStatus["SOS_TRIGGERED"] = "SOS_TRIGGERED";
33
+ FollowMeStatus["STOPPED"] = "STOPPED";
34
+ FollowMeStatus["EXPIRED"] = "EXPIRED";
35
+ FollowMeStatus["CANCELLED"] = "CANCELLED";
36
+ FollowMeStatus["FAILED"] = "FAILED";
37
+ })(FollowMeStatus || (FollowMeStatus = {}));
38
+ /**
39
+ * One guardian's relationship to a session - separate from the session's own
40
+ * state. A guardian stopping following never ends the session.
41
+ *
42
+ * PENDING asked, not yet answered.
43
+ * ACCEPTED following (whether they are looking right now is
44
+ * presence, not state).
45
+ * DECLINED said no. May still accept while the session is live.
46
+ * STOPPED_FOLLOWING followed, then stopped. May follow again while live.
47
+ * EXPIRED the session ended; every open participation ends with it.
48
+ */
49
+ export var FollowMeParticipantStatus;
50
+ (function (FollowMeParticipantStatus) {
51
+ FollowMeParticipantStatus["PENDING"] = "PENDING";
52
+ FollowMeParticipantStatus["ACCEPTED"] = "ACCEPTED";
53
+ FollowMeParticipantStatus["DECLINED"] = "DECLINED";
54
+ FollowMeParticipantStatus["STOPPED_FOLLOWING"] = "STOPPED_FOLLOWING";
55
+ FollowMeParticipantStatus["EXPIRED"] = "EXPIRED";
56
+ })(FollowMeParticipantStatus || (FollowMeParticipantStatus = {}));
57
+ /** Who a participant is. App guardians sign in; external guardians hold a link. */
58
+ export var FollowMeParticipantKind;
59
+ (function (FollowMeParticipantKind) {
60
+ FollowMeParticipantKind["SYSTEM_GUARDIAN"] = "SYSTEM_GUARDIAN";
61
+ FollowMeParticipantKind["EXTERNAL_GUARDIAN"] = "EXTERNAL_GUARDIAN";
62
+ })(FollowMeParticipantKind || (FollowMeParticipantKind = {}));
63
+ export var FollowMeTransportMode;
64
+ (function (FollowMeTransportMode) {
65
+ FollowMeTransportMode["WALK"] = "WALK";
66
+ FollowMeTransportMode["DRIVE"] = "DRIVE";
67
+ FollowMeTransportMode["TWO_WHEELER"] = "TWO_WHEELER";
68
+ FollowMeTransportMode["PUBLIC_TRANSPORT"] = "PUBLIC_TRANSPORT";
69
+ /** A taxi or ride-hail: routed as driving, monitored as a vehicle. */
70
+ FollowMeTransportMode["RIDE_SERVICE"] = "RIDE_SERVICE";
71
+ })(FollowMeTransportMode || (FollowMeTransportMode = {}));
72
+ export var FollowMeWaypointKind;
73
+ (function (FollowMeWaypointKind) {
74
+ FollowMeWaypointKind["START"] = "START";
75
+ FollowMeWaypointKind["STOP"] = "STOP";
76
+ FollowMeWaypointKind["DESTINATION"] = "DESTINATION";
77
+ })(FollowMeWaypointKind || (FollowMeWaypointKind = {}));
78
+ /** A route is never replaced silently: the plan and every recalculation are kept. */
79
+ export var FollowMeRouteKind;
80
+ (function (FollowMeRouteKind) {
81
+ FollowMeRouteKind["ORIGINAL"] = "ORIGINAL";
82
+ FollowMeRouteKind["RECALCULATED"] = "RECALCULATED";
83
+ })(FollowMeRouteKind || (FollowMeRouteKind = {}));
84
+ /** What made Follow Me ask the user whether they are safe. */
85
+ export var FollowMeSafetyTrigger;
86
+ (function (FollowMeSafetyTrigger) {
87
+ FollowMeSafetyTrigger["CRASH_SUSPECTED"] = "CRASH_SUSPECTED";
88
+ FollowMeSafetyTrigger["ROUTE_DEVIATION"] = "ROUTE_DEVIATION";
89
+ FollowMeSafetyTrigger["PROLONGED_STOP"] = "PROLONGED_STOP";
90
+ FollowMeSafetyTrigger["ETA_OVERDUE"] = "ETA_OVERDUE";
91
+ })(FollowMeSafetyTrigger || (FollowMeSafetyTrigger = {}));
92
+ export var FollowMePromptStatus;
93
+ (function (FollowMePromptStatus) {
94
+ FollowMePromptStatus["ACTIVE"] = "ACTIVE";
95
+ FollowMePromptStatus["CONFIRMED_OK"] = "CONFIRMED_OK";
96
+ /** Unanswered - the SOS followed. */
97
+ FollowMePromptStatus["EXPIRED"] = "EXPIRED";
98
+ /** Closed without an answer for another reason: the session ended, or the user pressed SOS. */
99
+ FollowMePromptStatus["CANCELLED"] = "CANCELLED";
100
+ })(FollowMePromptStatus || (FollowMePromptStatus = {}));
101
+ /**
102
+ * What the monitors observed (follow_me_safety_events). Evidence, not decisions:
103
+ * most of these never become a prompt.
104
+ */
105
+ export var FollowMeSafetyEventType;
106
+ (function (FollowMeSafetyEventType) {
107
+ FollowMeSafetyEventType["OFF_ROUTE_SUSPECTED"] = "OFF_ROUTE_SUSPECTED";
108
+ FollowMeSafetyEventType["BACK_ON_ROUTE"] = "BACK_ON_ROUTE";
109
+ FollowMeSafetyEventType["ROUTE_RECALCULATED"] = "ROUTE_RECALCULATED";
110
+ FollowMeSafetyEventType["DEVIATION_CONFIRMED"] = "DEVIATION_CONFIRMED";
111
+ FollowMeSafetyEventType["PROLONGED_STOP_DETECTED"] = "PROLONGED_STOP_DETECTED";
112
+ FollowMeSafetyEventType["STOP_DEFERRED_FOR_TRAFFIC"] = "STOP_DEFERRED_FOR_TRAFFIC";
113
+ FollowMeSafetyEventType["ETA_RECALCULATED"] = "ETA_RECALCULATED";
114
+ FollowMeSafetyEventType["ETA_OVERDUE_DETECTED"] = "ETA_OVERDUE_DETECTED";
115
+ FollowMeSafetyEventType["CRASH_REPORTED"] = "CRASH_REPORTED";
116
+ FollowMeSafetyEventType["CRASH_REJECTED"] = "CRASH_REJECTED";
117
+ FollowMeSafetyEventType["ARRIVAL_DETECTED"] = "ARRIVAL_DETECTED";
118
+ FollowMeSafetyEventType["TRACKING_STALE"] = "TRACKING_STALE";
119
+ FollowMeSafetyEventType["TRACKING_RESTORED"] = "TRACKING_RESTORED";
120
+ })(FollowMeSafetyEventType || (FollowMeSafetyEventType = {}));
121
+ /** Is the session's live location actually live? Derived from lastLocationAt. */
122
+ export var FollowMeTrackingHealth;
123
+ (function (FollowMeTrackingHealth) {
124
+ FollowMeTrackingHealth["LIVE"] = "LIVE";
125
+ /** Nothing for a while - show "last seen N min ago", never "live". */
126
+ FollowMeTrackingHealth["STALE"] = "STALE";
127
+ /** No location has arrived yet. */
128
+ FollowMeTrackingHealth["NO_SIGNAL"] = "NO_SIGNAL";
129
+ })(FollowMeTrackingHealth || (FollowMeTrackingHealth = {}));
130
+ /** Audit trail (follow_me_audit_events). Never carries a location or a token. */
131
+ export var FollowMeAuditEventType;
132
+ (function (FollowMeAuditEventType) {
133
+ FollowMeAuditEventType["CREATED"] = "CREATED";
134
+ FollowMeAuditEventType["ACTIVATED"] = "ACTIVATED";
135
+ FollowMeAuditEventType["TRACKING_STARTED"] = "TRACKING_STARTED";
136
+ FollowMeAuditEventType["TRACKING_UNAVAILABLE"] = "TRACKING_UNAVAILABLE";
137
+ FollowMeAuditEventType["WORKFLOW_STARTED"] = "WORKFLOW_STARTED";
138
+ FollowMeAuditEventType["WORKFLOW_START_FAILED"] = "WORKFLOW_START_FAILED";
139
+ FollowMeAuditEventType["CHAT_CREATED"] = "CHAT_CREATED";
140
+ FollowMeAuditEventType["GUARDIAN_INVITED"] = "GUARDIAN_INVITED";
141
+ FollowMeAuditEventType["GUARDIAN_ACCEPTED"] = "GUARDIAN_ACCEPTED";
142
+ FollowMeAuditEventType["GUARDIAN_DECLINED"] = "GUARDIAN_DECLINED";
143
+ FollowMeAuditEventType["GUARDIAN_STOPPED_FOLLOWING"] = "GUARDIAN_STOPPED_FOLLOWING";
144
+ FollowMeAuditEventType["EXTERNAL_LINK_ISSUED"] = "EXTERNAL_LINK_ISSUED";
145
+ FollowMeAuditEventType["EXTERNAL_LINK_USED"] = "EXTERNAL_LINK_USED";
146
+ FollowMeAuditEventType["ROUTE_RECALCULATED"] = "ROUTE_RECALCULATED";
147
+ FollowMeAuditEventType["PROMPT_STARTED"] = "PROMPT_STARTED";
148
+ FollowMeAuditEventType["PROMPT_CONFIRMED"] = "PROMPT_CONFIRMED";
149
+ FollowMeAuditEventType["PROMPT_EXPIRED"] = "PROMPT_EXPIRED";
150
+ FollowMeAuditEventType["PROMPT_CANCELLED"] = "PROMPT_CANCELLED";
151
+ FollowMeAuditEventType["SOS_TRIGGERED"] = "SOS_TRIGGERED";
152
+ FollowMeAuditEventType["SOS_INCIDENT_CREATED"] = "SOS_INCIDENT_CREATED";
153
+ FollowMeAuditEventType["SOS_INCIDENT_RETRY"] = "SOS_INCIDENT_RETRY";
154
+ FollowMeAuditEventType["SOS_FAILED"] = "SOS_FAILED";
155
+ FollowMeAuditEventType["ARRIVED"] = "ARRIVED";
156
+ FollowMeAuditEventType["STOPPED"] = "STOPPED";
157
+ FollowMeAuditEventType["EXPIRED"] = "EXPIRED";
158
+ FollowMeAuditEventType["CANCELLED"] = "CANCELLED";
159
+ })(FollowMeAuditEventType || (FollowMeAuditEventType = {}));
160
+ /** Kafka event types (the `eventType` of FollowMeEvent), one topic each. */
161
+ export var FollowMeEventType;
162
+ (function (FollowMeEventType) {
163
+ FollowMeEventType["STARTED"] = "FOLLOW_ME_STARTED";
164
+ FollowMeEventType["GUARDIAN_RESPONDED"] = "FOLLOW_ME_GUARDIAN_RESPONDED";
165
+ FollowMeEventType["PROMPTING"] = "FOLLOW_ME_PROMPTING";
166
+ FollowMeEventType["SOS_TRIGGERED"] = "FOLLOW_ME_SOS_TRIGGERED";
167
+ FollowMeEventType["ENDED"] = "FOLLOW_ME_ENDED";
168
+ })(FollowMeEventType || (FollowMeEventType = {}));
169
+ /** Socket.IO `safety.event` types for Follow Me (FollowMeRealtimeEnvelope.type). */
170
+ export var FollowMeRealtimeEventType;
171
+ (function (FollowMeRealtimeEventType) {
172
+ FollowMeRealtimeEventType["STARTED"] = "FOLLOW_ME_STARTED";
173
+ FollowMeRealtimeEventType["REQUEST"] = "FOLLOW_ME_REQUEST";
174
+ FollowMeRealtimeEventType["GUARDIAN_ACCEPTED"] = "FOLLOW_ME_GUARDIAN_ACCEPTED";
175
+ FollowMeRealtimeEventType["GUARDIAN_DECLINED"] = "FOLLOW_ME_GUARDIAN_DECLINED";
176
+ FollowMeRealtimeEventType["GUARDIAN_STOPPED_FOLLOWING"] = "FOLLOW_ME_GUARDIAN_STOPPED_FOLLOWING";
177
+ FollowMeRealtimeEventType["LOCATION_UPDATED"] = "FOLLOW_ME_LOCATION_UPDATED";
178
+ FollowMeRealtimeEventType["ROUTE_UPDATED"] = "FOLLOW_ME_ROUTE_UPDATED";
179
+ FollowMeRealtimeEventType["ETA_UPDATED"] = "FOLLOW_ME_ETA_UPDATED";
180
+ FollowMeRealtimeEventType["SAFETY_EVENT"] = "FOLLOW_ME_SAFETY_EVENT";
181
+ FollowMeRealtimeEventType["PROMPT_STARTED"] = "FOLLOW_ME_PROMPT_STARTED";
182
+ FollowMeRealtimeEventType["PROMPT_CONFIRMED"] = "FOLLOW_ME_PROMPT_CONFIRMED";
183
+ FollowMeRealtimeEventType["SOS_TRIGGERED"] = "FOLLOW_ME_SOS_TRIGGERED";
184
+ FollowMeRealtimeEventType["ARRIVED"] = "FOLLOW_ME_ARRIVED";
185
+ FollowMeRealtimeEventType["STOPPED"] = "FOLLOW_ME_STOPPED";
186
+ FollowMeRealtimeEventType["EXPIRED"] = "FOLLOW_ME_EXPIRED";
187
+ FollowMeRealtimeEventType["ENDED"] = "FOLLOW_ME_ENDED";
188
+ FollowMeRealtimeEventType["PROVIDER_UPDATED"] = "FOLLOW_ME_PROVIDER_UPDATED";
189
+ })(FollowMeRealtimeEventType || (FollowMeRealtimeEventType = {}));
190
+ /**
191
+ * Push `data.action` / `data.type` values for Follow Me (allow-listed by the
192
+ * app's notification_deep_link_coordinator.dart - changing one breaks installed
193
+ * apps).
194
+ */
195
+ export var FollowMePushAction;
196
+ (function (FollowMePushAction) {
197
+ /** To a guardian: somebody asked you to follow their journey. */
198
+ FollowMePushAction["FOLLOW_ME_REQUEST"] = "FOLLOW_ME_REQUEST";
199
+ /** To the user: a guardian accepted or declined. */
200
+ FollowMePushAction["FOLLOW_ME_GUARDIAN_RESPONDED"] = "FOLLOW_ME_GUARDIAN_RESPONDED";
201
+ /** To the user: confirm you are safe. */
202
+ FollowMePushAction["FOLLOW_ME_PROMPT"] = "FOLLOW_ME_PROMPT";
203
+ /** To the user and followers: an SOS was raised from Follow Me. */
204
+ FollowMePushAction["FOLLOW_ME_SOS_TRIGGERED"] = "FOLLOW_ME_SOS_TRIGGERED";
205
+ /** To followers (and the user when it ended without them): Follow Me ended. */
206
+ FollowMePushAction["FOLLOW_ME_ENDED"] = "FOLLOW_ME_ENDED";
207
+ })(FollowMePushAction || (FollowMePushAction = {}));
208
+ /** Machine-readable `code` on every Follow Me error. */
209
+ export var FollowMeErrorCode;
210
+ (function (FollowMeErrorCode) {
211
+ FollowMeErrorCode["NOT_FOUND"] = "FOLLOW_ME_NOT_FOUND";
212
+ FollowMeErrorCode["ALREADY_ACTIVE"] = "FOLLOW_ME_ALREADY_ACTIVE";
213
+ FollowMeErrorCode["ALREADY_ENDED"] = "FOLLOW_ME_ENDED";
214
+ FollowMeErrorCode["SOS_ALREADY_TRIGGERED"] = "FOLLOW_ME_SOS_ALREADY_TRIGGERED";
215
+ FollowMeErrorCode["INVALID_TRANSITION"] = "FOLLOW_ME_INVALID_TRANSITION";
216
+ FollowMeErrorCode["INVALID_DURATION"] = "FOLLOW_ME_INVALID_DURATION";
217
+ FollowMeErrorCode["ROUTE_EXCEEDS_MAX_DURATION"] = "FOLLOW_ME_ROUTE_EXCEEDS_MAX_DURATION";
218
+ FollowMeErrorCode["ROUTE_INVALID"] = "FOLLOW_ME_ROUTE_INVALID";
219
+ FollowMeErrorCode["ROUTE_EXPIRED"] = "FOLLOW_ME_ROUTE_EXPIRED";
220
+ FollowMeErrorCode["ROUTING_UNAVAILABLE"] = "FOLLOW_ME_ROUTING_UNAVAILABLE";
221
+ FollowMeErrorCode["INVALID_REASON"] = "FOLLOW_ME_INVALID_REASON";
222
+ FollowMeErrorCode["CUSTOM_REASON_REQUIRED"] = "FOLLOW_ME_CUSTOM_REASON_REQUIRED";
223
+ FollowMeErrorCode["GUARDIAN_NOT_FOUND"] = "FOLLOW_ME_GUARDIAN_NOT_FOUND";
224
+ FollowMeErrorCode["GUARDIANS_UNAVAILABLE"] = "FOLLOW_ME_GUARDIANS_UNAVAILABLE";
225
+ FollowMeErrorCode["NO_RECIPIENTS"] = "FOLLOW_ME_NO_RECIPIENTS";
226
+ FollowMeErrorCode["SERVICE_PROVIDER_NOT_ENTITLED"] = "FOLLOW_ME_SERVICE_PROVIDER_NOT_ENTITLED";
227
+ FollowMeErrorCode["PROMPT_NOT_ACTIVE"] = "FOLLOW_ME_PROMPT_NOT_ACTIVE";
228
+ FollowMeErrorCode["TRACKING_CLOSED"] = "FOLLOW_ME_TRACKING_CLOSED";
229
+ FollowMeErrorCode["NOT_A_PARTICIPANT"] = "FOLLOW_ME_NOT_A_PARTICIPANT";
230
+ FollowMeErrorCode["ACCESS_EXPIRED"] = "FOLLOW_ME_ACCESS_EXPIRED";
231
+ FollowMeErrorCode["LOCATION_NOT_SHARED"] = "FOLLOW_ME_LOCATION_NOT_SHARED";
232
+ FollowMeErrorCode["RATE_LIMITED"] = "FOLLOW_ME_RATE_LIMITED";
233
+ })(FollowMeErrorCode || (FollowMeErrorCode = {}));
234
+ //# 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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"}
@@ -1,10 +1,15 @@
1
- /** Why a Safety Check raised an SOS. */
1
+ /**
2
+ * Why a safety feature raised an SOS. Shared by every safety feature (the name
3
+ * predates Follow Me).
4
+ */
2
5
  export var SafetyCheckSosTrigger;
3
6
  (function (SafetyCheckSosTrigger) {
4
- /** The prompt countdown ran out without the user confirming they were safe. */
7
+ /** Safety Check: the prompt countdown ran out without the user confirming they were safe. */
5
8
  SafetyCheckSosTrigger["MISSED_CHECK_IN"] = "MISSED_CHECK_IN";
6
- /** The user pressed SOS from the Safety Check screen. */
9
+ /** The user pressed SOS from a safety feature's screen. */
7
10
  SafetyCheckSosTrigger["USER_REQUESTED"] = "USER_REQUESTED";
11
+ /** Follow Me: a safety prompt (crash, deviation, stop, overdue) went unanswered. */
12
+ SafetyCheckSosTrigger["MISSED_SAFETY_PROMPT"] = "MISSED_SAFETY_PROMPT";
8
13
  })(SafetyCheckSosTrigger || (SafetyCheckSosTrigger = {}));
9
14
  /** Who caused a Safety Check transition - recorded on every audit entry. */
10
15
  export var SafetyCheckActorType;
@@ -1 +1 @@
1
- {"version":3,"file":"safety-enums.js","sourceRoot":"","sources":["../../../../../src/modules/safety/enums/safety-enums.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,+EAA+E;IAC/E,4DAAmC,CAAA;IACnC,yDAAyD;IACzD,0DAAiC,CAAA;AACrC,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,4EAA4E;AAC5E,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,qDAAqD;IACrD,6CAAqB,CAAA;IACrB,qEAAqE;IACrE,iDAAyB,CAAA;IACzB,yCAAiB,CAAA;AACrB,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B;AAED,qFAAqF;AACrF,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;;;;GAIG;AACH,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;;;GAGG;AACH,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,wDAAgC,CAAA;IAChC,4DAAoC,CAAA;IACpC,oDAA4B,CAAA;IAC5B,oEAA4C,CAAA;AAChD,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IACxB,uDAAuD;IACvD,+DAA2C,CAAA;IAC3C,4DAA4D;IAC5D,6EAAyD,CAAA;IACzD,mFAAmF;IACnF,6DAAyC,CAAA;IACzC,oEAAoE;IACpE,mFAA+D,CAAA;IAC/D,qDAAqD;IACrD,+EAA2D,CAAA;AAC/D,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,QAW3B"}
1
+ {"version":3,"file":"safety-enums.js","sourceRoot":"","sources":["../../../../../src/modules/safety/enums/safety-enums.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAC7B,6FAA6F;IAC7F,4DAAmC,CAAA;IACnC,2DAA2D;IAC3D,0DAAiC,CAAA;IACjC,oFAAoF;IACpF,sEAA6C,CAAA;AACjD,CAAC,EAPW,qBAAqB,KAArB,qBAAqB,QAOhC;AAED,4EAA4E;AAC5E,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,qDAAqD;IACrD,6CAAqB,CAAA;IACrB,qEAAqE;IACrE,iDAAyB,CAAA;IACzB,yCAAiB,CAAA;AACrB,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B;AAED,qFAAqF;AACrF,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;;;;GAIG;AACH,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;;;GAGG;AACH,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,wDAAgC,CAAA;IAChC,4DAAoC,CAAA;IACpC,oDAA4B,CAAA;IAC5B,oEAA4C,CAAA;AAChD,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IACxB,uDAAuD;IACvD,+DAA2C,CAAA;IAC3C,4DAA4D;IAC5D,6EAAyD,CAAA;IACzD,mFAAmF;IACnF,6DAAyC,CAAA;IACzC,oEAAoE;IACpE,mFAA+D,CAAA;IAC/D,qDAAqD;IACrD,+EAA2D,CAAA;AAC/D,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,QAW3B"}
@@ -2,18 +2,25 @@
2
2
  export * from './enums/safety-check-status.enum';
3
3
  export * from './enums/safety-enums';
4
4
  export * from './enums/safety-error-code.enum';
5
+ export * from './enums/follow-me.enums';
5
6
  // Constants
6
7
  export * from './constants/safety-check-limits.const';
7
8
  export * from './constants/safety-taxonomy.const';
8
9
  export * from './constants/safety-integration.const';
10
+ export * from './constants/follow-me.const';
9
11
  // Interfaces
10
12
  export * from './interfaces/safety-check';
11
13
  export * from './interfaces/safety-check-event';
14
+ export * from './interfaces/safety-alert-context';
15
+ export * from './interfaces/follow-me';
12
16
  // DTOs
13
17
  export * from './dtos/safety-check.dto';
14
18
  export * from './dtos/safety-admin.dto';
15
19
  export * from './dtos/safety-internal.dto';
20
+ export * from './dtos/safety-alert-context.dto';
21
+ export * from './dtos/follow-me.dto';
16
22
  // Utilities
17
23
  export * from './utils/safety-check-state-machine';
18
24
  export * from './utils/safety-check-timing.util';
25
+ export * from './utils/follow-me-state-machine';
19
26
  //# 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,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAE/C,YAAY;AACZ,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AAErD,aAAa;AACb,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAEhD,OAAO;AACP,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAE3C,YAAY;AACZ,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/safety/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AAExC,YAAY;AACZ,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAE5C,aAAa;AACb,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AAEvC,OAAO;AACP,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AAErC,YAAY;AACZ,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=follow-me.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-me.js","sourceRoot":"","sources":["../../../../../src/modules/safety/interfaces/follow-me.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,116 @@
1
+ import { FOLLOW_ME_LIMITS } from '../constants/follow-me.const';
2
+ import { FollowMeParticipantStatus, FollowMeStatus, FollowMeTrackingHealth } from '../enums/follow-me.enums';
3
+ const S = FollowMeStatus;
4
+ /**
5
+ * Every legal Follow Me transition. Applied by clarion-safety as a conditional
6
+ * update, so the database settles every race (arrival vs a deviation, "I'm OK" at
7
+ * the deadline, stop while a prompt expires). Re-applying the current state is an
8
+ * idempotent no-op, not listed here.
9
+ *
10
+ * Two rules the table encodes on purpose:
11
+ * - PROMPTING cannot EXPIRE and cannot ARRIVE: an open prompt is answered or
12
+ * escalated before the session is allowed to end on its own. The user CAN stop
13
+ * while prompted - doing so is itself proof they are responsive.
14
+ * - SOS_TRIGGERED ends Follow Me; the journey continues as the incident's trip.
15
+ */
16
+ export const FOLLOW_ME_TRANSITIONS = {
17
+ [S.CREATED]: [S.ACTIVE, S.PROMPTING, S.SOS_TRIGGERED, S.STOPPED, S.EXPIRED, S.CANCELLED],
18
+ [S.ACTIVE]: [S.PROMPTING, S.SOS_TRIGGERED, S.ARRIVED, S.STOPPED, S.EXPIRED, S.CANCELLED],
19
+ [S.PROMPTING]: [S.ACTIVE, S.SOS_TRIGGERED, S.STOPPED, S.CANCELLED],
20
+ [S.SOS_TRIGGERED]: [S.FAILED],
21
+ [S.ARRIVED]: [],
22
+ [S.STOPPED]: [],
23
+ [S.EXPIRED]: [],
24
+ [S.CANCELLED]: [],
25
+ [S.FAILED]: [],
26
+ };
27
+ /** At most one of these per user. */
28
+ export const OPEN_FOLLOW_ME_STATUSES = [S.CREATED, S.ACTIVE, S.PROMPTING];
29
+ export const TERMINAL_FOLLOW_ME_STATUSES = [
30
+ S.ARRIVED,
31
+ S.STOPPED,
32
+ S.EXPIRED,
33
+ S.CANCELLED,
34
+ S.FAILED,
35
+ ];
36
+ /**
37
+ * States in which followers may see the LIVE position. SOS_TRIGGERED is not one:
38
+ * app guardians move to the existing SOS follow, and the external page is served
39
+ * by its own rule in clarion-safety (live while the incident trip is still active,
40
+ * never past the 24 h cap).
41
+ */
42
+ export const LIVE_FOLLOW_ME_STATUSES = [S.CREATED, S.ACTIVE, S.PROMPTING];
43
+ export function isOpenFollowMeStatus(status) {
44
+ return !!status && OPEN_FOLLOW_ME_STATUSES.includes(status);
45
+ }
46
+ export function isTerminalFollowMeStatus(status) {
47
+ return !!status && TERMINAL_FOLLOW_ME_STATUSES.includes(status);
48
+ }
49
+ export function canTransitionFollowMe(from, to) {
50
+ var _a;
51
+ return ((_a = FOLLOW_ME_TRANSITIONS[from]) !== null && _a !== void 0 ? _a : []).includes(to);
52
+ }
53
+ export function allowedFollowMeSourcesFor(to) {
54
+ return Object.keys(FOLLOW_ME_TRANSITIONS).filter((from) => FOLLOW_ME_TRANSITIONS[from].includes(to));
55
+ }
56
+ const P = FollowMeParticipantStatus;
57
+ /**
58
+ * A guardian's own transitions while the session is live. EXPIRED is reached only
59
+ * when the session ends, never by the guardian.
60
+ */
61
+ export const FOLLOW_ME_PARTICIPANT_TRANSITIONS = {
62
+ [P.PENDING]: [P.ACCEPTED, P.DECLINED, P.EXPIRED],
63
+ [P.ACCEPTED]: [P.STOPPED_FOLLOWING, P.EXPIRED],
64
+ [P.DECLINED]: [P.ACCEPTED, P.EXPIRED],
65
+ [P.STOPPED_FOLLOWING]: [P.ACCEPTED, P.EXPIRED],
66
+ [P.EXPIRED]: [],
67
+ };
68
+ export function canTransitionParticipant(from, to) {
69
+ var _a;
70
+ return ((_a = FOLLOW_ME_PARTICIPANT_TRANSITIONS[from]) !== null && _a !== void 0 ? _a : []).includes(to);
71
+ }
72
+ /** Whether a participant may see the live position right now. */
73
+ export function participantHasLiveAccess(participant, session) {
74
+ return participant === P.ACCEPTED && LIVE_FOLLOW_ME_STATUSES.includes(session);
75
+ }
76
+ /** Live, stale or never seen - so no screen ever calls a stale position "live". */
77
+ export function followMeTrackingHealth(lastLocationAt, now) {
78
+ if (!lastLocationAt)
79
+ return FollowMeTrackingHealth.NO_SIGNAL;
80
+ return now.getTime() - lastLocationAt.getTime() > FOLLOW_ME_LIMITS.trackingStaleAfterSeconds * 1000
81
+ ? FollowMeTrackingHealth.STALE
82
+ : FollowMeTrackingHealth.LIVE;
83
+ }
84
+ /** When a prompt shown at `startedAt` stops being visible to the user. */
85
+ export function followMePromptDeadline(startedAt, countdownSeconds) {
86
+ return new Date(startedAt.getTime() + countdownSeconds * 1000);
87
+ }
88
+ /** When the server escalates an unanswered prompt: the visible deadline plus the grace. */
89
+ export function followMePromptSosDueAt(deadlineAt) {
90
+ return new Date(deadlineAt.getTime() + FOLLOW_ME_LIMITS.promptGraceSeconds * 1000);
91
+ }
92
+ /**
93
+ * The default duration for a planned journey: its travel time plus a buffer,
94
+ * rounded up to 15 minutes, capped at the 24 h maximum.
95
+ */
96
+ export function suggestFollowMeDurationMinutes(routeDurationSeconds) {
97
+ if (!routeDurationSeconds || routeDurationSeconds <= 0)
98
+ return FOLLOW_ME_LIMITS.defaultDurationMinutes;
99
+ const minutes = Math.ceil(routeDurationSeconds / 60) + FOLLOW_ME_LIMITS.routeDurationBufferMinutes;
100
+ const rounded = Math.ceil(minutes / 15) * 15;
101
+ return Math.min(FOLLOW_ME_LIMITS.maxDurationMinutes, Math.max(FOLLOW_ME_LIMITS.minDurationMinutes, rounded));
102
+ }
103
+ /** Whether a journey of this length can be followed at all. */
104
+ export function routeExceedsFollowMeMaximum(routeDurationSeconds) {
105
+ return routeDurationSeconds > FOLLOW_ME_LIMITS.maxDurationMinutes * 60;
106
+ }
107
+ /** +2547******78 - enough to recognise, not enough to use. */
108
+ export function maskPhoneNumber(phone) {
109
+ if (!phone)
110
+ return null;
111
+ const value = String(phone).trim();
112
+ if (value.length <= 6)
113
+ return value.replace(/\d/g, '*');
114
+ return `${value.slice(0, 5)}${'*'.repeat(Math.max(0, value.length - 7))}${value.slice(-2)}`;
115
+ }
116
+ //# sourceMappingURL=follow-me-state-machine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-me-state-machine.js","sourceRoot":"","sources":["../../../../../src/modules/safety/utils/follow-me-state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAE7G,MAAM,CAAC,GAAG,cAAc,CAAC;AAEzB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgE;IAC9F,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;IACxF,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;IACxF,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;IAClE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;IACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;IACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;IACf,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE;IACjB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE;CACjB,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,uBAAuB,GAA8B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;AAErG,MAAM,CAAC,MAAM,2BAA2B,GAA8B;IAClE,CAAC,CAAC,OAAO;IACT,CAAC,CAAC,OAAO;IACT,CAAC,CAAC,OAAO;IACT,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,MAAM;CACX,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA8B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;AAErG,MAAM,UAAU,oBAAoB,CAAC,MAAkD;IACnF,OAAO,CAAC,CAAC,MAAM,IAAK,uBAA6C,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAkD;IACvF,OAAO,CAAC,CAAC,MAAM,IAAK,2BAAiD,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAoB,EAAE,EAAkB;;IAC1E,OAAO,CAAC,MAAA,qBAAqB,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EAAkB;IACxD,OAAQ,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAsB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5E,qBAAqB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC3C,CAAC;AACN,CAAC;AAED,MAAM,CAAC,GAAG,yBAAyB,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAE1C;IACA,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;IACrC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;CAClB,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,IAA+B,EAAE,EAA6B;;IACnG,OAAO,CAAC,MAAA,iCAAiC,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,wBAAwB,CACpC,WAAsC,EACtC,OAAuB;IAEvB,OAAO,WAAW,KAAK,CAAC,CAAC,QAAQ,IAAK,uBAA6C,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1G,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,sBAAsB,CAAC,cAA2B,EAAE,GAAS;IACzE,IAAI,CAAC,cAAc;QAAE,OAAO,sBAAsB,CAAC,SAAS,CAAC;IAC7D,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,yBAAyB,GAAG,IAAI;QAC/F,CAAC,CAAC,sBAAsB,CAAC,KAAK;QAC9B,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB,CAAC,SAAe,EAAE,gBAAwB;IAC5E,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,sBAAsB,CAAC,UAAgB;IACnD,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,oBAA+C;IAC1F,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC,sBAAsB,CAAC;IACvG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,GAAG,gBAAgB,CAAC,0BAA0B,CAAC;IACnG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;AACjH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,2BAA2B,CAAC,oBAA4B;IACpE,OAAO,oBAAoB,GAAG,gBAAgB,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC3E,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,eAAe,CAAC,KAAgC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChG,CAAC"}
@@ -55,6 +55,18 @@ export const SMS_TEMPLATES = {
55
55
  variables: ['GUARDIAN_FIRSTNAME', 'USER_FIRSTNAME', 'OUTCOME', 'APP_NAME'],
56
56
  description: 'Tells an external guardian that a Safety Check ended without an SOS'
57
57
  },
58
+ [SmsTemplateType.FOLLOW_ME_GUARDIAN_REQUEST]: {
59
+ name: 'Follow Me Request (Guardian)',
60
+ content: '{{GUARDIAN_FIRSTNAME}}, {{USER_FIRSTNAME}} has asked you to follow their journey on {{APP_NAME}}. Follow live: {{FOLLOW_LINK}} (works until {{EXPIRES_AT}}).',
61
+ variables: ['GUARDIAN_FIRSTNAME', 'USER_FIRSTNAME', 'APP_NAME', 'FOLLOW_LINK', 'EXPIRES_AT'],
62
+ description: 'Asks an external guardian to follow a Follow Me journey through a private, expiring link'
63
+ },
64
+ [SmsTemplateType.FOLLOW_ME_GUARDIAN_ENDED]: {
65
+ name: 'Follow Me Ended (Guardian)',
66
+ content: '{{GUARDIAN_FIRSTNAME}}, {{USER_FIRSTNAME}} {{OUTCOME}} on {{APP_NAME}}. Live sharing has ended.',
67
+ variables: ['GUARDIAN_FIRSTNAME', 'USER_FIRSTNAME', 'OUTCOME', 'APP_NAME'],
68
+ description: 'Tells an external guardian that a Follow Me journey ended'
69
+ },
58
70
  [SmsTemplateType.APPOINTMENT_REMINDER]: {
59
71
  name: 'Appointment Reminder',
60
72
  content: 'Reminder: You have an appointment on {{DATE}} at {{TIME}} for {{PURPOSE}}. Location: {{LOCATION}}. Contact us if you need to reschedule.',
@@ -1 +1 @@
1
- {"version":3,"file":"sms-templates.config.js","sourceRoot":"","sources":["../../../../../src/modules/sms/constants/sms-templates.config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC5C,SAAS,EAAE;QACP,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE;YAChC,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,qIAAqI;YAC9I,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;YACpC,WAAW,EAAE,6CAA6C;SAC7D;QACD,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE;YAC9B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,oKAAoK;YAC7K,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;YACpC,WAAW,EAAE,gDAAgD;SAChE;QACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YACvB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,6HAA6H;YACtI,SAAS,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC;YACxC,WAAW,EAAE,+BAA+B;SAC/C;QACD,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE;YAClC,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,2IAA2I;YACpJ,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC;YAC5C,WAAW,EAAE,uCAAuC;SACvD;QACD,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE;YAC9B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,iHAAiH;YAC1H,SAAS,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC;YACzC,WAAW,EAAE,gDAAgD;SAChE;QACD,CAAC,eAAe,CAAC,qBAAqB,CAAC,EAAE;YACrC,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,yHAAyH;YAClI,SAAS,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;YAC5C,WAAW,EAAE,qCAAqC;SACrD;QACD,CAAC,eAAe,CAAC,8BAA8B,CAAC,EAAE;YAC9C,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,oPAAoP;YAC7P,SAAS,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,CAAC;YACpF,WAAW,EAAE,8CAA8C;SAC9D;QACD,CAAC,eAAe,CAAC,6BAA6B,CAAC,EAAE;YAC7C,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,8MAA8M;YACvN,SAAS,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC;YAC1F,WAAW,EAAE,+EAA+E;SAC/F;QACD,CAAC,eAAe,CAAC,2BAA2B,CAAC,EAAE;YAC3C,IAAI,EAAE,+BAA+B;YACrC,OAAO,EAAE,wFAAwF;YACjG,SAAS,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC;YAC1E,WAAW,EAAE,qEAAqE;SACrF;QACD,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAAE;YACpC,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,0IAA0I;YACnJ,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;YAClD,WAAW,EAAE,oCAAoC;SACpD;QACD,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAAE;YACpC,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,WAAW,EAAE,uCAAuC;SACvD;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"sms-templates.config.js","sourceRoot":"","sources":["../../../../../src/modules/sms/constants/sms-templates.config.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export var SmsTemplateType;
9
9
  SmsTemplateType["INCIDENT_GUARDIAN_NOTIFICATION"] = "incident_guardian_notification";
10
10
  SmsTemplateType["SAFETY_CHECK_GUARDIAN_STARTED"] = "safety_check_guardian_started";
11
11
  SmsTemplateType["SAFETY_CHECK_GUARDIAN_ENDED"] = "safety_check_guardian_ended";
12
+ SmsTemplateType["FOLLOW_ME_GUARDIAN_REQUEST"] = "follow_me_guardian_request";
13
+ SmsTemplateType["FOLLOW_ME_GUARDIAN_ENDED"] = "follow_me_guardian_ended";
12
14
  SmsTemplateType["APPOINTMENT_REMINDER"] = "appointment_reminder";
13
15
  SmsTemplateType["GENERAL_NOTIFICATION"] = "general_notification";
14
16
  })(SmsTemplateType || (SmsTemplateType = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"sms-template.enum.js","sourceRoot":"","sources":["../../../../../src/modules/sms/enums/sms-template.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACvB,wDAAqC,CAAA;IACrC,oDAAiC,CAAA;IACjC,sCAAmB,CAAA;IACnB,4DAAyC,CAAA;IACzC,oDAAiC,CAAA;IACjC,kEAA+C,CAAA;IAC/C,oFAAiE,CAAA;IACjE,kFAA+D,CAAA;IAC/D,8EAA2D,CAAA;IAC3D,gEAA6C,CAAA;IAC7C,gEAA6C,CAAA;AACjD,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B"}
1
+ {"version":3,"file":"sms-template.enum.js","sourceRoot":"","sources":["../../../../../src/modules/sms/enums/sms-template.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAcX;AAdD,WAAY,eAAe;IACvB,wDAAqC,CAAA;IACrC,oDAAiC,CAAA;IACjC,sCAAmB,CAAA;IACnB,4DAAyC,CAAA;IACzC,oDAAiC,CAAA;IACjC,kEAA+C,CAAA;IAC/C,oFAAiE,CAAA;IACjE,kFAA+D,CAAA;IAC/D,8EAA2D,CAAA;IAC3D,4EAAyD,CAAA;IACzD,wEAAqD,CAAA;IACrD,gEAA6C,CAAA;IAC7C,gEAA6C,CAAA;AACjD,CAAC,EAdW,eAAe,KAAf,eAAe,QAc1B"}
@@ -80,4 +80,9 @@ export declare const KAFKA_TOPICS: {
80
80
  SAFETY_CHECK_PROMPTING: string;
81
81
  SAFETY_CHECK_ENDED: string;
82
82
  SAFETY_CHECK_SOS_TRIGGERED: string;
83
+ FOLLOW_ME_STARTED: string;
84
+ FOLLOW_ME_GUARDIAN_RESPONDED: string;
85
+ FOLLOW_ME_PROMPTING: string;
86
+ FOLLOW_ME_SOS_TRIGGERED: string;
87
+ FOLLOW_ME_ENDED: string;
83
88
  };
@@ -5,6 +5,10 @@ export declare class TripTrackPointDto {
5
5
  lng: number;
6
6
  accuracy?: number;
7
7
  timestamp: string;
8
+ altitude?: number;
9
+ speed?: number;
10
+ heading?: number;
11
+ source?: string;
8
12
  }
9
13
  export declare class TripStartLocationDto {
10
14
  lat: number;
@@ -0,0 +1,48 @@
1
+ import { GisTravelMode, SavedPlaceKind } from '../enums/routing.enum';
2
+ export declare class GisLatLngDto {
3
+ lat: number;
4
+ lng: number;
5
+ }
6
+ /**
7
+ * Compute a route (clarion-safety -> clarion-gis, internal). The server-side maps
8
+ * key never leaves clarion-gis.
9
+ */
10
+ export declare class ComputeRouteDto {
11
+ travelMode: GisTravelMode;
12
+ origin: GisLatLngDto;
13
+ destination: GisLatLngDto;
14
+ intermediates?: GisLatLngDto[];
15
+ departureTime?: string;
16
+ trafficAware?: boolean;
17
+ regionCode?: string;
18
+ }
19
+ export declare class PlaceAutocompleteQueryDto {
20
+ input: string;
21
+ sessionToken?: string;
22
+ lat?: number;
23
+ lng?: number;
24
+ countryCode?: string;
25
+ }
26
+ export declare class PlaceDetailsQueryDto {
27
+ placeId: string;
28
+ sessionToken?: string;
29
+ }
30
+ export declare class ReverseGeocodeQueryDto extends GisLatLngDto {
31
+ }
32
+ /** A user's saved place (Home, Work, ...). Owner-scoped; reusable by any feature. */
33
+ export declare class CreateSavedPlaceDto {
34
+ label: string;
35
+ kind: SavedPlaceKind;
36
+ lat: number;
37
+ lng: number;
38
+ address?: string;
39
+ placeId?: string;
40
+ }
41
+ export declare class UpdateSavedPlaceDto {
42
+ label?: string;
43
+ kind?: SavedPlaceKind;
44
+ lat?: number;
45
+ lng?: number;
46
+ address?: string | null;
47
+ placeId?: string | null;
48
+ }
@@ -0,0 +1,5 @@
1
+ /** A page of a trip's recorded points, oldest first, after `since`. */
2
+ export declare class TripPointsQueryDto {
3
+ since?: string;
4
+ limit?: number;
5
+ }
@@ -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
+ }