tabletcommand-backend-models 7.4.112 → 7.4.113

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.
package/build/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.OrientationMarkerColorDefault = exports.ManagedIncidentPriorityDefault = exports.ManagedIncidentModeDefault = exports.IntegrationTypes = exports.UserStealthStatus = exports.ShareIncidentRuleKind = exports.NerisBenchmarkType = exports.LocationVisibility = exports.LocationSource = exports.LocationKindType = exports.IncidentFilterKind = exports.FireMapperLayers = exports.DroneProvider = exports.DepartmentReportOdometer = exports.AccountIndustry = exports.AccountCallerType = void 0;
17
+ exports.OrientationMarkerColorDefault = exports.ManagedIncidentPriorityDefault = exports.ManagedIncidentModeDefault = exports.DataSharingAgreementActions = exports.IntegrationTypes = exports.UserStealthStatus = exports.ShareIncidentRuleKind = exports.NerisBenchmarkType = exports.LocationVisibility = exports.LocationSource = exports.LocationKindType = exports.IncidentFilterKind = exports.FireMapperLayers = exports.DroneProvider = exports.DepartmentReportOdometer = exports.AccountIndustry = exports.AccountCallerType = void 0;
18
18
  exports.connect = connect;
19
19
  const lodash_1 = require("lodash");
20
20
  var constants_1 = require("./constants");
