clarion-shared-types 1.0.118 → 1.0.119

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 (36) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +8 -0
  4. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  5. package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js +1 -0
  6. package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
  7. package/dist/cjs/modules/responder/enums/responder-enums.js +83 -0
  8. package/dist/cjs/modules/responder/enums/responder-enums.js.map +1 -0
  9. package/dist/cjs/modules/responder/index.js +23 -0
  10. package/dist/cjs/modules/responder/index.js.map +1 -0
  11. package/dist/cjs/modules/responder/interfaces/responder.dto.js +3 -0
  12. package/dist/cjs/modules/responder/interfaces/responder.dto.js.map +1 -0
  13. package/dist/cjs/modules/responder/utils/responder-display.util.js +102 -0
  14. package/dist/cjs/modules/responder/utils/responder-display.util.js.map +1 -0
  15. package/dist/esm/index.js +1 -0
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/esm/modules/permission/enums/permission-actions.enum.js +8 -0
  18. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  19. package/dist/esm/modules/permission/enums/permissions-moudule.enum.js +1 -0
  20. package/dist/esm/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
  21. package/dist/esm/modules/responder/enums/responder-enums.js +80 -0
  22. package/dist/esm/modules/responder/enums/responder-enums.js.map +1 -0
  23. package/dist/esm/modules/responder/index.js +7 -0
  24. package/dist/esm/modules/responder/index.js.map +1 -0
  25. package/dist/esm/modules/responder/interfaces/responder.dto.js +2 -0
  26. package/dist/esm/modules/responder/interfaces/responder.dto.js.map +1 -0
  27. package/dist/esm/modules/responder/utils/responder-display.util.js +92 -0
  28. package/dist/esm/modules/responder/utils/responder-display.util.js.map +1 -0
  29. package/dist/types/index.d.ts +1 -0
  30. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +3 -0
  31. package/dist/types/modules/permission/enums/permissions-moudule.enum.d.ts +2 -1
  32. package/dist/types/modules/responder/enums/responder-enums.d.ts +75 -0
  33. package/dist/types/modules/responder/index.d.ts +3 -0
  34. package/dist/types/modules/responder/interfaces/responder.dto.d.ts +87 -0
  35. package/dist/types/modules/responder/utils/responder-display.util.d.ts +26 -0
  36. package/package.json +1 -1
package/dist/cjs/index.js CHANGED
@@ -44,6 +44,7 @@ __exportStar(require("./modules/billing/index"), exports);
44
44
  __exportStar(require("./modules/newsfeed/index"), exports);
45
45
  __exportStar(require("./modules/dispatch/index"), exports);
46
46
  __exportStar(require("./modules/incident-sla/index"), exports);
47
+ __exportStar(require("./modules/responder/index"), exports);
47
48
  // Interfaces
48
49
  __exportStar(require("./modules/common/interfaces/server-message"), exports);
