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
@@ -0,0 +1,51 @@
1
+ import { FollowMeParticipantStatus, FollowMeStatus, FollowMeTrackingHealth } from '../enums/follow-me.enums';
2
+ /**
3
+ * Every legal Follow Me transition. Applied by clarion-safety as a conditional
4
+ * update, so the database settles every race (arrival vs a deviation, "I'm OK" at
5
+ * the deadline, stop while a prompt expires). Re-applying the current state is an
6
+ * idempotent no-op, not listed here.
7
+ *
8
+ * Two rules the table encodes on purpose:
9
+ * - PROMPTING cannot EXPIRE and cannot ARRIVE: an open prompt is answered or
10
+ * escalated before the session is allowed to end on its own. The user CAN stop
11
+ * while prompted - doing so is itself proof they are responsive.
12
+ * - SOS_TRIGGERED ends Follow Me; the journey continues as the incident's trip.
13
+ */
14
+ export declare const FOLLOW_ME_TRANSITIONS: Readonly<Record<FollowMeStatus, readonly FollowMeStatus[]>>;
15
+ /** At most one of these per user. */
16
+ export declare const OPEN_FOLLOW_ME_STATUSES: readonly FollowMeStatus[];
17
+ export declare const TERMINAL_FOLLOW_ME_STATUSES: readonly FollowMeStatus[];
18
+ /**
19
+ * States in which followers may see the LIVE position. SOS_TRIGGERED is not one:
20
+ * app guardians move to the existing SOS follow, and the external page is served
21
+ * by its own rule in clarion-safety (live while the incident trip is still active,
22
+ * never past the 24 h cap).
23
+ */
24
+ export declare const LIVE_FOLLOW_ME_STATUSES: readonly FollowMeStatus[];
25
+ export declare function isOpenFollowMeStatus(status: FollowMeStatus | string | null | undefined): boolean;
26
+ export declare function isTerminalFollowMeStatus(status: FollowMeStatus | string | null | undefined): boolean;
27
+ export declare function canTransitionFollowMe(from: FollowMeStatus, to: FollowMeStatus): boolean;
28
+ export declare function allowedFollowMeSourcesFor(to: FollowMeStatus): FollowMeStatus[];
29
+ /**
30
+ * A guardian's own transitions while the session is live. EXPIRED is reached only
31
+ * when the session ends, never by the guardian.
32
+ */
33
+ export declare const FOLLOW_ME_PARTICIPANT_TRANSITIONS: Readonly<Record<FollowMeParticipantStatus, readonly FollowMeParticipantStatus[]>>;
34
+ export declare function canTransitionParticipant(from: FollowMeParticipantStatus, to: FollowMeParticipantStatus): boolean;
35
+ /** Whether a participant may see the live position right now. */
36
+ export declare function participantHasLiveAccess(participant: FollowMeParticipantStatus, session: FollowMeStatus): boolean;
37
+ /** Live, stale or never seen - so no screen ever calls a stale position "live". */
38
+ export declare function followMeTrackingHealth(lastLocationAt: Date | null, now: Date): FollowMeTrackingHealth;
39
+ /** When a prompt shown at `startedAt` stops being visible to the user. */
40
+ export declare function followMePromptDeadline(startedAt: Date, countdownSeconds: number): Date;
41
+ /** When the server escalates an unanswered prompt: the visible deadline plus the grace. */
42
+ export declare function followMePromptSosDueAt(deadlineAt: Date): Date;
43
+ /**
44
+ * The default duration for a planned journey: its travel time plus a buffer,
45
+ * rounded up to 15 minutes, capped at the 24 h maximum.
46
+ */
47
+ export declare function suggestFollowMeDurationMinutes(routeDurationSeconds: number | null | undefined): number;
48
+ /** Whether a journey of this length can be followed at all. */
49
+ export declare function routeExceedsFollowMeMaximum(routeDurationSeconds: number): boolean;
50
+ /** +2547******78 - enough to recognise, not enough to use. */
51
+ export declare function maskPhoneNumber(phone: string | null | undefined): string | null;
@@ -8,6 +8,8 @@ export declare enum SmsTemplateType {
8
8
  INCIDENT_GUARDIAN_NOTIFICATION = "incident_guardian_notification",
9
9
  SAFETY_CHECK_GUARDIAN_STARTED = "safety_check_guardian_started",
10
10
  SAFETY_CHECK_GUARDIAN_ENDED = "safety_check_guardian_ended",
11
+ FOLLOW_ME_GUARDIAN_REQUEST = "follow_me_guardian_request",
12
+ FOLLOW_ME_GUARDIAN_ENDED = "follow_me_guardian_ended",
11
13
  APPOINTMENT_REMINDER = "appointment_reminder",
12
14
  GENERAL_NOTIFICATION = "general_notification"
13
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grm-shared-library",
3
- "version": "1.1.222",
3
+ "version": "1.1.224",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",