grm-shared-library 1.1.240 → 1.1.242

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 (115) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/modules/gis/dtos/trip-path-snapshot.dto.js +58 -0
  4. package/dist/cjs/modules/gis/dtos/trip-path-snapshot.dto.js.map +1 -0
  5. package/dist/cjs/modules/gis/index.js +2 -0
  6. package/dist/cjs/modules/gis/index.js.map +1 -1
  7. package/dist/cjs/modules/gis/interfaces/trip-path-snapshot.js +3 -0
  8. package/dist/cjs/modules/gis/interfaces/trip-path-snapshot.js.map +1 -0
  9. package/dist/cjs/modules/permission/data/permissions.data.js +8 -0
  10. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  11. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +17 -0
  12. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  13. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  14. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  15. package/dist/cjs/modules/responder/constants/responder.const.js +124 -0
  16. package/dist/cjs/modules/responder/constants/responder.const.js.map +1 -0
  17. package/dist/cjs/modules/responder/dtos/responder.dto.js +582 -0
  18. package/dist/cjs/modules/responder/dtos/responder.dto.js.map +1 -0
  19. package/dist/cjs/modules/responder/enums/responder.enums.js +142 -0
  20. package/dist/cjs/modules/responder/enums/responder.enums.js.map +1 -0
  21. package/dist/cjs/modules/responder/index.js +29 -0
  22. package/dist/cjs/modules/responder/index.js.map +1 -0
  23. package/dist/cjs/modules/responder/interfaces/responder-dispatch.js +3 -0
  24. package/dist/cjs/modules/responder/interfaces/responder-dispatch.js.map +1 -0
  25. package/dist/cjs/modules/responder/interfaces/responder-policy.js +3 -0
  26. package/dist/cjs/modules/responder/interfaces/responder-policy.js.map +1 -0
  27. package/dist/cjs/modules/responder/interfaces/responder.js +3 -0
  28. package/dist/cjs/modules/responder/interfaces/responder.js.map +1 -0
  29. package/dist/cjs/modules/responder/utils/responder.util.js +65 -0
  30. package/dist/cjs/modules/responder/utils/responder.util.js.map +1 -0
  31. package/dist/cjs/modules/role/data/roles.data.js +25 -4
  32. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  33. package/dist/cjs/modules/safety/constants/safety-history.const.js +75 -0
  34. package/dist/cjs/modules/safety/constants/safety-history.const.js.map +1 -0
  35. package/dist/cjs/modules/safety/constants/safety-integration.const.js +4 -0
  36. package/dist/cjs/modules/safety/constants/safety-integration.const.js.map +1 -1
  37. package/dist/cjs/modules/safety/dtos/safety-history.dto.js +112 -0
  38. package/dist/cjs/modules/safety/dtos/safety-history.dto.js.map +1 -0
  39. package/dist/cjs/modules/safety/enums/safety-history.enums.js +30 -0
  40. package/dist/cjs/modules/safety/enums/safety-history.enums.js.map +1 -0
  41. package/dist/cjs/modules/safety/index.js +4 -0
  42. package/dist/cjs/modules/safety/index.js.map +1 -1
  43. package/dist/cjs/modules/safety/interfaces/safety-history.js +3 -0
  44. package/dist/cjs/modules/safety/interfaces/safety-history.js.map +1 -0
  45. package/dist/cjs/modules/tracking/enums/tracking-provider-code.enum.js +8 -0
  46. package/dist/cjs/modules/tracking/enums/tracking-provider-code.enum.js.map +1 -1
  47. package/dist/esm/index.js +1 -0
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/modules/gis/dtos/trip-path-snapshot.dto.js +54 -0
  50. package/dist/esm/modules/gis/dtos/trip-path-snapshot.dto.js.map +1 -0
  51. package/dist/esm/modules/gis/index.js +2 -0
  52. package/dist/esm/modules/gis/index.js.map +1 -1
  53. package/dist/esm/modules/gis/interfaces/trip-path-snapshot.js +2 -0
  54. package/dist/esm/modules/gis/interfaces/trip-path-snapshot.js.map +1 -0
  55. package/dist/esm/modules/permission/data/permissions.data.js +8 -0
  56. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  57. package/dist/esm/modules/permission/enums/permission-actions.enum.js +17 -0
  58. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  59. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  60. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  61. package/dist/esm/modules/responder/constants/responder.const.js +121 -0
  62. package/dist/esm/modules/responder/constants/responder.const.js.map +1 -0
  63. package/dist/esm/modules/responder/dtos/responder.dto.js +560 -0
  64. package/dist/esm/modules/responder/dtos/responder.dto.js.map +1 -0
  65. package/dist/esm/modules/responder/enums/responder.enums.js +139 -0
  66. package/dist/esm/modules/responder/enums/responder.enums.js.map +1 -0
  67. package/dist/esm/modules/responder/index.js +13 -0
  68. package/dist/esm/modules/responder/index.js.map +1 -0
  69. package/dist/esm/modules/responder/interfaces/responder-dispatch.js +2 -0
  70. package/dist/esm/modules/responder/interfaces/responder-dispatch.js.map +1 -0
  71. package/dist/esm/modules/responder/interfaces/responder-policy.js +2 -0
  72. package/dist/esm/modules/responder/interfaces/responder-policy.js.map +1 -0
  73. package/dist/esm/modules/responder/interfaces/responder.js +2 -0
  74. package/dist/esm/modules/responder/interfaces/responder.js.map +1 -0
  75. package/dist/esm/modules/responder/utils/responder.util.js +59 -0
  76. package/dist/esm/modules/responder/utils/responder.util.js.map +1 -0
  77. package/dist/esm/modules/role/data/roles.data.js +24 -3
  78. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  79. package/dist/esm/modules/safety/constants/safety-history.const.js +72 -0
  80. package/dist/esm/modules/safety/constants/safety-history.const.js.map +1 -0
  81. package/dist/esm/modules/safety/constants/safety-integration.const.js +4 -0
  82. package/dist/esm/modules/safety/constants/safety-integration.const.js.map +1 -1
  83. package/dist/esm/modules/safety/dtos/safety-history.dto.js +107 -0
  84. package/dist/esm/modules/safety/dtos/safety-history.dto.js.map +1 -0
  85. package/dist/esm/modules/safety/enums/safety-history.enums.js +27 -0
  86. package/dist/esm/modules/safety/enums/safety-history.enums.js.map +1 -0
  87. package/dist/esm/modules/safety/index.js +4 -0
  88. package/dist/esm/modules/safety/index.js.map +1 -1
  89. package/dist/esm/modules/safety/interfaces/safety-history.js +2 -0
  90. package/dist/esm/modules/safety/interfaces/safety-history.js.map +1 -0
  91. package/dist/esm/modules/tracking/enums/tracking-provider-code.enum.js +8 -0
  92. package/dist/esm/modules/tracking/enums/tracking-provider-code.enum.js.map +1 -1
  93. package/dist/types/index.d.ts +1 -0
  94. package/dist/types/modules/gis/dtos/trip-path-snapshot.dto.d.ts +18 -0
  95. package/dist/types/modules/gis/index.d.ts +2 -0
  96. package/dist/types/modules/gis/interfaces/trip-path-snapshot.d.ts +38 -0
  97. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +3 -0
  98. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
  99. package/dist/types/modules/responder/constants/responder.const.d.ts +67 -0
  100. package/dist/types/modules/responder/dtos/responder.dto.d.ts +144 -0
  101. package/dist/types/modules/responder/enums/responder.enums.d.ts +128 -0
  102. package/dist/types/modules/responder/index.d.ts +7 -0
  103. package/dist/types/modules/responder/interfaces/responder-dispatch.d.ts +144 -0
  104. package/dist/types/modules/responder/interfaces/responder-policy.d.ts +55 -0
  105. package/dist/types/modules/responder/interfaces/responder.d.ts +113 -0
  106. package/dist/types/modules/responder/utils/responder.util.d.ts +24 -0
  107. package/dist/types/modules/role/data/roles.data.d.ts +7 -0
  108. package/dist/types/modules/safety/constants/safety-history.const.d.ts +31 -0
  109. package/dist/types/modules/safety/constants/safety-integration.const.d.ts +4 -0
  110. package/dist/types/modules/safety/dtos/safety-history.dto.d.ts +20 -0
  111. package/dist/types/modules/safety/enums/safety-history.enums.d.ts +24 -0
  112. package/dist/types/modules/safety/index.d.ts +4 -0
  113. package/dist/types/modules/safety/interfaces/safety-history.d.ts +217 -0
  114. package/dist/types/modules/tracking/enums/tracking-provider-code.enum.d.ts +9 -1
  115. package/package.json +1 -1