@@ -61,6 +61,7 @@ async function wireModels(mongoose) {
61
61
  ChecklistItem: await getModel(Promise.resolve().then(() => require("./models/checklist-item"))),
62
62
  CSVImport: await getModel(Promise.resolve().then(() => require("./models/csv-import"))),
63
63
  AudioStreamAuthentication: await getModel(Promise.resolve().then(() => require("./models/audio-stream-authentication"))),
64
+ DataSharingAgreement: await getModel(Promise.resolve().then(() => require("./models/data-sharing-agreement"))),
64
65
  Department: await getModel(Promise.resolve().then(() => require("./models/department"))),
65
66
  DeviceMapping: await getModel(Promise.resolve().then(() => require("./models/device-mapping"))),
66
67
  DroneConnection: await getModel(Promise.resolve().then(() => require("./models/drone-connection"))),
@@ -107,6 +108,8 @@ async function wireModels(mongoose) {
107
108
  __exportStar(require("./helpers"), exports);
108
109
  var department_1 = require("./types/department");
109
110
  Object.defineProperty(exports, "IntegrationTypes", { enumerable: true, get: function () { return department_1.IntegrationTypes; } });
111
+ var data_sharing_agreement_1 = require("./types/data-sharing-agreement");
112
+ Object.defineProperty(exports, "DataSharingAgreementActions", { enumerable: true, get: function () { return data_sharing_agreement_1.DataSharingAgreementActions; } });
110
113
  __exportStar(require("./checklist-item-event-message"), exports);
111
114
  // Export default vars
112
115
  var department_2 = require("./models/department");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = DataSharingAgreementModule;
4
+ const uuid = require("uuid");
5
+ const mongoose_lean_virtuals_1 = require("mongoose-lean-virtuals");
6
+ const helpers_1 = require("../helpers");
7
+ const data_sharing_agreement_1 = require("../types/data-sharing-agreement");
8
+ // Append-only legal record of data sharing sign-offs. Every signature, change and
9
+ // revocation inserts a new document; the collection IS the revision history.
10
+ //
11
+ // - No TTL index: records must never auto-purge. Removal only happens on a verified
12
+ // legal request, as a manual engineer-run operation never via an API.
13
+ // - Record fields are `immutable` so a loaded document cannot be re-saved with
14
+ // different content. This gives us a static timeline of events as they happen
15
+ async function DataSharingAgreementModule(mongoose) {
16
+ const { Schema } = mongoose;
17
+ const DataSharingVendorConsent = new Schema({
18
+ key: {
19
+ type: String,
20
+ required: true,
21
+ },
22
+ label: {
23
+ type: String,
24
+ default: "",
25
+ },
26
+ checked: {
27
+ type: Boolean,
28
+ default: false,
29
+ },
30
+ }, {
31
+ _id: false,
32
+ id: false,
33
+ });
34
+ const modelSchema = new Schema({
35
+ _id: {
36
+ type: Schema.Types.ObjectId,
37
+ auto: true,
38
+ },
39
+ uuid: {
40
+ type: String,
41
+ required: true,
42
+ default: uuid.v4,
43
+ immutable: true,
44
+ },
45
+ // Who / where
46
+ departmentId: {
47
+ type: String,
48
+ required: true,
49
+ immutable: true,
50
+ },
51
+ // Department.department at signing time (Using the value and not id on purpose)
52
+ departmentName: {
53
+ type: String,
54
+ default: "",
55
+ immutable: true,
56
+ },
57
+ // Unset for account-wide signatures
58
+ agencyId: {
59
+ type: Schema.Types.ObjectId,
60
+ ref: "Agency",
61
+ default: null,
62
+ immutable: true,
63
+ },
64
+ agencyName: {
65
+ type: String,
66
+ default: "",
67
+ immutable: true,
68
+ },
69
+ userId: {
70
+ type: String,
71
+ required: true,
72
+ immutable: true,
73
+ },
74
+ email: {
75
+ type: String,
76
+ required: true,
77
+ immutable: true,
78
+ },
79
+ // User.name at signing time
80
+ signerName: {
81
+ type: String,
82
+ default: "",
83
+ immutable: true,
84
+ },
85
+ // What they signed
86
+ agreementTitle: {
87
+ type: String,
88
+ required: true,
89
+ immutable: true,
90
+ },
91
+ // Versioned in service code and rolled out with deploys
92
+ agreementVersion: {
93
+ type: String,
94
+ required: true,
95
+ immutable: true,
96
+ },
97
+ // FULL text as displayed to the signer, stored verbatim, never a reference
98
+ agreementText: {
99
+ type: String,
100
+ required: true,
101
+ immutable: true,
102
+ },
103
+ action: {
104
+ type: String,
105
+ enum: data_sharing_agreement_1.DataSharingAgreementActions,
106
+ required: true,
107
+ immutable: true,
108
+ },
109
+ // Full checkbox state after this action
110
+ consents: {
111
+ type: [DataSharingVendorConsent],
112
+ default: [],
113
+ immutable: true,
114
+ },
115
+ // Evidence
116
+ remoteAddress: {
117
+ type: String,
118
+ default: "",
119
+ immutable: true,
120
+ },
121
+ userAgent: {
122
+ type: String,
123
+ default: "",
124
+ immutable: true,
125
+ },
126
+ appVersion: {
127
+ type: String,
128
+ default: "",
129
+ immutable: true,
130
+ },
131
+ // Signing timestamp, server-side
132
+ createdAt: {
133
+ type: Date,
134
+ default: helpers_1.currentDate,
135
+ immutable: true,
136
+ },
137
+ modified: {
138
+ type: Date,
139
+ default: helpers_1.currentDate,
140
+ },
141
+ }, {
142
+ autoIndex: false,
143
+ toJSON: {
144
+ virtuals: true,
145
+ versionKey: false,
146
+ },
147
+ });
148
+ // History (newest first) and "latest record" lookups per account
149
+ modelSchema.index({
150
+ departmentId: 1,
151
+ createdAt: -1,
152
+ }, {
153
+ name: "departmentId_1_createdAt_-1",
154
+ });
155
+ modelSchema.virtual("id").get(function () {
156
+ return this._id.toHexString();
157
+ });
158
+ modelSchema.plugin(mongoose_lean_virtuals_1.mongooseLeanVirtuals);
159
+ return mongoose.model("DataSharingAgreement", modelSchema, "massive_data_sharing_agreement", { overwriteModels: true });
160
+ }
161
+ //# sourceMappingURL=data-sharing-agreement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-sharing-agreement.js","sourceRoot":"","sources":["../../src/models/data-sharing-agreement.ts"],"names":[],"mappings":";;AAwBA,6CA2JC;AAlLD,6BAA6B;AAC7B,mEAA8D;AAE9D,wCAGoB;AAEpB,4EAIyC;AAIzC,kFAAkF;AAClF,6EAA6E;AAC7E,EAAE;AACF,oFAAoF;AACpF,yEAAyE;AACzE,+EAA+E;AAC/E,gFAAgF;AACjE,KAAK,UAAU,0BAA0B,CAAC,QAAwB;IAC/E,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,MAAM,wBAAwB,GAAG,IAAI,MAAM,CAA+B;QACxE,GAAG,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;SACf;QACD,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;SACZ;QACD,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK;SACf;KACF,EAAE;QACD,GAAG,EAAE,KAAK;QACV,EAAE,EAAE,KAAK;KACV,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,MAAM,CAAuB;QACnD,GAAG,EAAE;YACH,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC3B,IAAI,EAAE,IAAI;SACX;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,SAAS,EAAE,IAAI;SAChB;QAED,cAAc;QACd,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,gFAAgF;QAChF,cAAc,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;QACD,oCAAoC;QACpC,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC3B,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;SAChB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,4BAA4B;QAC5B,UAAU,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;QAED,mBAAmB;QACnB,cAAc,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,wDAAwD;QACxD,gBAAgB,EAAE;YAChB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,2EAA2E;QAC3E,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,oDAA2B;YACjC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,wCAAwC;QACxC,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,wBAAwB,CAAC;YAChC,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;QAED,WAAW;QACX,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;QAED,iCAAiC;QACjC,SAAS,EAAE;YACT,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,qBAAW;YACpB,SAAS,EAAE,IAAI;SAChB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,qBAAW;SACrB;KACF,EAAE;QACD,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB;KACF,CAAC,CAAC;IAEH,iEAAiE;IACjE,WAAW,CAAC,KAAK,CAAC;QAChB,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC,CAAC;KACd,EAAE;QACD,IAAI,EAAE,6BAA6B;KACpC,CAAC,CAAC;IAEH,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,MAAM,CAAC,6CAAoB,CAAC,CAAC;IAEzC,OAAO,QAAQ,CAAC,KAAK,CAAuB,sBAAsB,EAAE,WAAW,EAAE,gCAAgC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAChJ,CAAC"}
@@ -39,6 +39,7 @@ const config = require("./config");
39
39
  chai_1.assert.isFunction(models.Checklist, "Missing Checklist");
40
40
  chai_1.assert.isFunction(models.ChecklistItem, "Missing ChecklistItem");
41
41
  chai_1.assert.isFunction(models.CSVImport, "Missing CSVImport");
42
+ chai_1.assert.isFunction(models.DataSharingAgreement, "Missing DataSharingAgreement");
42
43
  chai_1.assert.isFunction(models.Department, "Missing Department");
43
44
  chai_1.assert.isFunction(models.DeviceMapping, "Missing DeviceMapping");
44
45
  chai_1.assert.isFunction(models.Esri, "Missing Esri");
@@ -1 +1 @@
1
- {"version":3,"file":"0index.js","sourceRoot":"","sources":["../../src/test/0index.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,yCAAgE;AAChE,8BAA8B;AAC9B,mCAAmC;AAEnC,IAAA,oBAAQ,EAAC,SAAS,EAAE;IAClB,IAAI,MAAuB,EAAE,QAA0B,CAAC;IACxD,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;IACxB,CAAC,CAAC,CAAC;IACH,IAAA,qBAAS,EAAC,KAAK;QACb,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,WAAW,EAAE;QACd,8BAA8B;QAC9B,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC/C,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC7D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC3D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC7D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACvE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;QACzE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QACjE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;QAC/D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC3D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACvE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,CAAC,CAAC;QACrF,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACvE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QACjE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAAC;QAC/E,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QACjE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC3D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QACjE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC/C,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC3D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QACnE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QACjE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QACnE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAAC;QAC/E,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACvE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;QACzE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACvE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACrE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACvD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACrD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACrE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC;QAC7E,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACrD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACrD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACrE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QACnE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACrE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACrD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC7D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACrE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACrD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC/C,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;QAC/D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,CAAC;QACnF,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QACjE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACvD,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC/C,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC3D,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACvE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACvE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"0index.js","sourceRoot":"","sources":["../../src/test/0index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const node_test_1 = require("node:test");
5
+ const m = require("../index");
6
+ const config = require("./config");
7
+ const mock_1 = require("./mock");
8
+ (0, node_test_1.describe)("DataSharingAgreement", function () {
9
+ let models, mongoose;
10
+ let testItem;
11
+ (0, node_test_1.beforeEach)(async function () {
12
+ const c = await m.connect(config.url);
13
+ models = c.models;
14
+ mongoose = c.mongoose;
15
+ testItem = (0, mock_1.default)({ mongoose }).dataSharingAgreement;
16
+ await models.DataSharingAgreement.deleteMany({});
17
+ });
18
+ (0, node_test_1.afterEach)(async function () {
19
+ await models.DataSharingAgreement.deleteMany({});
20
+ await mongoose.disconnect();
21
+ });
22
+ (0, node_test_1.it)("is saved and reads back every field", async function () {
23
+ var _a, _b, _c, _d, _e, _f, _g;
24
+ const sut = await new models.DataSharingAgreement(testItem).save();
25
+ chai_1.assert.isNotNull(sut._id);
26
+ chai_1.assert.equal(sut.id, sut._id.toHexString());
27
+ chai_1.assert.isString(sut.uuid);
28
+ chai_1.assert.isTrue(sut.uuid !== "");
29
+ chai_1.assert.equal(sut.departmentId, testItem.departmentId);
30
+ chai_1.assert.equal(sut.departmentName, testItem.departmentName);
31
+ chai_1.assert.equal((_a = sut.agencyId) === null || _a === void 0 ? void 0 : _a.toHexString(), testItem.agencyId.toHexString());
32
+ chai_1.assert.equal(sut.agencyName, testItem.agencyName);
33
+ chai_1.assert.equal(sut.userId, testItem.userId);
34
+ chai_1.assert.equal(sut.email, testItem.email);
35
+ chai_1.assert.equal(sut.signerName, testItem.signerName);
36
+ chai_1.assert.equal(sut.agreementTitle, testItem.agreementTitle);
37
+ chai_1.assert.equal(sut.agreementVersion, testItem.agreementVersion);
38
+ chai_1.assert.equal(sut.agreementText, testItem.agreementText);
39
+ chai_1.assert.equal(sut.action, "signed");
40
+ chai_1.assert.equal(sut.consents.length, 2);
41
+ chai_1.assert.equal((_b = sut.consents[0]) === null || _b === void 0 ? void 0 : _b.key, "shareAVL");
42
+ chai_1.assert.equal((_c = sut.consents[0]) === null || _c === void 0 ? void 0 : _c.label, (_d = testItem.consents[0]) === null || _d === void 0 ? void 0 : _d.label);
43
+ chai_1.assert.isTrue((_e = sut.consents[0]) === null || _e === void 0 ? void 0 : _e.checked);
44
+ chai_1.assert.equal((_f = sut.consents[1]) === null || _f === void 0 ? void 0 : _f.key, "intterra");
45
+ chai_1.assert.isFalse((_g = sut.consents[1]) === null || _g === void 0 ? void 0 : _g.checked);
46
+ chai_1.assert.equal(sut.remoteAddress, testItem.remoteAddress);
47
+ chai_1.assert.equal(sut.userAgent, testItem.userAgent);
48
+ chai_1.assert.equal(sut.appVersion, testItem.appVersion);
49
+ chai_1.assert.equal(sut.createdAt.toISOString(), testItem.createdAt.toISOString());
50
+ chai_1.assert.instanceOf(sut.modified, Date);
51
+ });
52
+ (0, node_test_1.it)("defaults optional fields", async function () {
53
+ const sut = await new models.DataSharingAgreement({
54
+ departmentId: "d1",
55
+ userId: "u1",
56
+ email: "u1@example.com",
57
+ agreementTitle: "Data Sharing Addendum",
58
+ agreementVersion: "2026-08-1",
59
+ agreementText: "text",
60
+ action: "revoked",
61
+ }).save();
62
+ chai_1.assert.isString(sut.uuid);
63
+ chai_1.assert.isTrue(sut.uuid !== "");
64
+ chai_1.assert.equal(sut.departmentName, "");
65
+ chai_1.assert.isNull(sut.agencyId);
66
+ chai_1.assert.equal(sut.agencyName, "");
67
+ chai_1.assert.equal(sut.signerName, "");
68
+ chai_1.assert.deepEqual(sut.consents, []);
69
+ chai_1.assert.equal(sut.remoteAddress, "");
70
+ chai_1.assert.equal(sut.userAgent, "");
71
+ chai_1.assert.equal(sut.appVersion, "");
72
+ chai_1.assert.instanceOf(sut.createdAt, Date);
73
+ chai_1.assert.instanceOf(sut.modified, Date);
74
+ });
75
+ (0, node_test_1.it)("defaults consent label and checked", async function () {
76
+ var _a, _b, _c;
77
+ const sut = await new models.DataSharingAgreement({
78
+ ...testItem,
79
+ consents: [{ key: "firstArriving" }],
80
+ }).save();
81
+ chai_1.assert.equal(sut.consents.length, 1);
82
+ chai_1.assert.equal((_a = sut.consents[0]) === null || _a === void 0 ? void 0 : _a.key, "firstArriving");
83
+ chai_1.assert.equal((_b = sut.consents[0]) === null || _b === void 0 ? void 0 : _b.label, "");
84
+ chai_1.assert.isFalse((_c = sut.consents[0]) === null || _c === void 0 ? void 0 : _c.checked);
85
+ });
86
+ (0, node_test_1.it)("requires the legal-record fields", async function () {
87
+ const required = [
88
+ "departmentId",
89
+ "userId",
90
+ "email",
91
+ "agreementTitle",
92
+ "agreementVersion",
93
+ "agreementText",
94
+ "action",
95
+ ];
96
+ for (const field of required) {
97
+ const item = { ...testItem };
98
+ delete item[field];
99
+ try {
100
+ await new models.DataSharingAgreement(item).save();
101
+ chai_1.assert.isFalse(true, `Expecting missing ${field} to fail validation.`);
102
+ }
103
+ catch (error) {
104
+ chai_1.assert.match(error.message, new RegExp(`${field}.*required`, "i"));
105
+ }
106
+ }
107
+ });
108
+ (0, node_test_1.it)("rejects a consent without a key", async function () {
109
+ try {
110
+ await new models.DataSharingAgreement({
111
+ ...testItem,
112
+ consents: [{ label: "No key", checked: true }],
113
+ }).save();
114
+ chai_1.assert.isFalse(true, "Expecting consent without key to fail validation.");
115
+ }
116
+ catch (error) {
117
+ chai_1.assert.match(error.message, /key.*required/i);
118
+ }
119
+ });
120
+ (0, node_test_1.it)("only accepts known actions", async function () {
121
+ for (const action of m.DataSharingAgreementActions) {
122
+ const sut = await new models.DataSharingAgreement({ ...testItem, action }).save();
123
+ chai_1.assert.equal(sut.action, action);
124
+ }
125
+ try {
126
+ await new models.DataSharingAgreement({ ...testItem, action: "deleted" }).save();
127
+ chai_1.assert.isFalse(true, "Expecting unknown action to fail validation.");
128
+ }
129
+ catch (error) {
130
+ chai_1.assert.match(error.message, /action/);
131
+ chai_1.assert.match(error.message, /enum/i);
132
+ }
133
+ });
134
+ (0, node_test_1.it)("does not change record fields on a re-save", async function () {
135
+ const saved = await new models.DataSharingAgreement(testItem).save();
136
+ const loaded = await models.DataSharingAgreement.findById(saved._id);
137
+ chai_1.assert.isNotNull(loaded);
138
+ if (!loaded) {
139
+ return;
140
+ }
141
+ loaded.set({
142
+ departmentId: "other-department",
143
+ action: "revoked",
144
+ agreementText: "tampered",
145
+ agreementVersion: "9999-01-1",
146
+ consents: [],
147
+ remoteAddress: "10.0.0.1",
148
+ createdAt: new Date("2000-01-01T00:00:00.000Z"),
149
+ });
150
+ await loaded.save();
151
+ const reloaded = await models.DataSharingAgreement.findById(saved._id);
152
+ chai_1.assert.isNotNull(reloaded);
153
+ chai_1.assert.equal(reloaded === null || reloaded === void 0 ? void 0 : reloaded.departmentId, testItem.departmentId);
154
+ chai_1.assert.equal(reloaded === null || reloaded === void 0 ? void 0 : reloaded.action, "signed");
155
+ chai_1.assert.equal(reloaded === null || reloaded === void 0 ? void 0 : reloaded.agreementText, testItem.agreementText);
156
+ chai_1.assert.equal(reloaded === null || reloaded === void 0 ? void 0 : reloaded.agreementVersion, testItem.agreementVersion);
157
+ chai_1.assert.equal(reloaded === null || reloaded === void 0 ? void 0 : reloaded.consents.length, 2);
158
+ chai_1.assert.equal(reloaded === null || reloaded === void 0 ? void 0 : reloaded.remoteAddress, testItem.remoteAddress);
159
+ chai_1.assert.equal(reloaded === null || reloaded === void 0 ? void 0 : reloaded.createdAt.toISOString(), testItem.createdAt.toISOString());
160
+ });
161
+ (0, node_test_1.it)("keeps every record as history, newest first", async function () {
162
+ var _a, _b, _c, _d, _e;
163
+ const signed = await new models.DataSharingAgreement({
164
+ ...testItem,
165
+ action: "signed",
166
+ createdAt: new Date("2026-08-20T17:30:00.000Z"),
167
+ }).save();
168
+ const updated = await new models.DataSharingAgreement({
169
+ ...testItem,
170
+ action: "updated",
171
+ consents: [
172
+ { key: "shareAVL", label: "AVL Sharing (CAL FIRE Op Area)", checked: true },
173
+ { key: "intterra", label: "Intterra", checked: true },
174
+ ],
175
+ createdAt: new Date("2026-08-21T09:00:00.000Z"),
176
+ }).save();
177
+ const revoked = await new models.DataSharingAgreement({
178
+ ...testItem,
179
+ action: "revoked",
180
+ consents: [
181
+ { key: "shareAVL", label: "AVL Sharing (CAL FIRE Op Area)", checked: false },
182
+ { key: "intterra", label: "Intterra", checked: false },
183
+ ],
184
+ createdAt: new Date("2026-08-22T09:00:00.000Z"),
185
+ }).save();
186
+ // Another department must not leak into the history
187
+ await new models.DataSharingAgreement({
188
+ ...testItem,
189
+ departmentId: "other-department",
190
+ }).save();
191
+ const history = await models.DataSharingAgreement.find({
192
+ departmentId: testItem.departmentId,
193
+ }).sort({ createdAt: -1 });
194
+ chai_1.assert.equal(history.length, 3);
195
+ chai_1.assert.equal((_a = history[0]) === null || _a === void 0 ? void 0 : _a.id, revoked.id);
196
+ chai_1.assert.equal((_b = history[1]) === null || _b === void 0 ? void 0 : _b.id, updated.id);
197
+ chai_1.assert.equal((_c = history[2]) === null || _c === void 0 ? void 0 : _c.id, signed.id);
198
+ chai_1.assert.isFalse((_d = history[0]) === null || _d === void 0 ? void 0 : _d.consents.every((c) => c.checked));
199
+ chai_1.assert.isTrue((_e = history[1]) === null || _e === void 0 ? void 0 : _e.consents.every((c) => c.checked));
200
+ });
201
+ (0, node_test_1.it)("declares only the history index and no TTL index", async function () {
202
+ await models.DataSharingAgreement.syncIndexes();
203
+ const indexes = await models.DataSharingAgreement.collection.indexes();
204
+ const names = indexes.map((i) => i.name).sort();
205
+ chai_1.assert.deepEqual(names, ["_id_", "departmentId_1_createdAt_-1"]);
206
+ const history = indexes.find((i) => i.name === "departmentId_1_createdAt_-1");
207
+ chai_1.assert.deepEqual(history === null || history === void 0 ? void 0 : history.key, { departmentId: 1, createdAt: -1 });
208
+ for (const index of indexes) {
209
+ chai_1.assert.isUndefined(index.expireAfterSeconds, `Unexpected TTL on ${index.name}`);
210
+ }
211
+ });
212
+ (0, node_test_1.it)("serializes with id and without version key", async function () {
213
+ const sut = await new models.DataSharingAgreement(testItem).save();
214
+ const json = sut.toJSON();
215
+ chai_1.assert.equal(json.id, sut._id.toHexString());
216
+ chai_1.assert.isUndefined(json.__v);
217
+ chai_1.assert.equal(json.agreementText, testItem.agreementText);
218
+ });
219
+ });
220
+ //# sourceMappingURL=data-sharing-agreement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-sharing-agreement.js","sourceRoot":"","sources":["../../src/test/data-sharing-agreement.ts"],"names":[],"mappings":"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"}
@@ -973,6 +973,27 @@ function mockModule(dependencies) {
973
973
  watchDutyCreatedAt: new Date("2025-08-01T10:00:00.000Z"),
974
974
  watchDutyModifiedAt: new Date("2025-08-02T11:00:00.000Z"),
975
975
  };
976
+ const dataSharingAgreement = {
977
+ departmentId: "5195426cc4e016a988000965",
978
+ departmentName: "Test Department",
979
+ agencyId: new dependencies.mongoose.Types.ObjectId("5195426cc4e016a988000966"),
980
+ agencyName: "Test Agency",
981
+ userId: "5195426cc4e016a988000967",
982
+ email: "signer@example.com",
983
+ signerName: "Signer Person",
984
+ agreementTitle: "Data Sharing Addendum",
985
+ agreementVersion: "2026-08-1",
986
+ agreementText: "By checking a vendor below you authorize Tablet Command to share this account's data with that vendor.",
987
+ action: "signed",
988
+ consents: [
989
+ { key: "shareAVL", label: "AVL Sharing (CAL FIRE Op Area)", checked: true },
990
+ { key: "intterra", label: "Intterra", checked: false },
991
+ ],
992
+ remoteAddress: "203.0.113.10",
993
+ userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Safari/605.1.15",
994
+ appVersion: "1.2.3",
995
+ createdAt: new Date("2026-08-20T17:30:00.000Z"),
996
+ };
976
997
  const audioStreamAuthentication = {
977
998
  _id: new mongoose.Types.ObjectId(),
978
999
  name: "test-stream",
@@ -1601,6 +1622,7 @@ function mockModule(dependencies) {
1601
1622
  checklist,
1602
1623
  checklistItem,
1603
1624
  csvImport,
1625
+ dataSharingAgreement,
1604
1626
  department,
1605
1627
  deviceMapping,
1606
1628
  deviceMappingWithWhiteSpaces,