49
50
  __exportStar(require("./modules/common/interfaces/pagination"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,+DAA6C;AAC7C,0DAAwC;AACxC,0DAAwC;AACxC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,2DAAyC;AACzC,+DAA6C;AAE7C,aAAa;AACb,6EAA2D;AAC3D,yEAAuD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,+DAA6C;AAC7C,0DAAwC;AACxC,0DAAwC;AACxC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,2DAAyC;AACzC,+DAA6C;AAC7C,4DAA0C;AAE1C,aAAa;AACb,6EAA2D;AAC3D,yEAAuD"}
@@ -275,6 +275,14 @@ var PermissionActions;
275
275
  PermissionActions["READ_INCIDENT_SLA_POLICY"] = "read:incident-sla-policy";
276
276
  PermissionActions["MANAGE_INCIDENT_SLA_POLICY"] = "manage:incident-sla-policy";
277
277
  PermissionActions["READ_INCIDENT_SLA_ANALYTICS"] = "read:incident-sla-analytics";
278
+ // Module: Responder - the responder app (field personnel staffing a response
279
+ // unit). Granted to the Responder role only, and each confined by the
280
+ // services to the CALLER's own memberships, duty and units. The control room
281
+ // manages memberships with update:response-unit and reads the reports with
282
+ // read:response-unit-dispatch.
283
+ PermissionActions["USE_RESPONDER_APP"] = "use:responder-app";
284
+ PermissionActions["RESPOND_RESPONSE_UNIT_DISPATCH"] = "respond:response-unit-dispatch";
285
+ PermissionActions["REPORT_RESPONDER_POSITION"] = "report:responder-position";
278
286
  /** @deprecated Retiring: split into the connection / message / screened-message / analytics actions. */
279
287
  PermissionActions["READ_ALERT_INTAKE"] = "read:alert-intake";
280
288
  /** @deprecated Retiring: split into the connection / message / screened-message / analytics actions. */
@@ -1 +1 @@
1
- {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,6 @@ var PermissionsModule;
21
21
  PermissionsModule["SAFETY"] = "Safety";
22
22
  PermissionsModule["PLACES"] = "Places";
23
23
  PermissionsModule["INCIDENT_SLA"] = "Incident SLA";
24
+ PermissionsModule["RESPONDER"] = "Responder";
24
25
  })(PermissionsModule || (exports.PermissionsModule = PermissionsModule = {}));
25
26
  //# sourceMappingURL=permissions-moudule.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-moudule.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-moudule.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAmBX;AAnBD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,0CAAqB,CAAA;IACrB,sEAAiD,CAAA;IACjD,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;IAC7B,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,kDAA6B,CAAA;AACjC,CAAC,EAnBW,iBAAiB,iCAAjB,iBAAiB,QAmB5B"}
1
+ {"version":3,"file":"permissions-moudule.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-moudule.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAoBX;AApBD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,0CAAqB,CAAA;IACrB,sEAAiD,CAAA;IACjD,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;IAC7B,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,kDAA6B,CAAA;IAC7B,4CAAuB,CAAA;AAC3B,CAAC,EApBW,iBAAiB,iCAAjB,iBAAiB,QAoB5B"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * The responder app, as the control room sees it: field personnel (role
4
+ * `Responder`) linked to the response units they may staff, going on duty with
5
+ * one of them and reporting how each dispatch ended.
6
+ *
7
+ * The admin's mirror of grm-shared-library `src/modules/responder` - the string
8
+ * values MUST stay identical to the backend's (pinned by responder-display.spec.ts).
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ResponderErrorCode = exports.ResponderReportOutcome = exports.ResponderDutyEndReason = exports.ResponderDutySessionStatus = void 0;
12
+ /** A duty session's own lifecycle. One session is ACTIVE per responder at most. */
13
+ var ResponderDutySessionStatus;
14
+ (function (ResponderDutySessionStatus) {
15
+ ResponderDutySessionStatus["ACTIVE"] = "ACTIVE";
16
+ ResponderDutySessionStatus["ENDED"] = "ENDED";
17
+ })(ResponderDutySessionStatus || (exports.ResponderDutySessionStatus = ResponderDutySessionStatus = {}));
18
+ /** Why a duty session ended. */
19
+ var ResponderDutyEndReason;
20
+ (function (ResponderDutyEndReason) {
21
+ /** The responder went off duty in the app. */
22
+ ResponderDutyEndReason["RESPONDER"] = "RESPONDER";
23
+ /** The control room ended it (update:response-unit). */
24
+ ResponderDutyEndReason["CONTROL_CENTRE"] = "CONTROL_CENTRE";
25
+ /** The responder was removed from the unit while on duty with it. */
26
+ ResponderDutyEndReason["MEMBERSHIP_REMOVED"] = "MEMBERSHIP_REMOVED";
27
+ /** The unit was deactivated or deleted while the responder was on duty with it. */
28
+ ResponderDutyEndReason["UNIT_DEACTIVATED"] = "UNIT_DEACTIVATED";
29
+ })(ResponderDutyEndReason || (exports.ResponderDutyEndReason = ResponderDutyEndReason = {}));
30
+ /** How a response ended, as the responder reports it. */
31
+ var ResponderReportOutcome;
32
+ (function (ResponderReportOutcome) {
33
+ ResponderReportOutcome["RESOLVED_ON_SCENE"] = "RESOLVED_ON_SCENE";
34
+ ResponderReportOutcome["HANDED_OVER"] = "HANDED_OVER";
35
+ ResponderReportOutcome["REFERRED"] = "REFERRED";
36
+ ResponderReportOutcome["NO_ACTION_REQUIRED"] = "NO_ACTION_REQUIRED";
37
+ ResponderReportOutcome["FALSE_ALARM"] = "FALSE_ALARM";
38
+ ResponderReportOutcome["UNABLE_TO_LOCATE"] = "UNABLE_TO_LOCATE";
39
+ ResponderReportOutcome["OTHER"] = "OTHER";
40
+ })(ResponderReportOutcome || (exports.ResponderReportOutcome = ResponderReportOutcome = {}));
41
+ /**
42
+ * Machine-readable refusals of the responder endpoints, in the error body's
43
+ * `code` (or `details.code` behind the gateway) - the same
44
+ * `{statusCode, code, message, ...details}` envelope the dispatch endpoints use.
45
+ */
46
+ var ResponderErrorCode;
47
+ (function (ResponderErrorCode) {
48
+ /** The caller does not hold the Responder role. */
49
+ ResponderErrorCode["NOT_A_RESPONDER"] = "RESPONDER_NOT_A_RESPONDER";
50
+ /** The responder account has no control centre, so nothing can be scoped. */
51
+ ResponderErrorCode["NO_CONTROL_CENTRE"] = "RESPONDER_NO_CONTROL_CENTRE";
52
+ ResponderErrorCode["UNIT_NOT_FOUND"] = "RESPONDER_UNIT_NOT_FOUND";
53
+ /** The caller is not a member of that unit. */
54
+ ResponderErrorCode["NOT_A_UNIT_MEMBER"] = "RESPONDER_NOT_A_UNIT_MEMBER";
55
+ ResponderErrorCode["UNIT_INACTIVE"] = "RESPONDER_UNIT_INACTIVE";
56
+ /** Already on duty with ANOTHER unit; end that duty first. `details.activeDuty` names it. */
57
+ ResponderErrorCode["ALREADY_ON_DUTY"] = "RESPONDER_ALREADY_ON_DUTY";
58
+ ResponderErrorCode["NOT_ON_DUTY"] = "RESPONDER_NOT_ON_DUTY";
59
+ /** Membership: the user is not a Responder of the unit's organization and control centre. */
60
+ ResponderErrorCode["USER_NOT_ELIGIBLE"] = "RESPONDER_USER_NOT_ELIGIBLE";
61
+ ResponderErrorCode["ALREADY_A_MEMBER"] = "RESPONDER_ALREADY_A_MEMBER";
62
+ ResponderErrorCode["MEMBERSHIP_NOT_FOUND"] = "RESPONDER_MEMBERSHIP_NOT_FOUND";
63
+ /** The dispatch does not exist or is not for one of the caller's units (never says which). */
64
+ ResponderErrorCode["DISPATCH_NOT_FOUND"] = "RESPONDER_DISPATCH_NOT_FOUND";
65
+ /** The move is not one a responder may make from the current status. `details.currentStatus`. */
66
+ ResponderErrorCode["INVALID_STATUS_TRANSITION"] = "RESPONDER_INVALID_STATUS_TRANSITION";
67
+ ResponderErrorCode["REASON_REQUIRED"] = "RESPONDER_REASON_REQUIRED";
68
+ ResponderErrorCode["DECLINE_NOT_ALLOWED"] = "RESPONDER_DECLINE_NOT_ALLOWED";
69
+ ResponderErrorCode["MANUAL_ARRIVAL_NOT_ALLOWED"] = "RESPONDER_MANUAL_ARRIVAL_NOT_ALLOWED";
70
+ /** Completing needs the response report first (organization policy). */
71
+ ResponderErrorCode["REPORT_REQUIRED"] = "RESPONDER_REPORT_REQUIRED";
72
+ /** A report can only be written once the unit reached the scene. */
73
+ ResponderErrorCode["REPORT_NOT_ALLOWED"] = "RESPONDER_REPORT_NOT_ALLOWED";
74
+ /** The report changed since the version the client edited. `details.currentVersion`. */
75
+ ResponderErrorCode["REPORT_VERSION_CONFLICT"] = "RESPONDER_REPORT_VERSION_CONFLICT";
76
+ /** The incident is closed or archived, so its reports can no longer be amended. */
77
+ ResponderErrorCode["REPORT_LOCKED"] = "RESPONDER_REPORT_LOCKED";
78
+ /** A required report field or checklist item is missing. `details.missing`. */
79
+ ResponderErrorCode["REPORT_INCOMPLETE"] = "RESPONDER_REPORT_INCOMPLETE";
80
+ /** An attachment id is not a file the caller may link. */
81
+ ResponderErrorCode["ATTACHMENT_NOT_READABLE"] = "RESPONDER_ATTACHMENT_NOT_READABLE";
82
+ })(ResponderErrorCode || (exports.ResponderErrorCode = ResponderErrorCode = {}));
83
+ //# sourceMappingURL=responder-enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder-enums.js","sourceRoot":"","sources":["../../../../../src/modules/responder/enums/responder-enums.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,mFAAmF;AACnF,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IAClC,+CAAiB,CAAA;IACjB,6CAAe,CAAA;AACnB,CAAC,EAHW,0BAA0B,0CAA1B,0BAA0B,QAGrC;AAED,gCAAgC;AAChC,IAAY,sBASX;AATD,WAAY,sBAAsB;IAC9B,8CAA8C;IAC9C,iDAAuB,CAAA;IACvB,wDAAwD;IACxD,2DAAiC,CAAA;IACjC,qEAAqE;IACrE,mEAAyC,CAAA;IACzC,mFAAmF;IACnF,+DAAqC,CAAA;AACzC,CAAC,EATW,sBAAsB,sCAAtB,sBAAsB,QASjC;AAED,yDAAyD;AACzD,IAAY,sBAQX;AARD,WAAY,sBAAsB;IAC9B,iEAAuC,CAAA;IACvC,qDAA2B,CAAA;IAC3B,+CAAqB,CAAA;IACrB,mEAAyC,CAAA;IACzC,qDAA2B,CAAA;IAC3B,+DAAqC,CAAA;IACrC,yCAAe,CAAA;AACnB,CAAC,EARW,sBAAsB,sCAAtB,sBAAsB,QAQjC;AAED;;;;GAIG;AACH,IAAY,kBAmCX;AAnCD,WAAY,kBAAkB;IAC1B,mDAAmD;IACnD,mEAA6C,CAAA;IAC7C,6EAA6E;IAC7E,uEAAiD,CAAA;IACjD,iEAA2C,CAAA;IAC3C,+CAA+C;IAC/C,uEAAiD,CAAA;IACjD,+DAAyC,CAAA;IACzC,6FAA6F;IAC7F,mEAA6C,CAAA;IAC7C,2DAAqC,CAAA;IACrC,6FAA6F;IAC7F,uEAAiD,CAAA;IACjD,qEAA+C,CAAA;IAC/C,6EAAuD,CAAA;IACvD,8FAA8F;IAC9F,yEAAmD,CAAA;IACnD,iGAAiG;IACjG,uFAAiE,CAAA;IACjE,mEAA6C,CAAA;IAC7C,2EAAqD,CAAA;IACrD,yFAAmE,CAAA;IACnE,wEAAwE;IACxE,mEAA6C,CAAA;IAC7C,oEAAoE;IACpE,yEAAmD,CAAA;IACnD,wFAAwF;IACxF,mFAA6D,CAAA;IAC7D,mFAAmF;IACnF,+DAAyC,CAAA;IACzC,+EAA+E;IAC/E,uEAAiD,CAAA;IACjD,0DAA0D;IAC1D,mFAA6D,CAAA;AACjE,CAAC,EAnCW,kBAAkB,kCAAlB,kBAAkB,QAmC7B"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Enums
18
+ __exportStar(require("./enums/responder-enums"), exports);
19
+ // Interfaces
20
+ __exportStar(require("./interfaces/responder.dto"), exports);
21
+ // Utilities
22
+ __exportStar(require("./utils/responder-display.util"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/responder/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,0DAAwC;AAExC,aAAa;AACb,6DAA2C;AAE3C,YAAY;AACZ,iEAA+C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=responder.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder.dto.js","sourceRoot":"","sources":["../../../../../src/modules/responder/interfaces/responder.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RESPONDER_DUTY_SESSION_STATUS_LABELS = exports.RESPONDER_DUTY_END_REASON_LABELS = exports.RESPONDER_REPORT_OUTCOME_LABELS = exports.RESPONDER_DUTY_END_REASON_MAX_LENGTH = void 0;
4
+ exports.responderReportOutcomeTone = responderReportOutcomeTone;
5
+ exports.responderReportOutcomeLabel = responderReportOutcomeLabel;
6
+ exports.responderDutyEndReasonLabel = responderDutyEndReasonLabel;
7
+ exports.humanizeResponderChecklistItem = humanizeResponderChecklistItem;
8
+ exports.describeResponderChecklist = describeResponderChecklist;
9
+ exports.responderDisplayName = responderDisplayName;
10
+ exports.responderContactLine = responderContactLine;
11
+ const responder_enums_1 = require("../enums/responder-enums");
12
+ /*
13
+ * How the responder app's records read on the control room's screens - in the
14
+ * shared package, as for dispatches, so the unit screen, the incident screen
15
+ * and any future duty board name the same thing the same way.
16
+ */
17
+ /** The backend's limit on a duty-end reason (grm-shared-library RESPONDER_FIELD_LIMITS.dutyEndReason). */
18
+ exports.RESPONDER_DUTY_END_REASON_MAX_LENGTH = 300;
19
+ exports.RESPONDER_REPORT_OUTCOME_LABELS = {
20
+ [responder_enums_1.ResponderReportOutcome.RESOLVED_ON_SCENE]: 'Resolved on scene',
21
+ [responder_enums_1.ResponderReportOutcome.HANDED_OVER]: 'Handed over',
22
+ [responder_enums_1.ResponderReportOutcome.REFERRED]: 'Referred',
23
+ [responder_enums_1.ResponderReportOutcome.NO_ACTION_REQUIRED]: 'No action required',
24
+ [responder_enums_1.ResponderReportOutcome.FALSE_ALARM]: 'False alarm',
25
+ [responder_enums_1.ResponderReportOutcome.UNABLE_TO_LOCATE]: 'Unable to locate',
26
+ [responder_enums_1.ResponderReportOutcome.OTHER]: 'Other',
27
+ };
28
+ exports.RESPONDER_DUTY_END_REASON_LABELS = {
29
+ [responder_enums_1.ResponderDutyEndReason.RESPONDER]: 'Ended by the responder',
30
+ [responder_enums_1.ResponderDutyEndReason.CONTROL_CENTRE]: 'Ended by the control room',
31
+ [responder_enums_1.ResponderDutyEndReason.MEMBERSHIP_REMOVED]: 'Removed from the unit',
32
+ [responder_enums_1.ResponderDutyEndReason.UNIT_DEACTIVATED]: 'Unit deactivated',
33
+ };
34
+ exports.RESPONDER_DUTY_SESSION_STATUS_LABELS = {
35
+ [responder_enums_1.ResponderDutySessionStatus.ACTIVE]: 'On duty',
36
+ [responder_enums_1.ResponderDutySessionStatus.ENDED]: 'Ended',
37
+ };
38
+ function responderReportOutcomeTone(outcome) {
39
+ switch (outcome) {
40
+ case responder_enums_1.ResponderReportOutcome.RESOLVED_ON_SCENE:
41
+ return 'success';
42
+ case responder_enums_1.ResponderReportOutcome.HANDED_OVER:
43
+ case responder_enums_1.ResponderReportOutcome.REFERRED:
44
+ return 'info';
45
+ case responder_enums_1.ResponderReportOutcome.UNABLE_TO_LOCATE:
46
+ return 'warning';
47
+ default:
48
+ return 'grey';
49
+ }
50
+ }
51
+ /** The outcome's label, or the raw value when this package does not know it yet. */
52
+ function responderReportOutcomeLabel(outcome) {
53
+ var _a;
54
+ if (!outcome)
55
+ return '';
56
+ return (_a = exports.RESPONDER_REPORT_OUTCOME_LABELS[outcome]) !== null && _a !== void 0 ? _a : String(outcome);
57
+ }
58
+ /** The end reason's label, or the raw value when this package does not know it yet. */
59
+ function responderDutyEndReasonLabel(reason) {
60
+ var _a;
61
+ if (!reason)
62
+ return '';
63
+ return (_a = exports.RESPONDER_DUTY_END_REASON_LABELS[reason]) !== null && _a !== void 0 ? _a : String(reason);
64
+ }
65
+ /**
66
+ * A checklist item id as words, for a screen that has the answers but not the
67
+ * organization's policy (where the labels live): "scene-made-safe",
68
+ * "scene_made_safe" and "sceneMadeSafe" all read "Scene made safe".
69
+ */
70
+ function humanizeResponderChecklistItem(itemId) {
71
+ if (!itemId)
72
+ return '';
73
+ const words = itemId
74
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
75
+ .replace(/[-_.]+/g, ' ')
76
+ .trim()
77
+ .toLowerCase()
78
+ .replace(/\s+/g, ' ');
79
+ return words ? words.charAt(0).toUpperCase() + words.slice(1) : '';
80
+ }
81
+ /** "3 of 4 confirmed"; '' for an empty checklist. */
82
+ function describeResponderChecklist(checklist) {
83
+ const items = checklist !== null && checklist !== void 0 ? checklist : [];
84
+ if (items.length === 0)
85
+ return '';
86
+ const checked = items.filter((item) => item.checked).length;
87
+ return `${checked} of ${items.length} confirmed`;
88
+ }
89
+ /** The responder's name - or, when their account could not be read, its number. */
90
+ function responderDisplayName(responder) {
91
+ var _a, _b;
92
+ const name = (_b = (_a = responder.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.trim();
93
+ return name ? name : `Account #${responder.userId}`;
94
+ }
95
+ /** "jane@example.com · +254 712 345678", whichever of the two the account has. */
96
+ function responderContactLine(responder) {
97
+ const user = responder.user;
98
+ if (!user)
99
+ return '';
100
+ return [user.email, user.phoneNumber].filter((value) => !!value && value.trim().length > 0).join(' · ');
101
+ }
102
+ //# sourceMappingURL=responder-display.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/responder/utils/responder-display.util.ts"],"names":[],"mappings":";;;AAqCA,gEAYC;AAGD,kEAGC;AAGD,kEAGC;AAOD,wEASC;AAGD,gEAKC;AAGD,oDAGC;AAGD,oDAIC;AAlGD,8DAAsH;AAGtH;;;;GAIG;AAEH,0GAA0G;AAC7F,QAAA,oCAAoC,GAAG,GAAG,CAAC;AAE3C,QAAA,+BAA+B,GAAqD;IAC7F,CAAC,wCAAsB,CAAC,iBAAiB,CAAC,EAAE,mBAAmB;IAC/D,CAAC,wCAAsB,CAAC,WAAW,CAAC,EAAE,aAAa;IACnD,CAAC,wCAAsB,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC7C,CAAC,wCAAsB,CAAC,kBAAkB,CAAC,EAAE,oBAAoB;IACjE,CAAC,wCAAsB,CAAC,WAAW,CAAC,EAAE,aAAa;IACnD,CAAC,wCAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;IAC7D,CAAC,wCAAsB,CAAC,KAAK,CAAC,EAAE,OAAO;CAC1C,CAAC;AAEW,QAAA,gCAAgC,GAAqD;IAC9F,CAAC,wCAAsB,CAAC,SAAS,CAAC,EAAE,wBAAwB;IAC5D,CAAC,wCAAsB,CAAC,cAAc,CAAC,EAAE,2BAA2B;IACpE,CAAC,wCAAsB,CAAC,kBAAkB,CAAC,EAAE,uBAAuB;IACpE,CAAC,wCAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;CAChE,CAAC;AAEW,QAAA,oCAAoC,GAAyD;IACtG,CAAC,4CAA0B,CAAC,MAAM,CAAC,EAAE,SAAS;IAC9C,CAAC,4CAA0B,CAAC,KAAK,CAAC,EAAE,OAAO;CAC9C,CAAC;AAKF,SAAgB,0BAA0B,CAAC,OAA2D;IAClG,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,wCAAsB,CAAC,iBAAiB;YACzC,OAAO,SAAS,CAAC;QACrB,KAAK,wCAAsB,CAAC,WAAW,CAAC;QACxC,KAAK,wCAAsB,CAAC,QAAQ;YAChC,OAAO,MAAM,CAAC;QAClB,KAAK,wCAAsB,CAAC,gBAAgB;YACxC,OAAO,SAAS,CAAC;QACrB;YACI,OAAO,MAAM,CAAC;IACtB,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,SAAgB,2BAA2B,CAAC,OAA2D;;IACnG,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,MAAA,uCAA+B,CAAC,OAAiC,CAAC,mCAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AACjG,CAAC;AAED,uFAAuF;AACvF,SAAgB,2BAA2B,CAAC,MAA0D;;IAClG,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAA,wCAAgC,CAAC,MAAgC,CAAC,mCAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAChG,CAAC;AAED;;;;GAIG;AACH,SAAgB,8BAA8B,CAAC,MAAiC;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM;SACf,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,qDAAqD;AACrD,SAAgB,0BAA0B,CAAC,SAAuE;IAC9G,MAAM,KAAK,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,GAAG,OAAO,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AACrD,CAAC;AAED,mFAAmF;AACnF,SAAgB,oBAAoB,CAAC,SAAyD;;IAC1F,MAAM,IAAI,GAAG,MAAA,MAAA,SAAS,CAAC,IAAI,0CAAE,IAAI,0CAAE,IAAI,EAAE,CAAC;IAC1C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,MAAM,EAAE,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,SAAgB,oBAAoB,CAAC,SAA8C;IAC/E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7H,CAAC"}
package/dist/esm/index.js CHANGED
@@ -28,6 +28,7 @@ export * from './modules/billing/index';
28
28
  export * from './modules/newsfeed/index';
29
29
  export * from './modules/dispatch/index';
30
30
  export * from './modules/incident-sla/index';
31
+ export * from './modules/responder/index';
31
32
  // Interfaces
32
33
  export * from './modules/common/interfaces/server-message';
33
34
  export * from './modules/common/interfaces/pagination';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAE7C,aAAa;AACb,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAE1C,aAAa;AACb,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC"}
@@ -272,6 +272,14 @@ export var PermissionActions;
272
272
  PermissionActions["READ_INCIDENT_SLA_POLICY"] = "read:incident-sla-policy";
273
273
  PermissionActions["MANAGE_INCIDENT_SLA_POLICY"] = "manage:incident-sla-policy";
274
274
  PermissionActions["READ_INCIDENT_SLA_ANALYTICS"] = "read:incident-sla-analytics";
275
+ // Module: Responder - the responder app (field personnel staffing a response
276
+ // unit). Granted to the Responder role only, and each confined by the
277
+ // services to the CALLER's own memberships, duty and units. The control room
278
+ // manages memberships with update:response-unit and reads the reports with
279
+ // read:response-unit-dispatch.
280
+ PermissionActions["USE_RESPONDER_APP"] = "use:responder-app";
281
+ PermissionActions["RESPOND_RESPONSE_UNIT_DISPATCH"] = "respond:response-unit-dispatch";
282
+ PermissionActions["REPORT_RESPONDER_POSITION"] = "report:responder-position";
275
283
  /** @deprecated Retiring: split into the connection / message / screened-message / analytics actions. */
276
284
  PermissionActions["READ_ALERT_INTAKE"] = "read:alert-intake";
277
285
  /** @deprecated Retiring: split into the connection / message / screened-message / analytics actions. */
@@ -1 +1 @@
1
- {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,6 @@ export var PermissionsModule;
18
18
  PermissionsModule["SAFETY"] = "Safety";
19
19
  PermissionsModule["PLACES"] = "Places";
20
20
  PermissionsModule["INCIDENT_SLA"] = "Incident SLA";
21
+ PermissionsModule["RESPONDER"] = "Responder";
21
22
  })(PermissionsModule || (PermissionsModule = {}));
22
23
  //# sourceMappingURL=permissions-moudule.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-moudule.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-moudule.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAmBX;AAnBD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,0CAAqB,CAAA;IACrB,sEAAiD,CAAA;IACjD,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;IAC7B,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,kDAA6B,CAAA;AACjC,CAAC,EAnBW,iBAAiB,KAAjB,iBAAiB,QAmB5B"}
1
+ {"version":3,"file":"permissions-moudule.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-moudule.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAoBX;AApBD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,0CAAqB,CAAA;IACrB,sEAAiD,CAAA;IACjD,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;IAC7B,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,kDAA6B,CAAA;IAC7B,4CAAuB,CAAA;AAC3B,CAAC,EApBW,iBAAiB,KAAjB,iBAAiB,QAoB5B"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The responder app, as the control room sees it: field personnel (role
3
+ * `Responder`) linked to the response units they may staff, going on duty with
4
+ * one of them and reporting how each dispatch ended.
5
+ *
6
+ * The admin's mirror of grm-shared-library `src/modules/responder` - the string
7
+ * values MUST stay identical to the backend's (pinned by responder-display.spec.ts).
8
+ */
9
+ /** A duty session's own lifecycle. One session is ACTIVE per responder at most. */
10
+ export var ResponderDutySessionStatus;
11
+ (function (ResponderDutySessionStatus) {
12
+ ResponderDutySessionStatus["ACTIVE"] = "ACTIVE";
13
+ ResponderDutySessionStatus["ENDED"] = "ENDED";
14
+ })(ResponderDutySessionStatus || (ResponderDutySessionStatus = {}));
15
+ /** Why a duty session ended. */
16
+ export var ResponderDutyEndReason;
17
+ (function (ResponderDutyEndReason) {
18
+ /** The responder went off duty in the app. */
19
+ ResponderDutyEndReason["RESPONDER"] = "RESPONDER";
20
+ /** The control room ended it (update:response-unit). */
21
+ ResponderDutyEndReason["CONTROL_CENTRE"] = "CONTROL_CENTRE";
22
+ /** The responder was removed from the unit while on duty with it. */
23
+ ResponderDutyEndReason["MEMBERSHIP_REMOVED"] = "MEMBERSHIP_REMOVED";
24
+ /** The unit was deactivated or deleted while the responder was on duty with it. */
25
+ ResponderDutyEndReason["UNIT_DEACTIVATED"] = "UNIT_DEACTIVATED";
26
+ })(ResponderDutyEndReason || (ResponderDutyEndReason = {}));
27
+ /** How a response ended, as the responder reports it. */
28
+ export var ResponderReportOutcome;
29
+ (function (ResponderReportOutcome) {
30
+ ResponderReportOutcome["RESOLVED_ON_SCENE"] = "RESOLVED_ON_SCENE";
31
+ ResponderReportOutcome["HANDED_OVER"] = "HANDED_OVER";
32
+ ResponderReportOutcome["REFERRED"] = "REFERRED";
33
+ ResponderReportOutcome["NO_ACTION_REQUIRED"] = "NO_ACTION_REQUIRED";
34
+ ResponderReportOutcome["FALSE_ALARM"] = "FALSE_ALARM";
35
+ ResponderReportOutcome["UNABLE_TO_LOCATE"] = "UNABLE_TO_LOCATE";
36
+ ResponderReportOutcome["OTHER"] = "OTHER";
37
+ })(ResponderReportOutcome || (ResponderReportOutcome = {}));
38
+ /**
39
+ * Machine-readable refusals of the responder endpoints, in the error body's
40
+ * `code` (or `details.code` behind the gateway) - the same
41
+ * `{statusCode, code, message, ...details}` envelope the dispatch endpoints use.
42
+ */
43
+ export var ResponderErrorCode;
44
+ (function (ResponderErrorCode) {
45
+ /** The caller does not hold the Responder role. */
46
+ ResponderErrorCode["NOT_A_RESPONDER"] = "RESPONDER_NOT_A_RESPONDER";
47
+ /** The responder account has no control centre, so nothing can be scoped. */
48
+ ResponderErrorCode["NO_CONTROL_CENTRE"] = "RESPONDER_NO_CONTROL_CENTRE";
49
+ ResponderErrorCode["UNIT_NOT_FOUND"] = "RESPONDER_UNIT_NOT_FOUND";
50
+ /** The caller is not a member of that unit. */
51
+ ResponderErrorCode["NOT_A_UNIT_MEMBER"] = "RESPONDER_NOT_A_UNIT_MEMBER";
52
+ ResponderErrorCode["UNIT_INACTIVE"] = "RESPONDER_UNIT_INACTIVE";
53
+ /** Already on duty with ANOTHER unit; end that duty first. `details.activeDuty` names it. */
54
+ ResponderErrorCode["ALREADY_ON_DUTY"] = "RESPONDER_ALREADY_ON_DUTY";
55
+ ResponderErrorCode["NOT_ON_DUTY"] = "RESPONDER_NOT_ON_DUTY";
56
+ /** Membership: the user is not a Responder of the unit's organization and control centre. */
57
+ ResponderErrorCode["USER_NOT_ELIGIBLE"] = "RESPONDER_USER_NOT_ELIGIBLE";
58
+ ResponderErrorCode["ALREADY_A_MEMBER"] = "RESPONDER_ALREADY_A_MEMBER";
59
+ ResponderErrorCode["MEMBERSHIP_NOT_FOUND"] = "RESPONDER_MEMBERSHIP_NOT_FOUND";
60
+ /** The dispatch does not exist or is not for one of the caller's units (never says which). */
61
+ ResponderErrorCode["DISPATCH_NOT_FOUND"] = "RESPONDER_DISPATCH_NOT_FOUND";
62
+ /** The move is not one a responder may make from the current status. `details.currentStatus`. */
63
+ ResponderErrorCode["INVALID_STATUS_TRANSITION"] = "RESPONDER_INVALID_STATUS_TRANSITION";
64
+ ResponderErrorCode["REASON_REQUIRED"] = "RESPONDER_REASON_REQUIRED";
65
+ ResponderErrorCode["DECLINE_NOT_ALLOWED"] = "RESPONDER_DECLINE_NOT_ALLOWED";
66
+ ResponderErrorCode["MANUAL_ARRIVAL_NOT_ALLOWED"] = "RESPONDER_MANUAL_ARRIVAL_NOT_ALLOWED";
67
+ /** Completing needs the response report first (organization policy). */
68
+ ResponderErrorCode["REPORT_REQUIRED"] = "RESPONDER_REPORT_REQUIRED";
69
+ /** A report can only be written once the unit reached the scene. */
70
+ ResponderErrorCode["REPORT_NOT_ALLOWED"] = "RESPONDER_REPORT_NOT_ALLOWED";
71
+ /** The report changed since the version the client edited. `details.currentVersion`. */
72
+ ResponderErrorCode["REPORT_VERSION_CONFLICT"] = "RESPONDER_REPORT_VERSION_CONFLICT";
73
+ /** The incident is closed or archived, so its reports can no longer be amended. */
74
+ ResponderErrorCode["REPORT_LOCKED"] = "RESPONDER_REPORT_LOCKED";
75
+ /** A required report field or checklist item is missing. `details.missing`. */
76
+ ResponderErrorCode["REPORT_INCOMPLETE"] = "RESPONDER_REPORT_INCOMPLETE";
77
+ /** An attachment id is not a file the caller may link. */
78
+ ResponderErrorCode["ATTACHMENT_NOT_READABLE"] = "RESPONDER_ATTACHMENT_NOT_READABLE";
79
+ })(ResponderErrorCode || (ResponderErrorCode = {}));
80
+ //# sourceMappingURL=responder-enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder-enums.js","sourceRoot":"","sources":["../../../../../src/modules/responder/enums/responder-enums.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mFAAmF;AACnF,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IAClC,+CAAiB,CAAA;IACjB,6CAAe,CAAA;AACnB,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED,gCAAgC;AAChC,MAAM,CAAN,IAAY,sBASX;AATD,WAAY,sBAAsB;IAC9B,8CAA8C;IAC9C,iDAAuB,CAAA;IACvB,wDAAwD;IACxD,2DAAiC,CAAA;IACjC,qEAAqE;IACrE,mEAAyC,CAAA;IACzC,mFAAmF;IACnF,+DAAqC,CAAA;AACzC,CAAC,EATW,sBAAsB,KAAtB,sBAAsB,QASjC;AAED,yDAAyD;AACzD,MAAM,CAAN,IAAY,sBAQX;AARD,WAAY,sBAAsB;IAC9B,iEAAuC,CAAA;IACvC,qDAA2B,CAAA;IAC3B,+CAAqB,CAAA;IACrB,mEAAyC,CAAA;IACzC,qDAA2B,CAAA;IAC3B,+DAAqC,CAAA;IACrC,yCAAe,CAAA;AACnB,CAAC,EARW,sBAAsB,KAAtB,sBAAsB,QAQjC;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,kBAmCX;AAnCD,WAAY,kBAAkB;IAC1B,mDAAmD;IACnD,mEAA6C,CAAA;IAC7C,6EAA6E;IAC7E,uEAAiD,CAAA;IACjD,iEAA2C,CAAA;IAC3C,+CAA+C;IAC/C,uEAAiD,CAAA;IACjD,+DAAyC,CAAA;IACzC,6FAA6F;IAC7F,mEAA6C,CAAA;IAC7C,2DAAqC,CAAA;IACrC,6FAA6F;IAC7F,uEAAiD,CAAA;IACjD,qEAA+C,CAAA;IAC/C,6EAAuD,CAAA;IACvD,8FAA8F;IAC9F,yEAAmD,CAAA;IACnD,iGAAiG;IACjG,uFAAiE,CAAA;IACjE,mEAA6C,CAAA;IAC7C,2EAAqD,CAAA;IACrD,yFAAmE,CAAA;IACnE,wEAAwE;IACxE,mEAA6C,CAAA;IAC7C,oEAAoE;IACpE,yEAAmD,CAAA;IACnD,wFAAwF;IACxF,mFAA6D,CAAA;IAC7D,mFAAmF;IACnF,+DAAyC,CAAA;IACzC,+EAA+E;IAC/E,uEAAiD,CAAA;IACjD,0DAA0D;IAC1D,mFAA6D,CAAA;AACjE,CAAC,EAnCW,kBAAkB,KAAlB,kBAAkB,QAmC7B"}
@@ -0,0 +1,7 @@
1
+ // Enums
2
+ export * from './enums/responder-enums';
3
+ // Interfaces
4
+ export * from './interfaces/responder.dto';
5
+ // Utilities
6
+ export * from './utils/responder-display.util';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/responder/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,yBAAyB,CAAC;AAExC,aAAa;AACb,cAAc,4BAA4B,CAAC;AAE3C,YAAY;AACZ,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=responder.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder.dto.js","sourceRoot":"","sources":["../../../../../src/modules/responder/interfaces/responder.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ import { ResponderDutyEndReason, ResponderDutySessionStatus, ResponderReportOutcome } from '../enums/responder-enums';
2
+ /*
3
+ * How the responder app's records read on the control room's screens - in the
4
+ * shared package, as for dispatches, so the unit screen, the incident screen
5
+ * and any future duty board name the same thing the same way.
6
+ */
7
+ /** The backend's limit on a duty-end reason (grm-shared-library RESPONDER_FIELD_LIMITS.dutyEndReason). */
8
+ export const RESPONDER_DUTY_END_REASON_MAX_LENGTH = 300;
9
+ export const RESPONDER_REPORT_OUTCOME_LABELS = {
10
+ [ResponderReportOutcome.RESOLVED_ON_SCENE]: 'Resolved on scene',
11
+ [ResponderReportOutcome.HANDED_OVER]: 'Handed over',
12
+ [ResponderReportOutcome.REFERRED]: 'Referred',
13
+ [ResponderReportOutcome.NO_ACTION_REQUIRED]: 'No action required',
14
+ [ResponderReportOutcome.FALSE_ALARM]: 'False alarm',
15
+ [ResponderReportOutcome.UNABLE_TO_LOCATE]: 'Unable to locate',
16
+ [ResponderReportOutcome.OTHER]: 'Other',
17
+ };
18
+ export const RESPONDER_DUTY_END_REASON_LABELS = {
19
+ [ResponderDutyEndReason.RESPONDER]: 'Ended by the responder',
20
+ [ResponderDutyEndReason.CONTROL_CENTRE]: 'Ended by the control room',
21
+ [ResponderDutyEndReason.MEMBERSHIP_REMOVED]: 'Removed from the unit',
22
+ [ResponderDutyEndReason.UNIT_DEACTIVATED]: 'Unit deactivated',
23
+ };
24
+ export const RESPONDER_DUTY_SESSION_STATUS_LABELS = {
25
+ [ResponderDutySessionStatus.ACTIVE]: 'On duty',
26
+ [ResponderDutySessionStatus.ENDED]: 'Ended',
27
+ };
28
+ export function responderReportOutcomeTone(outcome) {
29
+ switch (outcome) {
30
+ case ResponderReportOutcome.RESOLVED_ON_SCENE:
31
+ return 'success';
32
+ case ResponderReportOutcome.HANDED_OVER:
33
+ case ResponderReportOutcome.REFERRED:
34
+ return 'info';
35
+ case ResponderReportOutcome.UNABLE_TO_LOCATE:
36
+ return 'warning';
37
+ default:
38
+ return 'grey';
39
+ }
40
+ }
41
+ /** The outcome's label, or the raw value when this package does not know it yet. */
42
+ export function responderReportOutcomeLabel(outcome) {
43
+ var _a;
44
+ if (!outcome)
45
+ return '';
46
+ return (_a = RESPONDER_REPORT_OUTCOME_LABELS[outcome]) !== null && _a !== void 0 ? _a : String(outcome);
47
+ }
48
+ /** The end reason's label, or the raw value when this package does not know it yet. */
49
+ export function responderDutyEndReasonLabel(reason) {
50
+ var _a;
51
+ if (!reason)
52
+ return '';
53
+ return (_a = RESPONDER_DUTY_END_REASON_LABELS[reason]) !== null && _a !== void 0 ? _a : String(reason);
54
+ }
55
+ /**
56
+ * A checklist item id as words, for a screen that has the answers but not the
57
+ * organization's policy (where the labels live): "scene-made-safe",
58
+ * "scene_made_safe" and "sceneMadeSafe" all read "Scene made safe".
59
+ */
60
+ export function humanizeResponderChecklistItem(itemId) {
61
+ if (!itemId)
62
+ return '';
63
+ const words = itemId
64
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
65
+ .replace(/[-_.]+/g, ' ')
66
+ .trim()
67
+ .toLowerCase()
68
+ .replace(/\s+/g, ' ');
69
+ return words ? words.charAt(0).toUpperCase() + words.slice(1) : '';
70
+ }
71
+ /** "3 of 4 confirmed"; '' for an empty checklist. */
72
+ export function describeResponderChecklist(checklist) {
73
+ const items = checklist !== null && checklist !== void 0 ? checklist : [];
74
+ if (items.length === 0)
75
+ return '';
76
+ const checked = items.filter((item) => item.checked).length;
77
+ return `${checked} of ${items.length} confirmed`;
78
+ }
79
+ /** The responder's name - or, when their account could not be read, its number. */
80
+ export function responderDisplayName(responder) {
81
+ var _a, _b;
82
+ const name = (_b = (_a = responder.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.trim();
83
+ return name ? name : `Account #${responder.userId}`;
84
+ }
85
+ /** "jane@example.com · +254 712 345678", whichever of the two the account has. */
86
+ export function responderContactLine(responder) {
87
+ const user = responder.user;
88
+ if (!user)
89
+ return '';
90
+ return [user.email, user.phoneNumber].filter((value) => !!value && value.trim().length > 0).join(' · ');
91
+ }
92
+ //# sourceMappingURL=responder-display.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/responder/utils/responder-display.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGtH;;;;GAIG;AAEH,0GAA0G;AAC1G,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD,MAAM,CAAC,MAAM,+BAA+B,GAAqD;IAC7F,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,mBAAmB;IAC/D,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,aAAa;IACnD,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC7C,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,oBAAoB;IACjE,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,aAAa;IACnD,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;IAC7D,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,OAAO;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAqD;IAC9F,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,wBAAwB;IAC5D,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,2BAA2B;IACpE,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,uBAAuB;IACpE,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAyD;IACtG,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,SAAS;IAC9C,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,OAAO;CAC9C,CAAC;AAKF,MAAM,UAAU,0BAA0B,CAAC,OAA2D;IAClG,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,sBAAsB,CAAC,iBAAiB;YACzC,OAAO,SAAS,CAAC;QACrB,KAAK,sBAAsB,CAAC,WAAW,CAAC;QACxC,KAAK,sBAAsB,CAAC,QAAQ;YAChC,OAAO,MAAM,CAAC;QAClB,KAAK,sBAAsB,CAAC,gBAAgB;YACxC,OAAO,SAAS,CAAC;QACrB;YACI,OAAO,MAAM,CAAC;IACtB,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,2BAA2B,CAAC,OAA2D;;IACnG,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,MAAA,+BAA+B,CAAC,OAAiC,CAAC,mCAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AACjG,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,2BAA2B,CAAC,MAA0D;;IAClG,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAA,gCAAgC,CAAC,MAAgC,CAAC,mCAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAChG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAiC;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM;SACf,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,0BAA0B,CAAC,SAAuE;IAC9G,MAAM,KAAK,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,GAAG,OAAO,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AACrD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAAC,SAAyD;;IAC1F,MAAM,IAAI,GAAG,MAAA,MAAA,SAAS,CAAC,IAAI,0CAAE,IAAI,0CAAE,IAAI,EAAE,CAAC;IAC1C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,MAAM,EAAE,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,SAA8C;IAC/E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7H,CAAC"}
@@ -27,5 +27,6 @@ export * from './modules/billing/index';
27
27
  export * from './modules/newsfeed/index';
28
28
  export * from './modules/dispatch/index';
29
29
  export * from './modules/incident-sla/index';
30
+ export * from './modules/responder/index';
30
31
  export * from './modules/common/interfaces/server-message';
31
32
  export * from './modules/common/interfaces/pagination';
@@ -199,6 +199,9 @@ export declare enum PermissionActions {
199
199
  READ_INCIDENT_SLA_POLICY = "read:incident-sla-policy",
200
200
  MANAGE_INCIDENT_SLA_POLICY = "manage:incident-sla-policy",
201
201
  READ_INCIDENT_SLA_ANALYTICS = "read:incident-sla-analytics",
202
+ USE_RESPONDER_APP = "use:responder-app",
203
+ RESPOND_RESPONSE_UNIT_DISPATCH = "respond:response-unit-dispatch",
204
+ REPORT_RESPONDER_POSITION = "report:responder-position",
202
205
  /** @deprecated Retiring: split into the connection / message / screened-message / analytics actions. */
203
206
  READ_ALERT_INTAKE = "read:alert-intake",
204
207
  /** @deprecated Retiring: split into the connection / message / screened-message / analytics actions. */
@@ -16,5 +16,6 @@ export declare enum PermissionsModule {
16
16
  ALERT_INTAKE = "Alert Intake",
17
17
  SAFETY = "Safety",
18
18
  PLACES = "Places",
19
- INCIDENT_SLA = "Incident SLA"
19
+ INCIDENT_SLA = "Incident SLA",
20
+ RESPONDER = "Responder"
20
21
  }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * The responder app, as the control room sees it: field personnel (role
3
+ * `Responder`) linked to the response units they may staff, going on duty with
4
+ * one of them and reporting how each dispatch ended.
5
+ *
6
+ * The admin's mirror of grm-shared-library `src/modules/responder` - the string
7
+ * values MUST stay identical to the backend's (pinned by responder-display.spec.ts).
8
+ */
9
+ /** A duty session's own lifecycle. One session is ACTIVE per responder at most. */
10
+ export declare enum ResponderDutySessionStatus {
11
+ ACTIVE = "ACTIVE",
12
+ ENDED = "ENDED"
13
+ }
14
+ /** Why a duty session ended. */
15
+ export declare enum ResponderDutyEndReason {
16
+ /** The responder went off duty in the app. */
17
+ RESPONDER = "RESPONDER",
18
+ /** The control room ended it (update:response-unit). */
19
+ CONTROL_CENTRE = "CONTROL_CENTRE",
20
+ /** The responder was removed from the unit while on duty with it. */
21
+ MEMBERSHIP_REMOVED = "MEMBERSHIP_REMOVED",
22
+ /** The unit was deactivated or deleted while the responder was on duty with it. */
23
+ UNIT_DEACTIVATED = "UNIT_DEACTIVATED"
24
+ }
25
+ /** How a response ended, as the responder reports it. */
26
+ export declare enum ResponderReportOutcome {
27
+ RESOLVED_ON_SCENE = "RESOLVED_ON_SCENE",
28
+ HANDED_OVER = "HANDED_OVER",
29
+ REFERRED = "REFERRED",
30
+ NO_ACTION_REQUIRED = "NO_ACTION_REQUIRED",
31
+ FALSE_ALARM = "FALSE_ALARM",
32
+ UNABLE_TO_LOCATE = "UNABLE_TO_LOCATE",
33
+ OTHER = "OTHER"
34
+ }
35
+ /**
36
+ * Machine-readable refusals of the responder endpoints, in the error body's
37
+ * `code` (or `details.code` behind the gateway) - the same
38
+ * `{statusCode, code, message, ...details}` envelope the dispatch endpoints use.
39
+ */
40
+ export declare enum ResponderErrorCode {
41
+ /** The caller does not hold the Responder role. */
42
+ NOT_A_RESPONDER = "RESPONDER_NOT_A_RESPONDER",
43
+ /** The responder account has no control centre, so nothing can be scoped. */
44
+ NO_CONTROL_CENTRE = "RESPONDER_NO_CONTROL_CENTRE",
45
+ UNIT_NOT_FOUND = "RESPONDER_UNIT_NOT_FOUND",
46
+ /** The caller is not a member of that unit. */
47
+ NOT_A_UNIT_MEMBER = "RESPONDER_NOT_A_UNIT_MEMBER",
48
+ UNIT_INACTIVE = "RESPONDER_UNIT_INACTIVE",
49
+ /** Already on duty with ANOTHER unit; end that duty first. `details.activeDuty` names it. */
50
+ ALREADY_ON_DUTY = "RESPONDER_ALREADY_ON_DUTY",
51
+ NOT_ON_DUTY = "RESPONDER_NOT_ON_DUTY",
52
+ /** Membership: the user is not a Responder of the unit's organization and control centre. */
53
+ USER_NOT_ELIGIBLE = "RESPONDER_USER_NOT_ELIGIBLE",
54
+ ALREADY_A_MEMBER = "RESPONDER_ALREADY_A_MEMBER",
55
+ MEMBERSHIP_NOT_FOUND = "RESPONDER_MEMBERSHIP_NOT_FOUND",
56
+ /** The dispatch does not exist or is not for one of the caller's units (never says which). */
57
+ DISPATCH_NOT_FOUND = "RESPONDER_DISPATCH_NOT_FOUND",
58
+ /** The move is not one a responder may make from the current status. `details.currentStatus`. */
59
+ INVALID_STATUS_TRANSITION = "RESPONDER_INVALID_STATUS_TRANSITION",
60
+ REASON_REQUIRED = "RESPONDER_REASON_REQUIRED",
61
+ DECLINE_NOT_ALLOWED = "RESPONDER_DECLINE_NOT_ALLOWED",
62
+ MANUAL_ARRIVAL_NOT_ALLOWED = "RESPONDER_MANUAL_ARRIVAL_NOT_ALLOWED",
63
+ /** Completing needs the response report first (organization policy). */
64
+ REPORT_REQUIRED = "RESPONDER_REPORT_REQUIRED",
65
+ /** A report can only be written once the unit reached the scene. */
66
+ REPORT_NOT_ALLOWED = "RESPONDER_REPORT_NOT_ALLOWED",
67
+ /** The report changed since the version the client edited. `details.currentVersion`. */
68
+ REPORT_VERSION_CONFLICT = "RESPONDER_REPORT_VERSION_CONFLICT",
69
+ /** The incident is closed or archived, so its reports can no longer be amended. */
70
+ REPORT_LOCKED = "RESPONDER_REPORT_LOCKED",
71
+ /** A required report field or checklist item is missing. `details.missing`. */
72
+ REPORT_INCOMPLETE = "RESPONDER_REPORT_INCOMPLETE",
73
+ /** An attachment id is not a file the caller may link. */
74
+ ATTACHMENT_NOT_READABLE = "RESPONDER_ATTACHMENT_NOT_READABLE"
75
+ }
@@ -0,0 +1,3 @@
1
+ export * from './enums/responder-enums';
2
+ export * from './interfaces/responder.dto';
3
+ export * from './utils/responder-display.util';
@@ -0,0 +1,87 @@
1
+ import { ResponderDutyEndReason, ResponderDutySessionStatus, ResponderReportOutcome } from '../enums/responder-enums';
2
+ /**
3
+ * A responder linked to a unit, as the unit screen lists them.
4
+ * `GET|POST /api/response-units/:id/responders`.
5
+ */
6
+ export interface ResponseUnitResponder {
7
+ id: number;
8
+ responseUnitId: number;
9
+ userId: number;
10
+ organizationId: number;
11
+ controlCentreId: number | null;
12
+ createdByUserId: number | null;
13
+ createdAt: string;
14
+ /** The account, when clarion-authentication could be read; null otherwise. */
15
+ user: {
16
+ id: number;
17
+ name: string;
18
+ email: string | null;
19
+ phoneNumber: string | null;
20
+ } | null;
21
+ /** Set while this responder is on duty with THIS unit. */
22
+ activeDuty: {
23
+ sessionId: number;
24
+ startedAt: string;
25
+ } | null;
26
+ }
27
+ /** `POST /api/response-units/:id/responders` - link a Responder account to a unit. */
28
+ export interface AddResponseUnitResponderRequest {
29
+ userId: number;
30
+ }
31
+ /** `POST /api/response-units/:id/responders/:userId/end-duty` - the control room ends someone's duty. */
32
+ export interface EndResponderDutyRequest {
33
+ /** At most RESPONDER_DUTY_END_REASON_MAX_LENGTH characters. */
34
+ reason?: string;
35
+ }
36
+ /** One stretch of duty: a responder staffing one unit. */
37
+ export interface ResponderDutySession {
38
+ id: number;
39
+ userId: number;
40
+ responseUnitId: number;
41
+ /** Copied at start so the record reads right after a rename. */
42
+ responseUnitName: string;
43
+ organizationId: number;
44
+ controlCentreId: number | null;
45
+ status: ResponderDutySessionStatus;
46
+ startedAt: string;
47
+ endedAt: string | null;
48
+ endReason: ResponderDutyEndReason | null;
49
+ endReasonText: string | null;
50
+ /** Who ended it - the responder, or the control-room user. */
51
+ endedByUserId: number | null;
52
+ }
53
+ /** One answer on a responder report's closure checklist. */
54
+ export interface ResponderReportChecklistAnswer {
55
+ /** The organization policy's stable item id (the label lives in the policy). */
56
+ itemId: string;
57
+ checked: boolean;
58
+ }
59
+ /**
60
+ * What the responder reported about one dispatch. One per dispatch, amended in
61
+ * versions. `GET /api/incidents/:id/responder-reports` lists an incident's.
62
+ */
63
+ export interface ResponderDispatchReport {
64
+ id: number;
65
+ reference: string;
66
+ dispatchId: number;
67
+ incidentId: number;
68
+ responseUnitId: number;
69
+ submittedByUserId: number;
70
+ /** Starts at 1; every amendment adds one. */
71
+ version: number;
72
+ summary: string;
73
+ actionsTaken: string | null;
74
+ outcome: ResponderReportOutcome;
75
+ personsContacted: string | null;
76
+ handoverTo: string | null;
77
+ followUpRequired: boolean;
78
+ followUpNotes: string | null;
79
+ remarks: string | null;
80
+ checklist: ResponderReportChecklistAnswer[];
81
+ /** dms file ids; the files are also appended to the incident's attachments. */
82
+ attachmentIds: number[];
83
+ submittedAt: string;
84
+ updatedAt: string;
85
+ /** Whether the CALLER may still amend it (submitter, incident not closed) - always false for the control room. */
86
+ amendable: boolean;
87
+ }
@@ -0,0 +1,26 @@
1
+ import { ResponderDutyEndReason, ResponderDutySessionStatus, ResponderReportOutcome } from '../enums/responder-enums';
2
+ import { ResponderReportChecklistAnswer, ResponseUnitResponder } from '../interfaces/responder.dto';
3
+ /** The backend's limit on a duty-end reason (grm-shared-library RESPONDER_FIELD_LIMITS.dutyEndReason). */
4
+ export declare const RESPONDER_DUTY_END_REASON_MAX_LENGTH = 300;
5
+ export declare const RESPONDER_REPORT_OUTCOME_LABELS: Readonly<Record<ResponderReportOutcome, string>>;
6
+ export declare const RESPONDER_DUTY_END_REASON_LABELS: Readonly<Record<ResponderDutyEndReason, string>>;
7
+ export declare const RESPONDER_DUTY_SESSION_STATUS_LABELS: Readonly<Record<ResponderDutySessionStatus, string>>;
8
+ /** The colour an outcome is shown in: settled is green, passed on is blue, not found is amber, the rest neutral. */
9
+ export type ResponderReportOutcomeTone = 'success' | 'info' | 'warning' | 'grey';
10
+ export declare function responderReportOutcomeTone(outcome: ResponderReportOutcome | string | null | undefined): ResponderReportOutcomeTone;
11
+ /** The outcome's label, or the raw value when this package does not know it yet. */
12
+ export declare function responderReportOutcomeLabel(outcome: ResponderReportOutcome | string | null | undefined): string;
13
+ /** The end reason's label, or the raw value when this package does not know it yet. */
14
+ export declare function responderDutyEndReasonLabel(reason: ResponderDutyEndReason | string | null | undefined): string;
15
+ /**
16
+ * A checklist item id as words, for a screen that has the answers but not the
17
+ * organization's policy (where the labels live): "scene-made-safe",
18
+ * "scene_made_safe" and "sceneMadeSafe" all read "Scene made safe".
19
+ */
20
+ export declare function humanizeResponderChecklistItem(itemId: string | null | undefined): string;
21
+ /** "3 of 4 confirmed"; '' for an empty checklist. */
22
+ export declare function describeResponderChecklist(checklist: readonly ResponderReportChecklistAnswer[] | null | undefined): string;
23
+ /** The responder's name - or, when their account could not be read, its number. */
24
+ export declare function responderDisplayName(responder: Pick<ResponseUnitResponder, 'userId' | 'user'>): string;
25
+ /** "jane@example.com · +254 712 345678", whichever of the two the account has. */
26
+ export declare function responderContactLine(responder: Pick<ResponseUnitResponder, 'user'>): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarion-shared-types",
3
- "version": "1.0.118",
3
+ "version": "1.0.119",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",