tabletcommand-backend-models 7.4.123 → 7.4.125

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.
@@ -4,11 +4,19 @@
4
4
  // on the incident at create time and sent in the event opts; every service
5
5
  // that renders a checklist event message should build it with these helpers.
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.nerisBenchmarkLabel = nerisBenchmarkLabel;
7
8
  exports.buildChecklistMessage = buildChecklistMessage;
8
9
  exports.buildIncidentChecklistMessage = buildIncidentChecklistMessage;
9
10
  function eventString(value) {
10
11
  return typeof value === "string" ? value : "";
11
12
  }
13
+ function nerisBenchmarkLabel(nerisKey) {
14
+ return nerisKey
15
+ .split(/[_\s]+/)
16
+ .filter((word) => word !== "")
17
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
18
+ .join(" ");
19
+ }
12
20
  // checklistItemChange: "Checked"/"Unchecked", with the item name and an
13
21
  // optional NERIS suffix when the event carries them.
14
22
  function buildChecklistMessage(checked, checklistItemEvent) {
@@ -19,7 +27,7 @@ function buildChecklistMessage(checked, checklistItemEvent) {
19
27
  return prefix;
20
28
  }
21
29
  if (nerisKey !== "") {
22
- return `${prefix}: ${name} (NERIS: ${nerisKey})`;
30
+ return `${prefix}: ${name} (NERIS: ${nerisBenchmarkLabel(nerisKey)})`;
23
31
  }
24
32
  return `${prefix}: ${name}`;
25
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-item-event-message.js","sourceRoot":"","sources":["../src/checklist-item-event-message.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;;AAa7E,sDAWC;AAID,sEAOC;AA5BD,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,wEAAwE;AACxE,qDAAqD;AACrD,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,kBAA8C;IACpG,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IACjD,MAAM,IAAI,GAAG,WAAW,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,eAAe,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,GAAG,MAAM,KAAK,IAAI,YAAY,QAAQ,GAAG,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,2EAA2E;AAC3E,gDAAgD;AAChD,SAAgB,6BAA6B,CAAC,aAAsB,EAAE,kBAA8C;IAClH,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACvE,MAAM,IAAI,GAAG,WAAW,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,CAAC,CAAC;IACnD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"checklist-item-event-message.js","sourceRoot":"","sources":["../src/checklist-item-event-message.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;;AAW7E,kDAMC;AAID,sDAWC;AAID,sEAOC;AApCD,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,OAAO,QAAQ;SACZ,KAAK,CAAC,QAAQ,CAAC;SACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,qDAAqD;AACrD,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,kBAA8C;IACpG,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IACjD,MAAM,IAAI,GAAG,WAAW,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,eAAe,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,GAAG,MAAM,KAAK,IAAI,YAAY,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;IACxE,CAAC;IACD,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,2EAA2E;AAC3E,gDAAgD;AAChD,SAAgB,6BAA6B,CAAC,aAAsB,EAAE,kBAA8C;IAClH,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACvE,MAAM,IAAI,GAAG,WAAW,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,CAAC,CAAC;IACnD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC;AAC9B,CAAC"}
@@ -19,6 +19,10 @@ async function PartnerModule(mongoose) {
19
19
  type: [String],
20
20
  default: [],
21
21
  },
22
+ departmentId: {
23
+ type: String,
24
+ default: "",
25
+ },
22
26
  }, {
23
27
  _id: false,
24
28
  id: false,
@@ -1 +1 @@
1
- {"version":3,"file":"partner.js","sourceRoot":"","sources":["../../src/models/partner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"partner.js","sourceRoot":"","sources":["../../src/models/partner.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
4
  const node_test_1 = require("node:test");
5
5
  const m = require("../checklist-item-event-message");
6
+ const constants_1 = require("../constants");
6
7
  (0, node_test_1.describe)("checklist-item-event-message", function () {
7
8
  (0, node_test_1.describe)("buildChecklistMessage", function () {
8
9
  (0, node_test_1.it)("formats Checked with name and NERIS suffix", function () {
@@ -10,14 +11,18 @@ const m = require("../checklist-item-event-message");
10
11
  name: "Water On Fire",
11
12
  neris_benchmark: "time_water_on_fire",
12
13
  });
13
- chai_1.assert.equal(message, "Checked: Water On Fire (NERIS: time_water_on_fire)");
14
+ chai_1.assert.equal(message, "Checked: Water On Fire (NERIS: Time Water On Fire)");
14
15
  });
15
16
  (0, node_test_1.it)("formats Unchecked with name and NERIS suffix", function () {
16
17
  const message = m.buildChecklistMessage(false, {
17
18
  name: "Water On Fire",
18
19
  neris_benchmark: "time_water_on_fire",
19
20
  });
20
- chai_1.assert.equal(message, "Unchecked: Water On Fire (NERIS: time_water_on_fire)");
21
+ chai_1.assert.equal(message, "Unchecked: Water On Fire (NERIS: Time Water On Fire)");
22
+ });
23
+ (0, node_test_1.it)("title-cases every NerisBenchmarkType key", function () {
24
+ chai_1.assert.equal(m.buildChecklistMessage(true, { name: "Fire Under Control", neris_benchmark: "time_fire_under_control" }), "Checked: Fire Under Control (NERIS: Time Fire Under Control)");
25
+ chai_1.assert.equal(m.buildChecklistMessage(true, { name: "360", neris_benchmark: "time_360_completed" }), "Checked: 360 (NERIS: Time 360 Completed)");
21
26
  });
22
27
  (0, node_test_1.it)("omits the NERIS suffix when neris_benchmark is absent or empty", function () {
23
28
  chai_1.assert.equal(m.buildChecklistMessage(true, { name: "Basic Item" }), "Checked: Basic Item");
@@ -34,6 +39,33 @@ const m = require("../checklist-item-event-message");
34
39
  chai_1.assert.equal(m.buildChecklistMessage(true, { name: 42, neris_benchmark: true }), "Checked");
35
40
  });
36
41
  });
42
+ (0, node_test_1.describe)("nerisBenchmarkLabel", function () {
43
+ (0, node_test_1.it)("maps every NerisBenchmarkType value to a title-case label", function () {
44
+ const expected = {
45
+ [constants_1.NerisBenchmarkType.TimeCommandEstablished]: "Time Command Established",
46
+ [constants_1.NerisBenchmarkType.Time360Completed]: "Time 360 Completed",
47
+ [constants_1.NerisBenchmarkType.TimeWaterOnFire]: "Time Water On Fire",
48
+ [constants_1.NerisBenchmarkType.TimeFireUnderControl]: "Time Fire Under Control",
49
+ [constants_1.NerisBenchmarkType.TimeFireKnockedDown]: "Time Fire Knocked Down",
50
+ [constants_1.NerisBenchmarkType.TimeSuppressionComplete]: "Time Suppression Complete",
51
+ [constants_1.NerisBenchmarkType.TimePrimarySearchBegin]: "Time Primary Search Begin",
52
+ [constants_1.NerisBenchmarkType.TimePrimarySearchComplete]: "Time Primary Search Complete",
53
+ };
54
+ for (const key of Object.values(constants_1.NerisBenchmarkType)) {
55
+ chai_1.assert.equal(m.nerisBenchmarkLabel(key), expected[key]);
56
+ }
57
+ });
58
+ (0, node_test_1.it)("normalizes uppercase and mixed-case input to title case", function () {
59
+ chai_1.assert.equal(m.nerisBenchmarkLabel("TIME_WATER_ON_FIRE"), "Time Water On Fire");
60
+ chai_1.assert.equal(m.nerisBenchmarkLabel("Time_fIRE_Under_CONTROL"), "Time Fire Under Control");
61
+ });
62
+ (0, node_test_1.it)("passes through values that are not snake_case keys", function () {
63
+ chai_1.assert.equal(m.nerisBenchmarkLabel("100"), "100");
64
+ chai_1.assert.equal(m.nerisBenchmarkLabel("Already Titled"), "Already Titled");
65
+ chai_1.assert.equal(m.nerisBenchmarkLabel("__leading_and_trailing__"), "Leading And Trailing");
66
+ chai_1.assert.equal(m.nerisBenchmarkLabel(""), "");
67
+ });
68
+ });
37
69
  (0, node_test_1.describe)("buildIncidentChecklistMessage", function () {
38
70
  (0, node_test_1.it)("formats Added/Removed with the checklist name", function () {
39
71
  chai_1.assert.equal(m.buildIncidentChecklistMessage(true, { name: "Truck Pre-Trip" }), "Added checklist: Truck Pre-Trip");
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-item-event-message.js","sourceRoot":"","sources":["../../src/test/checklist-item-event-message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checklist-item-event-message.js","sourceRoot":"","sources":["../../src/test/checklist-item-event-message.ts"],"names":[],"mappings":"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"}
@@ -34,5 +34,42 @@ const mock_1 = require("./mock");
34
34
  chai_1.assert.deepEqual(sut.location.departmentIds, (_b = testItem.location) === null || _b === void 0 ? void 0 : _b.departmentIds);
35
35
  chai_1.assert.equal(sut.location.includeVehicleStatus, (_c = testItem.location) === null || _c === void 0 ? void 0 : _c.includeVehicleStatus);
36
36
  });
37
+ (0, node_test_1.it)("round-trips location filters including departmentId scope", async function () {
38
+ var _a, _b;
39
+ const partner = {
40
+ ...testItem,
41
+ location: {
42
+ enabled: true,
43
+ departmentIds: (_b = (_a = testItem.location) === null || _a === void 0 ? void 0 : _a.departmentIds) !== null && _b !== void 0 ? _b : [],
44
+ includeVehicleStatus: false,
45
+ speedAsBinary: false,
46
+ useCadVisibility: false,
47
+ filters: [
48
+ { type: "agencyCode", enabled: true, values: ["AC1"], departmentId: "dept001" },
49
+ { type: "agencyCode", enabled: true, values: ["AC2"], departmentId: "" },
50
+ ],
51
+ },
52
+ };
53
+ const item = new models.Partner(partner);
54
+ const saved = await item.save();
55
+ const sut = await models.Partner.findById(saved._id);
56
+ chai_1.assert.isNotNull(sut);
57
+ if (!sut) {
58
+ return;
59
+ }
60
+ chai_1.assert.lengthOf(sut.location.filters, 2);
61
+ const scoped = sut.location.filters[0];
62
+ chai_1.assert.isDefined(scoped);
63
+ chai_1.assert.equal(scoped === null || scoped === void 0 ? void 0 : scoped.type, "agencyCode");
64
+ chai_1.assert.equal(scoped === null || scoped === void 0 ? void 0 : scoped.enabled, true);
65
+ chai_1.assert.deepEqual(scoped === null || scoped === void 0 ? void 0 : scoped.values, ["AC1"]);
66
+ chai_1.assert.equal(scoped === null || scoped === void 0 ? void 0 : scoped.departmentId, "dept001");
67
+ const unscoped = sut.location.filters[1];
68
+ chai_1.assert.isDefined(unscoped);
69
+ chai_1.assert.equal(unscoped === null || unscoped === void 0 ? void 0 : unscoped.type, "agencyCode");
70
+ chai_1.assert.equal(unscoped === null || unscoped === void 0 ? void 0 : unscoped.enabled, true);
71
+ chai_1.assert.deepEqual(unscoped === null || unscoped === void 0 ? void 0 : unscoped.values, ["AC2"]);
72
+ chai_1.assert.equal(unscoped === null || unscoped === void 0 ? void 0 : unscoped.departmentId, "");
73
+ });
37
74
  });
38
75
  //# sourceMappingURL=partner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"partner.js","sourceRoot":"","sources":["../../src/test/partner.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,yCAAgE;AAChE,8BAA8B;AAC9B,mCAAmC;AACnC,iCAAgC;AAEhC,IAAA,oBAAQ,EAAC,SAAS,EAAE;IAClB,IAAI,MAAuB,EAAE,QAA0B,CAAC;IACxD,IAAI,QAA4B,CAAC;IACjC,IAAA,sBAAU,EAAC,KAAK;QACd,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAClB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAEtB,MAAM,IAAI,GAAG,IAAA,cAAU,EAAC;YACtB,QAAQ;SACT,CAAC,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QACxB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,IAAA,qBAAS,EAAC,KAAK;QACb,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,UAAU,EAAE,KAAK;;QAClB,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAE9B,aAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,aAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,aAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1C,aAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,aAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,aAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAA,QAAQ,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC;QAC/D,aAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAA,QAAQ,CAAC,QAAQ,0CAAE,aAAa,CAAC,CAAC;QAC/E,aAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAA,QAAQ,CAAC,QAAQ,0CAAE,oBAAoB,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"partner.js","sourceRoot":"","sources":["../../src/test/partner.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export interface ChecklistItemEvent {
2
2
  name?: unknown;
3
3
  neris_benchmark?: unknown;
4
4
  }
5
+ export declare function nerisBenchmarkLabel(nerisKey: string): string;
5
6
  export declare function buildChecklistMessage(checked: boolean, checklistItemEvent?: ChecklistItemEvent | null): string;
6
7
  export declare function buildIncidentChecklistMessage(addToIncident: boolean, checklistItemEvent?: ChecklistItemEvent | null): string;
7
8
  //# sourceMappingURL=checklist-item-event-message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-item-event-message.d.ts","sourceRoot":"","sources":["../src/checklist-item-event-message.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAQD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAW9G;AAID,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAO5H"}
1
+ {"version":3,"file":"checklist-item-event-message.d.ts","sourceRoot":"","sources":["../src/checklist-item-event-message.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5D;AAID,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAW9G;AAID,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAO5H"}
@@ -1 +1 @@
1
- {"version":3,"file":"partner.d.ts","sourceRoot":"","sources":["../../src/models/partner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,OAAO,EAEL,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAIL,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,OAAQ,SAAQ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAI;AAEzE,wBAA8B,aAAa,CAAC,QAAQ,EAAE,cAAc;;;;SA0InE;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,OAAO,CAAC;CAAI"}
1
+ {"version":3,"file":"partner.d.ts","sourceRoot":"","sources":["../../src/models/partner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,OAAO,EAEL,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAIL,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,OAAQ,SAAQ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAI;AAEzE,wBAA8B,aAAa,CAAC,QAAQ,EAAE,cAAc;;;;SA8InE;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,OAAO,CAAC;CAAI"}
@@ -3,6 +3,7 @@ export interface PartnerLocationFilter {
3
3
  type: string;
4
4
  enabled: boolean;
5
5
  values: string[];
6
+ departmentId: string;
6
7
  }
7
8
  export interface PartnerLocationType {
8
9
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"partner.d.ts","sourceRoot":"","sources":["../../src/types/partner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOjC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"partner.d.ts","sourceRoot":"","sources":["../../src/types/partner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;CACf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tabletcommand-backend-models",
3
- "version": "7.4.123",
3
+ "version": "7.4.125",
4
4
  "description": "Tablet Command Backend Models",
5
5
  "scripts": {
6
6
  "lint": "eslint src",
@@ -18,8 +18,8 @@
18
18
  "dependencies": {
19
19
  "debug": "^4.4.3",
20
20
  "lodash": "^4.18.1",
21
- "moment-timezone": "^0.6.3",
22
- "mongoose": "^8.24.4",
21
+ "moment-timezone": "^0.6.5",
22
+ "mongoose": "^8.24.5",
23
23
  "mongoose-lean-virtuals": "^2.1.0",
24
24
  "uuid": "~14.0.2"
25
25
  },
@@ -30,22 +30,22 @@
30
30
  "@types/del": "3.0.1",
31
31
  "@types/gulp": "4.0.18",
32
32
  "@types/lodash": "^4.17.25",
33
- "@types/node": "^24.13.4",
34
- "@typescript-eslint/eslint-plugin": "~8.70.0",
35
- "@typescript-eslint/parser": "~8.70.0",
36
- "chai": "^6.2.2",
37
- "cspell": "^10.3.2",
33
+ "@types/node": "^24.19.1",
34
+ "@typescript-eslint/eslint-plugin": "~8.71.1",
35
+ "@typescript-eslint/parser": "~8.71.1",
36
+ "chai": "^6.3.0",
37
+ "cspell": "^10.3.6",
38
38
  "del": "^8.0.1",
39
39
  "eslint": "^9.39.5",
40
40
  "eslint-plugin-promise": "^7.3.0",
41
- "eslint-plugin-security": "^4.0.1",
42
- "globals": "^17.12.0",
41
+ "eslint-plugin-security": "^4.2.0",
42
+ "globals": "^17.13.0",
43
43
  "gulp": "^5.0.1",
44
44
  "gulp-execa": "^8.0.1",
45
45
  "neostandard": "^0.13.0",
46
46
  "ts-node": "10.9.2",
47
- "tsx": "^4.23.13",
48
- "type-coverage": "^2.30.1",
47
+ "tsx": "^4.23.15",
48
+ "type-coverage": "^2.30.3",
49
49
  "typescript": "~5.9.3"
50
50
  },
51
51
  "typeCoverage": {
@@ -12,6 +12,14 @@ function eventString(value: unknown): string {
12
12
  return typeof value === "string" ? value : "";
13
13
  }
14
14
 
15
+ export function nerisBenchmarkLabel(nerisKey: string): string {
16
+ return nerisKey
17
+ .split(/[_\s]+/)
18
+ .filter((word) => word !== "")
19
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
20
+ .join(" ");
21
+ }
22
+
15
23
  // checklistItemChange: "Checked"/"Unchecked", with the item name and an
16
24
  // optional NERIS suffix when the event carries them.
17
25
  export function buildChecklistMessage(checked: boolean, checklistItemEvent?: ChecklistItemEvent | null): string {
@@ -22,7 +30,7 @@ export function buildChecklistMessage(checked: boolean, checklistItemEvent?: Che
22
30
  return prefix;
23
31
  }
24
32
  if (nerisKey !== "") {
25
- return `${prefix}: ${name} (NERIS: ${nerisKey})`;
33
+ return `${prefix}: ${name} (NERIS: ${nerisBenchmarkLabel(nerisKey)})`;
26
34
  }
27
35
  return `${prefix}: ${name}`;
28
36
  }
@@ -32,6 +32,10 @@ export default async function PartnerModule(mongoose: MongooseModule) {
32
32
  type: [String],
33
33
  default: [],
34
34
  },
35
+ departmentId: {
36
+ type: String,
37
+ default: "",
38
+ },
35
39
  }, {
36
40
  _id: false,
37
41
  id: false,
@@ -1,6 +1,7 @@
1
1
  import { assert } from "chai";
2
2
  import { describe, it } from "node:test";
3
3
  import * as m from "../checklist-item-event-message";
4
+ import { NerisBenchmarkType } from "../constants";
4
5
 
5
6
  describe("checklist-item-event-message", function() {
6
7
  describe("buildChecklistMessage", function() {
@@ -9,7 +10,7 @@ describe("checklist-item-event-message", function() {
9
10
  name: "Water On Fire",
10
11
  neris_benchmark: "time_water_on_fire",
11
12
  });
12
- assert.equal(message, "Checked: Water On Fire (NERIS: time_water_on_fire)");
13
+ assert.equal(message, "Checked: Water On Fire (NERIS: Time Water On Fire)");
13
14
  });
14
15
 
15
16
  it("formats Unchecked with name and NERIS suffix", function() {
@@ -17,7 +18,18 @@ describe("checklist-item-event-message", function() {
17
18
  name: "Water On Fire",
18
19
  neris_benchmark: "time_water_on_fire",
19
20
  });
20
- assert.equal(message, "Unchecked: Water On Fire (NERIS: time_water_on_fire)");
21
+ assert.equal(message, "Unchecked: Water On Fire (NERIS: Time Water On Fire)");
22
+ });
23
+
24
+ it("title-cases every NerisBenchmarkType key", function() {
25
+ assert.equal(
26
+ m.buildChecklistMessage(true, { name: "Fire Under Control", neris_benchmark: "time_fire_under_control" }),
27
+ "Checked: Fire Under Control (NERIS: Time Fire Under Control)"
28
+ );
29
+ assert.equal(
30
+ m.buildChecklistMessage(true, { name: "360", neris_benchmark: "time_360_completed" }),
31
+ "Checked: 360 (NERIS: Time 360 Completed)"
32
+ );
21
33
  });
22
34
 
23
35
  it("omits the NERIS suffix when neris_benchmark is absent or empty", function() {
@@ -38,6 +50,36 @@ describe("checklist-item-event-message", function() {
38
50
  });
39
51
  });
40
52
 
53
+ describe("nerisBenchmarkLabel", function() {
54
+ it("maps every NerisBenchmarkType value to a title-case label", function() {
55
+ const expected: Record<NerisBenchmarkType, string> = {
56
+ [NerisBenchmarkType.TimeCommandEstablished]: "Time Command Established",
57
+ [NerisBenchmarkType.Time360Completed]: "Time 360 Completed",
58
+ [NerisBenchmarkType.TimeWaterOnFire]: "Time Water On Fire",
59
+ [NerisBenchmarkType.TimeFireUnderControl]: "Time Fire Under Control",
60
+ [NerisBenchmarkType.TimeFireKnockedDown]: "Time Fire Knocked Down",
61
+ [NerisBenchmarkType.TimeSuppressionComplete]: "Time Suppression Complete",
62
+ [NerisBenchmarkType.TimePrimarySearchBegin]: "Time Primary Search Begin",
63
+ [NerisBenchmarkType.TimePrimarySearchComplete]: "Time Primary Search Complete",
64
+ };
65
+ for (const key of Object.values(NerisBenchmarkType)) {
66
+ assert.equal(m.nerisBenchmarkLabel(key), expected[key]);
67
+ }
68
+ });
69
+
70
+ it("normalizes uppercase and mixed-case input to title case", function() {
71
+ assert.equal(m.nerisBenchmarkLabel("TIME_WATER_ON_FIRE"), "Time Water On Fire");
72
+ assert.equal(m.nerisBenchmarkLabel("Time_fIRE_Under_CONTROL"), "Time Fire Under Control");
73
+ });
74
+
75
+ it("passes through values that are not snake_case keys", function() {
76
+ assert.equal(m.nerisBenchmarkLabel("100"), "100");
77
+ assert.equal(m.nerisBenchmarkLabel("Already Titled"), "Already Titled");
78
+ assert.equal(m.nerisBenchmarkLabel("__leading_and_trailing__"), "Leading And Trailing");
79
+ assert.equal(m.nerisBenchmarkLabel(""), "");
80
+ });
81
+ });
82
+
41
83
  describe("buildIncidentChecklistMessage", function() {
42
84
  it("formats Added/Removed with the checklist name", function() {
43
85
  assert.equal(m.buildIncidentChecklistMessage(true, { name: "Truck Pre-Trip" }), "Added checklist: Truck Pre-Trip");
@@ -35,4 +35,45 @@ describe("Partner", function() {
35
35
  assert.deepEqual(sut.location.departmentIds, testItem.location?.departmentIds);
36
36
  assert.equal(sut.location.includeVehicleStatus, testItem.location?.includeVehicleStatus);
37
37
  });
38
+
39
+ it("round-trips location filters including departmentId scope", async function() {
40
+ const partner: Partial<m.Partner> = {
41
+ ...testItem,
42
+ location: {
43
+ enabled: true,
44
+ departmentIds: testItem.location?.departmentIds ?? [],
45
+ includeVehicleStatus: false,
46
+ speedAsBinary: false,
47
+ useCadVisibility: false,
48
+ filters: [
49
+ { type: "agencyCode", enabled: true, values: ["AC1"], departmentId: "dept001" },
50
+ { type: "agencyCode", enabled: true, values: ["AC2"], departmentId: "" },
51
+ ],
52
+ },
53
+ };
54
+
55
+ const item = new models.Partner(partner);
56
+ const saved = await item.save();
57
+ const sut = await models.Partner.findById(saved._id);
58
+
59
+ assert.isNotNull(sut);
60
+ if (!sut) {
61
+ return;
62
+ }
63
+ assert.lengthOf(sut.location.filters, 2);
64
+
65
+ const scoped = sut.location.filters[0];
66
+ assert.isDefined(scoped);
67
+ assert.equal(scoped?.type, "agencyCode");
68
+ assert.equal(scoped?.enabled, true);
69
+ assert.deepEqual(scoped?.values, ["AC1"]);
70
+ assert.equal(scoped?.departmentId, "dept001");
71
+
72
+ const unscoped = sut.location.filters[1];
73
+ assert.isDefined(unscoped);
74
+ assert.equal(unscoped?.type, "agencyCode");
75
+ assert.equal(unscoped?.enabled, true);
76
+ assert.deepEqual(unscoped?.values, ["AC2"]);
77
+ assert.equal(unscoped?.departmentId, "");
78
+ });
38
79
  });
@@ -1,14 +1,10 @@
1
1
  import { Types } from "mongoose";
2
2
 
3
- // Versatile, open-ended filter: each entry declares what dimension it filters
4
- // on (`type`), whether it is active (`enabled`), and the allowed values for
5
- // that dimension (`values`). Adding a new filter dimension is a new array
6
- // entry, not a schema change. Consumers apply only the `type` values they
7
- // understand and ignore the rest.
8
3
  export interface PartnerLocationFilter {
9
4
  type: string,
10
5
  enabled: boolean,
11
6
  values: string[],
7
+ departmentId: string,
12
8
  }
13
9
 
14
10
  export interface PartnerLocationType {