@@ -0,0 +1,217 @@
1
+ import { TripPathPoint } from '../../gis/interfaces/trip-path-snapshot';
2
+ import { FollowMeAuditEventType, FollowMeParticipantKind, FollowMeSafetyEventType, FollowMeSafetyTrigger, FollowMeStatus, FollowMeTransportMode } from '../enums/follow-me.enums';
3
+ import { SafetyCheckStatus } from '../enums/safety-check-status.enum';
4
+ import { SafetyCheckActorType, SafetyCheckAuditEventType, SafetyCheckSosTrigger } from '../enums/safety-enums';
5
+ import { SafetyHistoryEventSource, SafetyHistoryPathStatus } from '../enums/safety-history.enums';
6
+ import { FollowMePromptView, FollowMeRouteView, FollowMeWaypointView } from './follow-me';
7
+ export interface SafetyHistoryLocation {
8
+ lat: number;
9
+ lng: number;
10
+ }
11
+ /** The SOS incident a session raised, as clarion-incident shows it to the caller now. */
12
+ export interface SafetyHistoryIncident {
13
+ id: number;
14
+ /**
15
+ * False when clarion-incident could not be read just now, or would not show
16
+ * this incident to the caller - the id is still the session's own record.
17
+ */
18
+ available: boolean;
19
+ /** clarion-incident's status label ('Pending', 'Resolved', ...). */
20
+ status: string | null;
21
+ typeName: string | null;
22
+ categoryName: string | null;
23
+ createdAt: string | null;
24
+ }
25
+ /** Who an SOS reached, as clarion-incident reported when it created the incident. */
26
+ export interface SafetyHistoryEscalation {
27
+ guardiansAlerted: boolean | null;
28
+ serviceProviderAlerted: boolean | null;
29
+ }
30
+ /**
31
+ * Facts an event carries, by event type - each present only where the persisted
32
+ * record holds it.
33
+ */
34
+ export interface SafetyHistoryEventDetails {
35
+ /** SOS_TRIGGERED: why the SOS was raised. */
36
+ sosTrigger?: SafetyCheckSosTrigger | null;
37
+ /** Follow Me prompts and SOS: what made the journey ask (or the unanswered question behind an SOS). */
38
+ promptTrigger?: FollowMeSafetyTrigger | null;
39
+ /** SOS_INCIDENT_CREATED. */
40
+ incidentId?: number | null;
41
+ serviceProviderAlerted?: boolean | null;
42
+ guardiansAlerted?: boolean | null;
43
+ /** EXTENDED. */
44
+ additionalMinutes?: number | null;
45
+ /** CHECKED_IN / PROMPT_CONFIRMED: seconds between the question and the answer. */
46
+ responseSeconds?: number | null;
47
+ /** CHECKED_IN / STOPPED: the user answered while being asked. */
48
+ whilePrompted?: boolean | null;
49
+ /** PROMPT_STARTED: the countdown the user had. */
50
+ countdownSeconds?: number | null;
51
+ /** Follow Me guardian events: the name the user chose them by. */
52
+ guardianName?: string | null;
53
+ /** PROLONGED_STOP_DETECTED. */
54
+ stoppedMinutes?: number | null;
55
+ /** DEVIATION_CONFIRMED. */
56
+ distanceFromRouteMeters?: number | null;
57
+ }
58
+ /** One entry of a session's timeline, oldest first. */
59
+ export interface SafetyHistoryTimelineEntry {
60
+ /** Stable within the session (`audit:<id>`, `monitor:<id>`). */
61
+ id: string;
62
+ occurredAt: string;
63
+ source: SafetyHistoryEventSource;
64
+ eventType: SafetyCheckAuditEventType | FollowMeAuditEventType | FollowMeSafetyEventType;
65
+ /** Who caused a lifecycle entry; null for what a monitor observed. */
66
+ actorType: SafetyCheckActorType | null;
67
+ details: SafetyHistoryEventDetails;
68
+ /** Where it happened, when the record says - the owner's own location. */
69
+ location: SafetyHistoryLocation | null;
70
+ }
71
+ /** The recorded path of a session, thinned for a map. */
72
+ export interface SafetyHistoryPath {
73
+ status: SafetyHistoryPathStatus;
74
+ /** Oldest first; empty unless RECORDED. */
75
+ points: TripPathPoint[];
76
+ /** Fixes recorded for the session before thinning. */
77
+ totalPoints: number;
78
+ simplified: boolean;
79
+ distanceMeters: number | null;
80
+ /** Where the device was when the session started, when it reported a fix then. */
81
+ startLocation: SafetyHistoryLocation | null;
82
+ }
83
+ /** A row of the Safety Check history. */
84
+ export interface SafetyCheckHistoryItem {
85
+ id: string;
86
+ status: SafetyCheckStatus;
87
+ /** The words the user chose at start (their own text for "Write my own"). */
88
+ reasonLabel: string;
89
+ startedAt: string;
90
+ /** When it ended; null while open, and for an SOS (see sosTriggeredAt). */
91
+ endedAt: string | null;
92
+ /** Configured minutes from start to check-in, extensions included. */
93
+ durationMinutes: number;
94
+ extensionCount: number;
95
+ scheduledCheckInAt: string;
96
+ /** From the start to the end (or to the SOS). Null while open. */
97
+ actualDurationSeconds: number | null;
98
+ checkedInAt: string | null;
99
+ sosTriggered: boolean;
100
+ sosTrigger: SafetyCheckSosTrigger | null;
101
+ sosTriggeredAt: string | null;
102
+ /** Null until clarion-incident created the SOS (and for a check without one). */
103
+ incidentId: number | null;
104
+ /** At least one location was recorded. */
105
+ locationRecorded: boolean;
106
+ }
107
+ export interface SafetyCheckHistoryDetail {
108
+ check: SafetyCheckHistoryItem & {
109
+ promptCountdownSeconds: number;
110
+ promptStartedAt: string | null;
111
+ promptDeadlineAt: string | null;
112
+ notifyGuardiansOnStartEnd: boolean;
113
+ /** How many guardians the user chose for this check. */
114
+ guardianCount: number;
115
+ serviceProviderRequested: boolean;
116
+ serviceProviderAllowed: boolean;
117
+ trackPointCount: number;
118
+ lastLocationAt: string | null;
119
+ };
120
+ /** Null unless an SOS incident was created. */
121
+ escalation: SafetyHistoryEscalation | null;
122
+ timeline: SafetyHistoryTimelineEntry[];
123
+ incident: SafetyHistoryIncident | null;
124
+ serverTime: string;
125
+ }
126
+ /** The Safety Check's map. */
127
+ export interface SafetyCheckHistoryTrack {
128
+ checkId: string;
129
+ path: SafetyHistoryPath;
130
+ serverTime: string;
131
+ }
132
+ /** A row of the Follow Me history. */
133
+ export interface FollowMeHistoryItem {
134
+ id: string;
135
+ status: FollowMeStatus;
136
+ reasonLabel: string;
137
+ startedAt: string;
138
+ plannedEndAt: string;
139
+ /** Null while open, and for an SOS (see sosTriggeredAt). */
140
+ endedAt: string | null;
141
+ arrivedAt: string | null;
142
+ durationMinutes: number;
143
+ actualDurationSeconds: number | null;
144
+ transportMode: FollowMeTransportMode | null;
145
+ /** The planned START waypoint's label; null without a planned route. */
146
+ startLabel: string | null;
147
+ /** Null when the journey had no destination (Follow Me without a route). */
148
+ destinationLabel: string | null;
149
+ stopCount: number;
150
+ /** A route was planned and monitored. */
151
+ plannedRoute: boolean;
152
+ /** The arrival the plan promised (moved only by a legitimate recalculation). */
153
+ plannedArrivalAt: string | null;
154
+ sosTriggered: boolean;
155
+ sosTrigger: SafetyCheckSosTrigger | null;
156
+ /** The unanswered question behind a missed-prompt SOS. */
157
+ sosCause: FollowMeSafetyTrigger | null;
158
+ sosTriggeredAt: string | null;
159
+ incidentId: number | null;
160
+ locationRecorded: boolean;
161
+ }
162
+ /** A guardian the user asked to follow, and what they did - from the audit trail. */
163
+ export interface FollowMeHistoryGuardian {
164
+ displayName: string;
165
+ kind: FollowMeParticipantKind;
166
+ invitedAt: string;
167
+ /** Accepted at some point (they may have stopped following later). */
168
+ accepted: boolean;
169
+ acceptedAt: string | null;
170
+ /** Declined and never accepted. */
171
+ declined: boolean;
172
+ }
173
+ export interface FollowMeHistoryDetail {
174
+ session: FollowMeHistoryItem & {
175
+ promptCountdownSeconds: number;
176
+ notifyGuardiansOnStartEnd: boolean;
177
+ serviceProviderRequested: boolean;
178
+ serviceProviderAllowed: boolean;
179
+ crashDetectionEnabled: boolean;
180
+ /** The last live arrival estimate. */
181
+ lastEtaAt: string | null;
182
+ trackPointCount: number;
183
+ lastLocationAt: string | null;
184
+ };
185
+ /** START, STOPs in order, DESTINATION - the plan as the user made it. */
186
+ waypoints: FollowMeWaypointView[];
187
+ /** The original plan and every recalculation, oldest first. No geometry here (see the track). */
188
+ routes: FollowMeRouteView[];
189
+ /** Every safety question the journey asked, oldest first. */
190
+ prompts: FollowMePromptView[];
191
+ guardians: FollowMeHistoryGuardian[];
192
+ escalation: SafetyHistoryEscalation | null;
193
+ timeline: SafetyHistoryTimelineEntry[];
194
+ incident: SafetyHistoryIncident | null;
195
+ serverTime: string;
196
+ }
197
+ /** A safety event the map can pin: where a question was asked or a finding was made. */
198
+ export interface FollowMeHistoryEventMarker {
199
+ id: string;
200
+ occurredAt: string;
201
+ /** The monitor's finding; null for a prompt marker. */
202
+ eventType: FollowMeSafetyEventType | null;
203
+ /** The question asked; null for a finding without one. */
204
+ trigger: FollowMeSafetyTrigger | null;
205
+ lat: number;
206
+ lng: number;
207
+ }
208
+ /** The Follow Me journey's map: what was planned and what was travelled. */
209
+ export interface FollowMeHistoryTrack {
210
+ sessionId: string;
211
+ path: SafetyHistoryPath;
212
+ waypoints: FollowMeWaypointView[];
213
+ /** With geometry: ORIGINAL first, then each RECALCULATED in order. */
214
+ routes: FollowMeRouteView[];
215
+ eventMarkers: FollowMeHistoryEventMarker[];
216
+ serverTime: string;
217
+ }
@@ -22,5 +22,13 @@ export declare enum TrackingProviderCode {
22
22
  /** Generic WebSocket adapter (reserved). */
23
23
  GENERIC_WEBSOCKET = "GENERIC_WEBSOCKET",
24
24
  /** Generic HTTP polling adapter (reserved). */
25
- GENERIC_HTTP_POLLING = "GENERIC_HTTP_POLLING"
25
+ GENERIC_HTTP_POLLING = "GENERIC_HTTP_POLLING",
26
+ /**
27
+ * The responder app: the phone of the responder on duty with a unit reports
28
+ * the unit's position (`POST /tracking/responder/positions`). Inbound only -
29
+ * there is no connection to open, so the connector never runs a session
30
+ * for it. Used only for units with no enabled hardware tracker binding, so
31
+ * a vehicle's tracker and a crew member's phone never compete.
32
+ */
33
+ MOBILE_APP = "MOBILE_APP"
26
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grm-shared-library",
3
- "version": "1.1.240",
3
+ "version": "1.1.242",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",