@rise-maritime/keelson-js 0.6.0-alpha.232.dev.1 → 0.6.0-alpha.255.dev.1
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/dist/index.d.ts +8 -8
- package/dist/interfaces/Route.d.ts +24 -0
- package/dist/interfaces/Route.js +57 -2
- package/dist/interfaces/ScenarioControl.d.ts +3 -96
- package/dist/interfaces/ScenarioControl.js +37 -394
- package/dist/interfaces/VehicleSimulatorControl.d.ts +83 -0
- package/dist/interfaces/VehicleSimulatorControl.js +293 -1
- package/dist/interfaces/serviceRegistry.d.ts +8 -8
- package/dist/payloads/ChecklistEvent.d.ts +178 -0
- package/dist/payloads/ChecklistEvent.js +539 -0
- package/dist/payloads/ChecklistEvidence.d.ts +79 -0
- package/dist/payloads/ChecklistEvidence.js +287 -0
- package/dist/payloads/ChecklistPresence.d.ts +68 -0
- package/dist/payloads/ChecklistPresence.js +286 -0
- package/dist/payloads/ChecklistProcedure.d.ts +81 -0
- package/dist/payloads/ChecklistProcedure.js +364 -0
- package/dist/payloads/ChecklistState.d.ts +283 -0
- package/dist/payloads/ChecklistState.js +1100 -0
- package/dist/payloads/EnvelopeExceedance.d.ts +216 -0
- package/dist/payloads/EnvelopeExceedance.js +461 -0
- package/dist/payloads/Route.d.ts +24 -0
- package/dist/payloads/Route.js +57 -2
- package/dist/payloads/RouteExecution.d.ts +81 -1
- package/dist/payloads/RouteExecution.js +215 -1
- package/dist/payloads/ScenarioEvent.d.ts +90 -0
- package/dist/payloads/ScenarioEvent.js +294 -0
- package/dist/payloads/ScenarioTickAck.d.ts +95 -0
- package/dist/payloads/ScenarioTickAck.js +239 -0
- package/dist/payloads/index.foxglove.d.ts +1 -1
- package/dist/payloads/index.foxglove.js +1 -1
- package/dist/payloads/index.google.protobuf.d.ts +1 -1
- package/dist/payloads/index.google.protobuf.js +1 -1
- package/dist/payloads/index.keelson.d.ts +9 -1
- package/dist/payloads/index.keelson.js +9 -1
- package/dist/qos.json +13 -1
- package/dist/subjects.json +9 -1
- package/package.json +1 -1
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
|
+
// versions:
|
|
4
|
+
// protoc-gen-ts_proto v2.6.1
|
|
5
|
+
// protoc v6.30.2
|
|
6
|
+
// source: ChecklistEvent.proto
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ChecklistEvent = exports.checklistEvent_TimeFieldToJSON = exports.checklistEvent_TimeFieldFromJSON = exports.ChecklistEvent_TimeField = exports.checklistEvent_EventTypeToJSON = exports.checklistEvent_EventTypeFromJSON = exports.ChecklistEvent_EventType = void 0;
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
|
+
const ChecklistEvidence_1 = require("./ChecklistEvidence");
|
|
12
|
+
const timestamp_1 = require("./google/protobuf/timestamp");
|
|
13
|
+
const typeRegistry_1 = require("./typeRegistry");
|
|
14
|
+
var ChecklistEvent_EventType;
|
|
15
|
+
(function (ChecklistEvent_EventType) {
|
|
16
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_UNKNOWN"] = 0] = "EVENT_TYPE_UNKNOWN";
|
|
17
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_CHECKLIST_OPENED"] = 1] = "EVENT_TYPE_CHECKLIST_OPENED";
|
|
18
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_ITEM_STARTED"] = 2] = "EVENT_TYPE_ITEM_STARTED";
|
|
19
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_ITEM_COMPLETED"] = 3] = "EVENT_TYPE_ITEM_COMPLETED";
|
|
20
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_ITEM_REVERTED"] = 4] = "EVENT_TYPE_ITEM_REVERTED";
|
|
21
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_NOTE_ADDED"] = 5] = "EVENT_TYPE_NOTE_ADDED";
|
|
22
|
+
/**
|
|
23
|
+
* EVENT_TYPE_ITEM_FLAGGED - An issue raised on an item, and the moment it was cleared.
|
|
24
|
+
*
|
|
25
|
+
* Both carry the flag they act on in `reference_id` — the `flag_id`, which is the union key
|
|
26
|
+
* ChecklistState.ItemState.flags merges on. Without it a receiver folding one of these into
|
|
27
|
+
* `flags` has nothing to match against and can only append, so resolving a flag would add a
|
|
28
|
+
* second open one instead of closing the first.
|
|
29
|
+
*
|
|
30
|
+
* A publisher of FLAG_RESOLVED must ALSO write the resolution triple on the ItemFlag —
|
|
31
|
+
* `resolved_at`, `resolved_by`, `resolution` — because that is the half that survives in a
|
|
32
|
+
* snapshot. The event is the live path; a station bootstrapping later sees only the state.
|
|
33
|
+
* Those three are absorbing and settled earliest-wins, per protocol-specification.md §7.2: a
|
|
34
|
+
* peer that never saw the resolution must not reopen it, and two stations genuinely clearing
|
|
35
|
+
* one flag are decided by the earlier time as a value, never by whose snapshot landed last.
|
|
36
|
+
*/
|
|
37
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_ITEM_FLAGGED"] = 6] = "EVENT_TYPE_ITEM_FLAGGED";
|
|
38
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_FLAG_RESOLVED"] = 7] = "EVENT_TYPE_FLAG_RESOLVED";
|
|
39
|
+
/**
|
|
40
|
+
* EVENT_TYPE_PROCEDURE_STARTED - The run boundary markers. STARTED moves a run to ACTIVE (from PLANNED, or straight from
|
|
41
|
+
* creation); COMPLETED is the sign-off once every required item is done.
|
|
42
|
+
*/
|
|
43
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_PROCEDURE_STARTED"] = 8] = "EVENT_TYPE_PROCEDURE_STARTED";
|
|
44
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_PROCEDURE_COMPLETED"] = 9] = "EVENT_TYPE_PROCEDURE_COMPLETED";
|
|
45
|
+
/** EVENT_TYPE_RUN_PLANNED - A run queued for later, with or without a due time. */
|
|
46
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_RUN_PLANNED"] = 10] = "EVENT_TYPE_RUN_PLANNED";
|
|
47
|
+
/** EVENT_TYPE_RUN_ABANDONED - A run stopped without completing. The reason is required and travels in `detail`. */
|
|
48
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_RUN_ABANDONED"] = 11] = "EVENT_TYPE_RUN_ABANDONED";
|
|
49
|
+
/**
|
|
50
|
+
* EVENT_TYPE_EVIDENCE_ATTACHED - A photo attached to an item. The metadata rides in `evidence`; the bytes are published
|
|
51
|
+
* separately to `checklist_evidence/{evidence_id}`.
|
|
52
|
+
*/
|
|
53
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_EVIDENCE_ATTACHED"] = 12] = "EVENT_TYPE_EVIDENCE_ATTACHED";
|
|
54
|
+
/**
|
|
55
|
+
* EVENT_TYPE_TIME_SET - A timestamp corrected after the fact — "I finished at 14:45, I am only ticking it now".
|
|
56
|
+
*
|
|
57
|
+
* A dedicated type rather than a backdated ITEM_COMPLETED, because ITEM_COMPLETED resolves
|
|
58
|
+
* conflicts earliest-wins: a completion moved LATER hits that guard on every station, logs a
|
|
59
|
+
* "confirmed" row, and changes nothing. The guard is right for genuine concurrent completion
|
|
60
|
+
* and must not be relaxed for this.
|
|
61
|
+
*
|
|
62
|
+
* The corrected instant travels in `corrected_time` and the field it corrects in
|
|
63
|
+
* `corrected_field`. See those fields for what a receiver does with a publisher that
|
|
64
|
+
* predates them.
|
|
65
|
+
*
|
|
66
|
+
* Applying it patches ONLY that timestamp — status and author are untouched — and it is
|
|
67
|
+
* recorded as its own kind of entry. In a safety record a corrected time that renders
|
|
68
|
+
* identically to an original one is a claim nobody can audit.
|
|
69
|
+
*/
|
|
70
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_TIME_SET"] = 13] = "EVENT_TYPE_TIME_SET";
|
|
71
|
+
/**
|
|
72
|
+
* EVENT_TYPE_ITEM_REOPENED - An item taken back out of "done", with the reason in `detail`.
|
|
73
|
+
*
|
|
74
|
+
* Publishers have been spelling this EVENT_TYPE_ITEM_REVERTED = 4 with the reason in `detail`,
|
|
75
|
+
* because adding an enum value costs a release cycle. The behaviour and the audit trail were
|
|
76
|
+
* right; only the name misled — "reverted" reads as undoing a mistake, while reopening is a
|
|
77
|
+
* deliberate, reasoned act that a supervisor performs on a record that already stands.
|
|
78
|
+
*
|
|
79
|
+
* EVENT_TYPE_ITEM_REVERTED stays valid and is deliberately NOT reserved: recordings and
|
|
80
|
+
* durable snapshots already contain 4, and they must keep decoding. Treat the two as the same
|
|
81
|
+
* act; prefer this one for anything published from now on.
|
|
82
|
+
*/
|
|
83
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["EVENT_TYPE_ITEM_REOPENED"] = 15] = "EVENT_TYPE_ITEM_REOPENED";
|
|
84
|
+
ChecklistEvent_EventType[ChecklistEvent_EventType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
85
|
+
})(ChecklistEvent_EventType || (exports.ChecklistEvent_EventType = ChecklistEvent_EventType = {}));
|
|
86
|
+
function checklistEvent_EventTypeFromJSON(object) {
|
|
87
|
+
switch (object) {
|
|
88
|
+
case 0:
|
|
89
|
+
case "EVENT_TYPE_UNKNOWN":
|
|
90
|
+
return ChecklistEvent_EventType.EVENT_TYPE_UNKNOWN;
|
|
91
|
+
case 1:
|
|
92
|
+
case "EVENT_TYPE_CHECKLIST_OPENED":
|
|
93
|
+
return ChecklistEvent_EventType.EVENT_TYPE_CHECKLIST_OPENED;
|
|
94
|
+
case 2:
|
|
95
|
+
case "EVENT_TYPE_ITEM_STARTED":
|
|
96
|
+
return ChecklistEvent_EventType.EVENT_TYPE_ITEM_STARTED;
|
|
97
|
+
case 3:
|
|
98
|
+
case "EVENT_TYPE_ITEM_COMPLETED":
|
|
99
|
+
return ChecklistEvent_EventType.EVENT_TYPE_ITEM_COMPLETED;
|
|
100
|
+
case 4:
|
|
101
|
+
case "EVENT_TYPE_ITEM_REVERTED":
|
|
102
|
+
return ChecklistEvent_EventType.EVENT_TYPE_ITEM_REVERTED;
|
|
103
|
+
case 5:
|
|
104
|
+
case "EVENT_TYPE_NOTE_ADDED":
|
|
105
|
+
return ChecklistEvent_EventType.EVENT_TYPE_NOTE_ADDED;
|
|
106
|
+
case 6:
|
|
107
|
+
case "EVENT_TYPE_ITEM_FLAGGED":
|
|
108
|
+
return ChecklistEvent_EventType.EVENT_TYPE_ITEM_FLAGGED;
|
|
109
|
+
case 7:
|
|
110
|
+
case "EVENT_TYPE_FLAG_RESOLVED":
|
|
111
|
+
return ChecklistEvent_EventType.EVENT_TYPE_FLAG_RESOLVED;
|
|
112
|
+
case 8:
|
|
113
|
+
case "EVENT_TYPE_PROCEDURE_STARTED":
|
|
114
|
+
return ChecklistEvent_EventType.EVENT_TYPE_PROCEDURE_STARTED;
|
|
115
|
+
case 9:
|
|
116
|
+
case "EVENT_TYPE_PROCEDURE_COMPLETED":
|
|
117
|
+
return ChecklistEvent_EventType.EVENT_TYPE_PROCEDURE_COMPLETED;
|
|
118
|
+
case 10:
|
|
119
|
+
case "EVENT_TYPE_RUN_PLANNED":
|
|
120
|
+
return ChecklistEvent_EventType.EVENT_TYPE_RUN_PLANNED;
|
|
121
|
+
case 11:
|
|
122
|
+
case "EVENT_TYPE_RUN_ABANDONED":
|
|
123
|
+
return ChecklistEvent_EventType.EVENT_TYPE_RUN_ABANDONED;
|
|
124
|
+
case 12:
|
|
125
|
+
case "EVENT_TYPE_EVIDENCE_ATTACHED":
|
|
126
|
+
return ChecklistEvent_EventType.EVENT_TYPE_EVIDENCE_ATTACHED;
|
|
127
|
+
case 13:
|
|
128
|
+
case "EVENT_TYPE_TIME_SET":
|
|
129
|
+
return ChecklistEvent_EventType.EVENT_TYPE_TIME_SET;
|
|
130
|
+
case 15:
|
|
131
|
+
case "EVENT_TYPE_ITEM_REOPENED":
|
|
132
|
+
return ChecklistEvent_EventType.EVENT_TYPE_ITEM_REOPENED;
|
|
133
|
+
case -1:
|
|
134
|
+
case "UNRECOGNIZED":
|
|
135
|
+
default:
|
|
136
|
+
return ChecklistEvent_EventType.UNRECOGNIZED;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.checklistEvent_EventTypeFromJSON = checklistEvent_EventTypeFromJSON;
|
|
140
|
+
function checklistEvent_EventTypeToJSON(object) {
|
|
141
|
+
switch (object) {
|
|
142
|
+
case ChecklistEvent_EventType.EVENT_TYPE_UNKNOWN:
|
|
143
|
+
return "EVENT_TYPE_UNKNOWN";
|
|
144
|
+
case ChecklistEvent_EventType.EVENT_TYPE_CHECKLIST_OPENED:
|
|
145
|
+
return "EVENT_TYPE_CHECKLIST_OPENED";
|
|
146
|
+
case ChecklistEvent_EventType.EVENT_TYPE_ITEM_STARTED:
|
|
147
|
+
return "EVENT_TYPE_ITEM_STARTED";
|
|
148
|
+
case ChecklistEvent_EventType.EVENT_TYPE_ITEM_COMPLETED:
|
|
149
|
+
return "EVENT_TYPE_ITEM_COMPLETED";
|
|
150
|
+
case ChecklistEvent_EventType.EVENT_TYPE_ITEM_REVERTED:
|
|
151
|
+
return "EVENT_TYPE_ITEM_REVERTED";
|
|
152
|
+
case ChecklistEvent_EventType.EVENT_TYPE_NOTE_ADDED:
|
|
153
|
+
return "EVENT_TYPE_NOTE_ADDED";
|
|
154
|
+
case ChecklistEvent_EventType.EVENT_TYPE_ITEM_FLAGGED:
|
|
155
|
+
return "EVENT_TYPE_ITEM_FLAGGED";
|
|
156
|
+
case ChecklistEvent_EventType.EVENT_TYPE_FLAG_RESOLVED:
|
|
157
|
+
return "EVENT_TYPE_FLAG_RESOLVED";
|
|
158
|
+
case ChecklistEvent_EventType.EVENT_TYPE_PROCEDURE_STARTED:
|
|
159
|
+
return "EVENT_TYPE_PROCEDURE_STARTED";
|
|
160
|
+
case ChecklistEvent_EventType.EVENT_TYPE_PROCEDURE_COMPLETED:
|
|
161
|
+
return "EVENT_TYPE_PROCEDURE_COMPLETED";
|
|
162
|
+
case ChecklistEvent_EventType.EVENT_TYPE_RUN_PLANNED:
|
|
163
|
+
return "EVENT_TYPE_RUN_PLANNED";
|
|
164
|
+
case ChecklistEvent_EventType.EVENT_TYPE_RUN_ABANDONED:
|
|
165
|
+
return "EVENT_TYPE_RUN_ABANDONED";
|
|
166
|
+
case ChecklistEvent_EventType.EVENT_TYPE_EVIDENCE_ATTACHED:
|
|
167
|
+
return "EVENT_TYPE_EVIDENCE_ATTACHED";
|
|
168
|
+
case ChecklistEvent_EventType.EVENT_TYPE_TIME_SET:
|
|
169
|
+
return "EVENT_TYPE_TIME_SET";
|
|
170
|
+
case ChecklistEvent_EventType.EVENT_TYPE_ITEM_REOPENED:
|
|
171
|
+
return "EVENT_TYPE_ITEM_REOPENED";
|
|
172
|
+
case ChecklistEvent_EventType.UNRECOGNIZED:
|
|
173
|
+
default:
|
|
174
|
+
return "UNRECOGNIZED";
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.checklistEvent_EventTypeToJSON = checklistEvent_EventTypeToJSON;
|
|
178
|
+
/**
|
|
179
|
+
* Which timestamp an EVENT_TYPE_TIME_SET corrects.
|
|
180
|
+
*
|
|
181
|
+
* An enum rather than the field's name as a string, because a string target is matched by
|
|
182
|
+
* every consumer against its own spelling: a typo is not an error, it is a silent no-op that
|
|
183
|
+
* logs an audited correction and patches nothing.
|
|
184
|
+
*/
|
|
185
|
+
var ChecklistEvent_TimeField;
|
|
186
|
+
(function (ChecklistEvent_TimeField) {
|
|
187
|
+
ChecklistEvent_TimeField[ChecklistEvent_TimeField["TIME_FIELD_UNKNOWN"] = 0] = "TIME_FIELD_UNKNOWN";
|
|
188
|
+
ChecklistEvent_TimeField[ChecklistEvent_TimeField["TIME_FIELD_ITEM_STARTED_AT"] = 1] = "TIME_FIELD_ITEM_STARTED_AT";
|
|
189
|
+
ChecklistEvent_TimeField[ChecklistEvent_TimeField["TIME_FIELD_ITEM_COMPLETED_AT"] = 2] = "TIME_FIELD_ITEM_COMPLETED_AT";
|
|
190
|
+
/** TIME_FIELD_RUN_STARTED_AT - The run's own start. Ignores `item_id`. */
|
|
191
|
+
ChecklistEvent_TimeField[ChecklistEvent_TimeField["TIME_FIELD_RUN_STARTED_AT"] = 3] = "TIME_FIELD_RUN_STARTED_AT";
|
|
192
|
+
ChecklistEvent_TimeField[ChecklistEvent_TimeField["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
193
|
+
})(ChecklistEvent_TimeField || (exports.ChecklistEvent_TimeField = ChecklistEvent_TimeField = {}));
|
|
194
|
+
function checklistEvent_TimeFieldFromJSON(object) {
|
|
195
|
+
switch (object) {
|
|
196
|
+
case 0:
|
|
197
|
+
case "TIME_FIELD_UNKNOWN":
|
|
198
|
+
return ChecklistEvent_TimeField.TIME_FIELD_UNKNOWN;
|
|
199
|
+
case 1:
|
|
200
|
+
case "TIME_FIELD_ITEM_STARTED_AT":
|
|
201
|
+
return ChecklistEvent_TimeField.TIME_FIELD_ITEM_STARTED_AT;
|
|
202
|
+
case 2:
|
|
203
|
+
case "TIME_FIELD_ITEM_COMPLETED_AT":
|
|
204
|
+
return ChecklistEvent_TimeField.TIME_FIELD_ITEM_COMPLETED_AT;
|
|
205
|
+
case 3:
|
|
206
|
+
case "TIME_FIELD_RUN_STARTED_AT":
|
|
207
|
+
return ChecklistEvent_TimeField.TIME_FIELD_RUN_STARTED_AT;
|
|
208
|
+
case -1:
|
|
209
|
+
case "UNRECOGNIZED":
|
|
210
|
+
default:
|
|
211
|
+
return ChecklistEvent_TimeField.UNRECOGNIZED;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
exports.checklistEvent_TimeFieldFromJSON = checklistEvent_TimeFieldFromJSON;
|
|
215
|
+
function checklistEvent_TimeFieldToJSON(object) {
|
|
216
|
+
switch (object) {
|
|
217
|
+
case ChecklistEvent_TimeField.TIME_FIELD_UNKNOWN:
|
|
218
|
+
return "TIME_FIELD_UNKNOWN";
|
|
219
|
+
case ChecklistEvent_TimeField.TIME_FIELD_ITEM_STARTED_AT:
|
|
220
|
+
return "TIME_FIELD_ITEM_STARTED_AT";
|
|
221
|
+
case ChecklistEvent_TimeField.TIME_FIELD_ITEM_COMPLETED_AT:
|
|
222
|
+
return "TIME_FIELD_ITEM_COMPLETED_AT";
|
|
223
|
+
case ChecklistEvent_TimeField.TIME_FIELD_RUN_STARTED_AT:
|
|
224
|
+
return "TIME_FIELD_RUN_STARTED_AT";
|
|
225
|
+
case ChecklistEvent_TimeField.UNRECOGNIZED:
|
|
226
|
+
default:
|
|
227
|
+
return "UNRECOGNIZED";
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
exports.checklistEvent_TimeFieldToJSON = checklistEvent_TimeFieldToJSON;
|
|
231
|
+
function createBaseChecklistEvent() {
|
|
232
|
+
return {
|
|
233
|
+
$type: "keelson.ChecklistEvent",
|
|
234
|
+
timestamp: undefined,
|
|
235
|
+
eventId: "",
|
|
236
|
+
eventType: 0,
|
|
237
|
+
operatorId: "",
|
|
238
|
+
username: "",
|
|
239
|
+
role: "",
|
|
240
|
+
rocSite: "",
|
|
241
|
+
procedureId: "",
|
|
242
|
+
itemId: "",
|
|
243
|
+
detail: "",
|
|
244
|
+
referenceId: "",
|
|
245
|
+
runId: "",
|
|
246
|
+
evidence: undefined,
|
|
247
|
+
correctedTime: undefined,
|
|
248
|
+
correctedField: 0,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
exports.ChecklistEvent = {
|
|
252
|
+
$type: "keelson.ChecklistEvent",
|
|
253
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
254
|
+
if (message.timestamp !== undefined) {
|
|
255
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(10).fork()).join();
|
|
256
|
+
}
|
|
257
|
+
if (message.eventId !== "") {
|
|
258
|
+
writer.uint32(18).string(message.eventId);
|
|
259
|
+
}
|
|
260
|
+
if (message.eventType !== 0) {
|
|
261
|
+
writer.uint32(24).int32(message.eventType);
|
|
262
|
+
}
|
|
263
|
+
if (message.operatorId !== "") {
|
|
264
|
+
writer.uint32(34).string(message.operatorId);
|
|
265
|
+
}
|
|
266
|
+
if (message.username !== "") {
|
|
267
|
+
writer.uint32(42).string(message.username);
|
|
268
|
+
}
|
|
269
|
+
if (message.role !== "") {
|
|
270
|
+
writer.uint32(50).string(message.role);
|
|
271
|
+
}
|
|
272
|
+
if (message.rocSite !== "") {
|
|
273
|
+
writer.uint32(58).string(message.rocSite);
|
|
274
|
+
}
|
|
275
|
+
if (message.procedureId !== "") {
|
|
276
|
+
writer.uint32(66).string(message.procedureId);
|
|
277
|
+
}
|
|
278
|
+
if (message.itemId !== "") {
|
|
279
|
+
writer.uint32(74).string(message.itemId);
|
|
280
|
+
}
|
|
281
|
+
if (message.detail !== "") {
|
|
282
|
+
writer.uint32(82).string(message.detail);
|
|
283
|
+
}
|
|
284
|
+
if (message.referenceId !== "") {
|
|
285
|
+
writer.uint32(90).string(message.referenceId);
|
|
286
|
+
}
|
|
287
|
+
if (message.runId !== "") {
|
|
288
|
+
writer.uint32(98).string(message.runId);
|
|
289
|
+
}
|
|
290
|
+
if (message.evidence !== undefined) {
|
|
291
|
+
ChecklistEvidence_1.ChecklistItemEvidence.encode(message.evidence, writer.uint32(106).fork()).join();
|
|
292
|
+
}
|
|
293
|
+
if (message.correctedTime !== undefined) {
|
|
294
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.correctedTime), writer.uint32(114).fork()).join();
|
|
295
|
+
}
|
|
296
|
+
if (message.correctedField !== 0) {
|
|
297
|
+
writer.uint32(120).int32(message.correctedField);
|
|
298
|
+
}
|
|
299
|
+
return writer;
|
|
300
|
+
},
|
|
301
|
+
decode(input, length) {
|
|
302
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
303
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
304
|
+
const message = createBaseChecklistEvent();
|
|
305
|
+
while (reader.pos < end) {
|
|
306
|
+
const tag = reader.uint32();
|
|
307
|
+
switch (tag >>> 3) {
|
|
308
|
+
case 1: {
|
|
309
|
+
if (tag !== 10) {
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
case 2: {
|
|
316
|
+
if (tag !== 18) {
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
message.eventId = reader.string();
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
case 3: {
|
|
323
|
+
if (tag !== 24) {
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
message.eventType = reader.int32();
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
case 4: {
|
|
330
|
+
if (tag !== 34) {
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
message.operatorId = reader.string();
|
|
334
|
+
continue;
|
|
335
|
+
}
|
|
336
|
+
case 5: {
|
|
337
|
+
if (tag !== 42) {
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
message.username = reader.string();
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
case 6: {
|
|
344
|
+
if (tag !== 50) {
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
message.role = reader.string();
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
case 7: {
|
|
351
|
+
if (tag !== 58) {
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
message.rocSite = reader.string();
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
case 8: {
|
|
358
|
+
if (tag !== 66) {
|
|
359
|
+
break;
|
|
360
|
+
}
|
|
361
|
+
message.procedureId = reader.string();
|
|
362
|
+
continue;
|
|
363
|
+
}
|
|
364
|
+
case 9: {
|
|
365
|
+
if (tag !== 74) {
|
|
366
|
+
break;
|
|
367
|
+
}
|
|
368
|
+
message.itemId = reader.string();
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
case 10: {
|
|
372
|
+
if (tag !== 82) {
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
message.detail = reader.string();
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
case 11: {
|
|
379
|
+
if (tag !== 90) {
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
message.referenceId = reader.string();
|
|
383
|
+
continue;
|
|
384
|
+
}
|
|
385
|
+
case 12: {
|
|
386
|
+
if (tag !== 98) {
|
|
387
|
+
break;
|
|
388
|
+
}
|
|
389
|
+
message.runId = reader.string();
|
|
390
|
+
continue;
|
|
391
|
+
}
|
|
392
|
+
case 13: {
|
|
393
|
+
if (tag !== 106) {
|
|
394
|
+
break;
|
|
395
|
+
}
|
|
396
|
+
message.evidence = ChecklistEvidence_1.ChecklistItemEvidence.decode(reader, reader.uint32());
|
|
397
|
+
continue;
|
|
398
|
+
}
|
|
399
|
+
case 14: {
|
|
400
|
+
if (tag !== 114) {
|
|
401
|
+
break;
|
|
402
|
+
}
|
|
403
|
+
message.correctedTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
406
|
+
case 15: {
|
|
407
|
+
if (tag !== 120) {
|
|
408
|
+
break;
|
|
409
|
+
}
|
|
410
|
+
message.correctedField = reader.int32();
|
|
411
|
+
continue;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
417
|
+
reader.skip(tag & 7);
|
|
418
|
+
}
|
|
419
|
+
return message;
|
|
420
|
+
},
|
|
421
|
+
fromJSON(object) {
|
|
422
|
+
return {
|
|
423
|
+
$type: exports.ChecklistEvent.$type,
|
|
424
|
+
timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,
|
|
425
|
+
eventId: isSet(object.eventId) ? globalThis.String(object.eventId) : "",
|
|
426
|
+
eventType: isSet(object.eventType) ? checklistEvent_EventTypeFromJSON(object.eventType) : 0,
|
|
427
|
+
operatorId: isSet(object.operatorId) ? globalThis.String(object.operatorId) : "",
|
|
428
|
+
username: isSet(object.username) ? globalThis.String(object.username) : "",
|
|
429
|
+
role: isSet(object.role) ? globalThis.String(object.role) : "",
|
|
430
|
+
rocSite: isSet(object.rocSite) ? globalThis.String(object.rocSite) : "",
|
|
431
|
+
procedureId: isSet(object.procedureId) ? globalThis.String(object.procedureId) : "",
|
|
432
|
+
itemId: isSet(object.itemId) ? globalThis.String(object.itemId) : "",
|
|
433
|
+
detail: isSet(object.detail) ? globalThis.String(object.detail) : "",
|
|
434
|
+
referenceId: isSet(object.referenceId) ? globalThis.String(object.referenceId) : "",
|
|
435
|
+
runId: isSet(object.runId) ? globalThis.String(object.runId) : "",
|
|
436
|
+
evidence: isSet(object.evidence) ? ChecklistEvidence_1.ChecklistItemEvidence.fromJSON(object.evidence) : undefined,
|
|
437
|
+
correctedTime: isSet(object.correctedTime) ? fromJsonTimestamp(object.correctedTime) : undefined,
|
|
438
|
+
correctedField: isSet(object.correctedField) ? checklistEvent_TimeFieldFromJSON(object.correctedField) : 0,
|
|
439
|
+
};
|
|
440
|
+
},
|
|
441
|
+
toJSON(message) {
|
|
442
|
+
const obj = {};
|
|
443
|
+
if (message.timestamp !== undefined) {
|
|
444
|
+
obj.timestamp = message.timestamp.toISOString();
|
|
445
|
+
}
|
|
446
|
+
if (message.eventId !== "") {
|
|
447
|
+
obj.eventId = message.eventId;
|
|
448
|
+
}
|
|
449
|
+
if (message.eventType !== 0) {
|
|
450
|
+
obj.eventType = checklistEvent_EventTypeToJSON(message.eventType);
|
|
451
|
+
}
|
|
452
|
+
if (message.operatorId !== "") {
|
|
453
|
+
obj.operatorId = message.operatorId;
|
|
454
|
+
}
|
|
455
|
+
if (message.username !== "") {
|
|
456
|
+
obj.username = message.username;
|
|
457
|
+
}
|
|
458
|
+
if (message.role !== "") {
|
|
459
|
+
obj.role = message.role;
|
|
460
|
+
}
|
|
461
|
+
if (message.rocSite !== "") {
|
|
462
|
+
obj.rocSite = message.rocSite;
|
|
463
|
+
}
|
|
464
|
+
if (message.procedureId !== "") {
|
|
465
|
+
obj.procedureId = message.procedureId;
|
|
466
|
+
}
|
|
467
|
+
if (message.itemId !== "") {
|
|
468
|
+
obj.itemId = message.itemId;
|
|
469
|
+
}
|
|
470
|
+
if (message.detail !== "") {
|
|
471
|
+
obj.detail = message.detail;
|
|
472
|
+
}
|
|
473
|
+
if (message.referenceId !== "") {
|
|
474
|
+
obj.referenceId = message.referenceId;
|
|
475
|
+
}
|
|
476
|
+
if (message.runId !== "") {
|
|
477
|
+
obj.runId = message.runId;
|
|
478
|
+
}
|
|
479
|
+
if (message.evidence !== undefined) {
|
|
480
|
+
obj.evidence = ChecklistEvidence_1.ChecklistItemEvidence.toJSON(message.evidence);
|
|
481
|
+
}
|
|
482
|
+
if (message.correctedTime !== undefined) {
|
|
483
|
+
obj.correctedTime = message.correctedTime.toISOString();
|
|
484
|
+
}
|
|
485
|
+
if (message.correctedField !== 0) {
|
|
486
|
+
obj.correctedField = checklistEvent_TimeFieldToJSON(message.correctedField);
|
|
487
|
+
}
|
|
488
|
+
return obj;
|
|
489
|
+
},
|
|
490
|
+
create(base) {
|
|
491
|
+
return exports.ChecklistEvent.fromPartial(base ?? {});
|
|
492
|
+
},
|
|
493
|
+
fromPartial(object) {
|
|
494
|
+
const message = createBaseChecklistEvent();
|
|
495
|
+
message.timestamp = object.timestamp ?? undefined;
|
|
496
|
+
message.eventId = object.eventId ?? "";
|
|
497
|
+
message.eventType = object.eventType ?? 0;
|
|
498
|
+
message.operatorId = object.operatorId ?? "";
|
|
499
|
+
message.username = object.username ?? "";
|
|
500
|
+
message.role = object.role ?? "";
|
|
501
|
+
message.rocSite = object.rocSite ?? "";
|
|
502
|
+
message.procedureId = object.procedureId ?? "";
|
|
503
|
+
message.itemId = object.itemId ?? "";
|
|
504
|
+
message.detail = object.detail ?? "";
|
|
505
|
+
message.referenceId = object.referenceId ?? "";
|
|
506
|
+
message.runId = object.runId ?? "";
|
|
507
|
+
message.evidence = (object.evidence !== undefined && object.evidence !== null)
|
|
508
|
+
? ChecklistEvidence_1.ChecklistItemEvidence.fromPartial(object.evidence)
|
|
509
|
+
: undefined;
|
|
510
|
+
message.correctedTime = object.correctedTime ?? undefined;
|
|
511
|
+
message.correctedField = object.correctedField ?? 0;
|
|
512
|
+
return message;
|
|
513
|
+
},
|
|
514
|
+
};
|
|
515
|
+
typeRegistry_1.messageTypeRegistry.set(exports.ChecklistEvent.$type, exports.ChecklistEvent);
|
|
516
|
+
function toTimestamp(date) {
|
|
517
|
+
const seconds = Math.trunc(date.getTime() / 1000);
|
|
518
|
+
const nanos = (date.getTime() % 1000) * 1000000;
|
|
519
|
+
return { $type: "google.protobuf.Timestamp", seconds, nanos };
|
|
520
|
+
}
|
|
521
|
+
function fromTimestamp(t) {
|
|
522
|
+
let millis = (t.seconds || 0) * 1000;
|
|
523
|
+
millis += (t.nanos || 0) / 1000000;
|
|
524
|
+
return new globalThis.Date(millis);
|
|
525
|
+
}
|
|
526
|
+
function fromJsonTimestamp(o) {
|
|
527
|
+
if (o instanceof globalThis.Date) {
|
|
528
|
+
return o;
|
|
529
|
+
}
|
|
530
|
+
else if (typeof o === "string") {
|
|
531
|
+
return new globalThis.Date(o);
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
function isSet(value) {
|
|
538
|
+
return value !== null && value !== undefined;
|
|
539
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
/**
|
|
3
|
+
* A photo attached to a checklist item as evidence that a check was actually performed.
|
|
4
|
+
*
|
|
5
|
+
* METADATA ONLY. The image bytes live on their own key — `checklist_evidence/{evidence_id}`,
|
|
6
|
+
* carrying a `foxglove.CompressedImage` — and this travels inside `ChecklistState.ItemState` and
|
|
7
|
+
* `ChecklistEvent`. The split is not tidiness: a ChecklistState snapshot is republished every 30
|
|
8
|
+
* seconds by every station holding an active run, so bytes here would put megabytes on the wire
|
|
9
|
+
* twice a minute, forever, into a durable store. `ChecklistState.items_snapshot` carries the same
|
|
10
|
+
* warning for the same reason.
|
|
11
|
+
*
|
|
12
|
+
* A receiver renders a tile from this alone. Fetching the bytes is a separate, lazy, one-shot read
|
|
13
|
+
* — which is why `byte_size` and the dimensions are here: a station on a poor link decides whether
|
|
14
|
+
* to fetch, and the grid does not reflow as images land.
|
|
15
|
+
*/
|
|
16
|
+
export interface ChecklistItemEvidence {
|
|
17
|
+
$type: "keelson.ChecklistItemEvidence";
|
|
18
|
+
/**
|
|
19
|
+
* Globally unique, and the last token of the key the bytes live on. Single token by
|
|
20
|
+
* construction, so the router's `.../checklist_evidence/*` storage covers it.
|
|
21
|
+
*/
|
|
22
|
+
evidenceId: string;
|
|
23
|
+
/**
|
|
24
|
+
* What the operator says this shows. Optional but strongly encouraged: a photo with no caption
|
|
25
|
+
* is evidence of something nobody can name later.
|
|
26
|
+
*/
|
|
27
|
+
caption: string;
|
|
28
|
+
/** When the image was TAKEN, which is not necessarily when it was attached. */
|
|
29
|
+
capturedAt: Date | undefined;
|
|
30
|
+
author: string;
|
|
31
|
+
authorSite: string;
|
|
32
|
+
/**
|
|
33
|
+
* Full media type, e.g. "image/jpeg". Drives the Blob the receiver builds, and is echoed into
|
|
34
|
+
* the CompressedImage's own `format` so a recovered blob is self-describing.
|
|
35
|
+
*/
|
|
36
|
+
mediaType: string;
|
|
37
|
+
byteSize: number;
|
|
38
|
+
/** So a thumbnail can reserve its space before the bytes arrive. */
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
/**
|
|
42
|
+
* "Operator uploaded a photo" and "live camera still at 14:32" are different evidentiary
|
|
43
|
+
* claims, and a safety record should not flatten them into one.
|
|
44
|
+
*/
|
|
45
|
+
source: ChecklistItemEvidence_Source;
|
|
46
|
+
}
|
|
47
|
+
export declare enum ChecklistItemEvidence_Source {
|
|
48
|
+
SOURCE_UNKNOWN = 0,
|
|
49
|
+
/** SOURCE_FILE - Chosen from the operator's device — on a phone or tablet this is the camera. */
|
|
50
|
+
SOURCE_FILE = 1,
|
|
51
|
+
/** SOURCE_CAMERA - A still grabbed from a live vessel camera feed at the moment of capture. */
|
|
52
|
+
SOURCE_CAMERA = 2,
|
|
53
|
+
/** SOURCE_CHART - The chart as it stood when the check was made. */
|
|
54
|
+
SOURCE_CHART = 3,
|
|
55
|
+
UNRECOGNIZED = -1
|
|
56
|
+
}
|
|
57
|
+
export declare function checklistItemEvidence_SourceFromJSON(object: any): ChecklistItemEvidence_Source;
|
|
58
|
+
export declare function checklistItemEvidence_SourceToJSON(object: ChecklistItemEvidence_Source): string;
|
|
59
|
+
export declare const ChecklistItemEvidence: MessageFns<ChecklistItemEvidence, "keelson.ChecklistItemEvidence">;
|
|
60
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
61
|
+
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
62
|
+
[K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
|
|
63
|
+
} : Partial<T>;
|
|
64
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
65
|
+
type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
66
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
67
|
+
} & {
|
|
68
|
+
[K in Exclude<keyof I, KeysOfUnion<P> | "$type">]: never;
|
|
69
|
+
};
|
|
70
|
+
interface MessageFns<T, V extends string> {
|
|
71
|
+
readonly $type: V;
|
|
72
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
73
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
74
|
+
fromJSON(object: any): T;
|
|
75
|
+
toJSON(message: T): unknown;
|
|
76
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
77
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
78
|
+
}
|
|
79
|
+
export {};
|