@rise-maritime/keelson-js 0.5.3 → 0.6.0-alpha.202.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 +524 -1
- package/dist/index.js +114 -5
- package/dist/index.test.js +57 -0
- package/dist/interfaces/AlarmAck.d.ts +62 -0
- package/dist/interfaces/AlarmAck.js +218 -0
- package/dist/interfaces/Configurable.d.ts +24 -18
- package/dist/interfaces/Configurable.js +24 -22
- package/dist/interfaces/Coordinate.d.ts +38 -0
- package/dist/interfaces/Coordinate.js +82 -0
- package/dist/interfaces/ErrorResponse.d.ts +1 -1
- package/dist/interfaces/ErrorResponse.js +1 -1
- package/dist/interfaces/MavlinkCommand.d.ts +24 -18
- package/dist/interfaces/MavlinkCommand.js +24 -22
- package/dist/interfaces/Mission.d.ts +128 -0
- package/dist/interfaces/Mission.js +800 -0
- package/dist/interfaces/NetworkPingPong.d.ts +16 -16
- package/dist/interfaces/NetworkPingPong.js +16 -16
- package/dist/interfaces/ReplayControl.d.ts +72 -30
- package/dist/interfaces/ReplayControl.js +72 -58
- package/dist/interfaces/Route.d.ts +640 -0
- package/dist/interfaces/Route.js +4180 -0
- package/dist/interfaces/RoutePlanner.d.ts +152 -0
- package/dist/interfaces/RoutePlanner.js +268 -0
- package/dist/interfaces/ScenarioCheckpoint.d.ts +154 -0
- package/dist/interfaces/ScenarioCheckpoint.js +694 -0
- package/dist/interfaces/ScenarioControl.d.ts +144 -0
- package/dist/interfaces/ScenarioControl.js +552 -0
- package/dist/interfaces/Severity.d.ts +22 -0
- package/dist/interfaces/Severity.js +72 -0
- package/dist/interfaces/SimulationControl.d.ts +69 -0
- package/dist/interfaces/SimulationControl.js +153 -0
- package/dist/interfaces/Subscriber.d.ts +24 -18
- package/dist/interfaces/Subscriber.js +24 -22
- package/dist/interfaces/VehicleCommon.d.ts +1 -32
- package/dist/interfaces/VehicleCommon.js +2 -74
- package/dist/interfaces/VehicleControl.d.ts +34 -28
- package/dist/interfaces/VehicleControl.js +34 -22
- package/dist/interfaces/VehicleGeofence.d.ts +26 -19
- package/dist/interfaces/VehicleGeofence.js +40 -37
- package/dist/interfaces/VehicleLifecycle.d.ts +32 -20
- package/dist/interfaces/VehicleLifecycle.js +32 -28
- package/dist/interfaces/VehicleMission.d.ts +42 -97
- package/dist/interfaces/VehicleMission.js +41 -696
- package/dist/interfaces/VehicleNavigation.d.ts +30 -24
- package/dist/interfaces/VehicleNavigation.js +30 -22
- package/dist/interfaces/VehicleParam.d.ts +48 -24
- package/dist/interfaces/VehicleParam.js +48 -40
- package/dist/interfaces/VehicleSimulatorControl.d.ts +57 -0
- package/dist/interfaces/VehicleSimulatorControl.js +155 -0
- package/dist/interfaces/WHEPProxy.d.ts +16 -16
- package/dist/interfaces/WHEPProxy.js +16 -16
- package/dist/interfaces/foxglove/GeoJSON.d.ts +27 -0
- package/dist/interfaces/foxglove/GeoJSON.js +65 -0
- package/dist/interfaces/foxglove/LocationFix.d.ts +49 -0
- package/dist/interfaces/foxglove/LocationFix.js +246 -0
- package/dist/interfaces/google/protobuf/any.d.ts +144 -0
- package/dist/interfaces/google/protobuf/any.js +107 -0
- package/dist/interfaces/google/protobuf/duration.d.ts +99 -0
- package/dist/interfaces/google/protobuf/duration.js +92 -0
- package/dist/interfaces/serviceRegistry.d.ts +520 -0
- package/dist/interfaces/serviceRegistry.js +40 -0
- package/dist/interfaces.json +19 -0
- package/dist/payloads/Alarm.d.ts +7 -12
- package/dist/payloads/Alarm.js +4 -54
- package/dist/payloads/ChecklistEvent.d.ts +152 -0
- package/dist/payloads/ChecklistEvent.js +524 -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 +178 -0
- package/dist/payloads/ChecklistState.js +838 -0
- package/dist/payloads/CommandAuthority.d.ts +82 -0
- package/dist/payloads/CommandAuthority.js +364 -0
- package/dist/payloads/Coordinate.d.ts +39 -0
- package/dist/payloads/Coordinate.js +85 -0
- package/dist/payloads/EntityHealth.d.ts +9 -0
- package/dist/payloads/EntityHealth.js +14 -0
- package/dist/payloads/Mission.d.ts +137 -0
- package/dist/payloads/Mission.js +826 -0
- package/dist/payloads/OperationalAuthority.d.ts +172 -5
- package/dist/payloads/OperationalAuthority.js +525 -6
- package/dist/payloads/Route.d.ts +662 -0
- package/dist/payloads/Route.js +4289 -0
- package/dist/payloads/RouteChangeEvent.d.ts +42 -0
- package/dist/payloads/RouteChangeEvent.js +223 -0
- package/dist/payloads/RouteEditAuthority.d.ts +87 -0
- package/dist/payloads/RouteEditAuthority.js +380 -0
- package/dist/payloads/RouteExecution.d.ts +64 -0
- package/dist/payloads/RouteExecution.js +310 -0
- package/dist/payloads/ScenarioStatus.d.ts +160 -0
- package/dist/payloads/ScenarioStatus.js +654 -0
- package/dist/payloads/Severity.d.ts +13 -6
- package/dist/payloads/Severity.js +30 -18
- package/dist/payloads/SimulationStatus.d.ts +3 -4
- package/dist/payloads/SimulationStatus.js +12 -18
- package/dist/payloads/TestObjectStatus.d.ts +154 -0
- package/dist/payloads/TestObjectStatus.js +580 -0
- package/dist/payloads/VesselType.d.ts +2 -1
- package/dist/payloads/VesselType.js +1 -1
- package/dist/payloads/Voyage.d.ts +154 -0
- package/dist/payloads/Voyage.js +866 -0
- package/dist/payloads/WarrantRecord.d.ts +168 -0
- package/dist/payloads/WarrantRecord.js +781 -0
- package/dist/payloads/foxglove/CompressedPointCloud.d.ts +37 -0
- package/dist/payloads/foxglove/CompressedPointCloud.js +185 -0
- package/dist/payloads/google/protobuf/any.d.ts +145 -0
- package/dist/payloads/google/protobuf/any.js +110 -0
- package/dist/payloads/google/protobuf/empty.d.ts +34 -0
- package/dist/payloads/google/protobuf/empty.js +50 -0
- package/dist/payloads/index.foxglove.d.ts +1 -0
- package/dist/payloads/index.foxglove.js +1 -0
- package/dist/payloads/index.google.protobuf.d.ts +2 -0
- package/dist/payloads/index.google.protobuf.js +2 -0
- package/dist/payloads/index.keelson.d.ts +17 -1
- package/dist/payloads/index.keelson.js +17 -1
- package/dist/qos.json +95 -0
- package/dist/subjects.json +38 -1
- package/package.json +2 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
export interface CommandAuthority {
|
|
3
|
+
$type: "keelson.CommandAuthority";
|
|
4
|
+
/**
|
|
5
|
+
* The vessel whose conn this message refers to. Naming is deliberately not
|
|
6
|
+
* "entity_id": authority is held over a vessel, while the Keelson entity in
|
|
7
|
+
* the key expression may be a connector or gateway acting for it.
|
|
8
|
+
*/
|
|
9
|
+
vesselId: string;
|
|
10
|
+
/** Identity of the controlling operator+site, e.g. "ted@ROC-1". */
|
|
11
|
+
controllerId: string;
|
|
12
|
+
/** Free-form site label ("ROC-1", "vessel-bridge"). */
|
|
13
|
+
controllerSite: string;
|
|
14
|
+
/**
|
|
15
|
+
* Random token (16 random bytes, hex-encoded). Subscribers use the token to
|
|
16
|
+
* filter out their own publications and to validate that a release
|
|
17
|
+
* originates from the current holder.
|
|
18
|
+
*/
|
|
19
|
+
token: string;
|
|
20
|
+
/**
|
|
21
|
+
* Lease window, IN THE HOLDER'S CLOCK.
|
|
22
|
+
*
|
|
23
|
+
* The holder's own view of its lease: display, logging, diagnostics. A
|
|
24
|
+
* receiver MUST NOT decide expiry by comparing expires_at against its own
|
|
25
|
+
* clock (protocol specification §6.5.1).
|
|
26
|
+
*/
|
|
27
|
+
grantedAt: Date | undefined;
|
|
28
|
+
expiresAt: Date | undefined;
|
|
29
|
+
lastHeartbeat: Date | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* THE LEASE CONTRACT. This is what receivers arm on: on every accepted
|
|
32
|
+
* message a receiver sets its deadline at (local receipt + lease_ttl_seconds)
|
|
33
|
+
* and lapses the lease when its own clock passes it.
|
|
34
|
+
*
|
|
35
|
+
* A duration is the only lease quantity that survives two sites disagreeing
|
|
36
|
+
* about what time it is. Comparing expires_at instead, a station running a
|
|
37
|
+
* few seconds fast lapses a live lease early and may take the conn while the
|
|
38
|
+
* current holder still believes it has it — both stations correct by their
|
|
39
|
+
* own clock, and nothing in the system detecting the overlap. For an
|
|
40
|
+
* interlock in front of actuation that is the failure that matters.
|
|
41
|
+
*/
|
|
42
|
+
leaseTtlSeconds: number;
|
|
43
|
+
/** The holder's refresh cadence. Informational. */
|
|
44
|
+
heartbeatIntervalSeconds: number;
|
|
45
|
+
/**
|
|
46
|
+
* Set true on graceful release. A released=true message MUST carry the same
|
|
47
|
+
* token as the most recent grant for the receiver to accept it.
|
|
48
|
+
*/
|
|
49
|
+
released: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface CommandRequest {
|
|
52
|
+
$type: "keelson.CommandRequest";
|
|
53
|
+
vesselId: string;
|
|
54
|
+
/** Identity of the would-be commander. */
|
|
55
|
+
requesterId: string;
|
|
56
|
+
requesterSite: string;
|
|
57
|
+
requestedAt: Date | undefined;
|
|
58
|
+
/** Human-readable reason ("watch handover", "bridge unresponsive", ...). */
|
|
59
|
+
reason: string;
|
|
60
|
+
}
|
|
61
|
+
export declare const CommandAuthority: MessageFns<CommandAuthority, "keelson.CommandAuthority">;
|
|
62
|
+
export declare const CommandRequest: MessageFns<CommandRequest, "keelson.CommandRequest">;
|
|
63
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
64
|
+
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 {} ? {
|
|
65
|
+
[K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
|
|
66
|
+
} : Partial<T>;
|
|
67
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
68
|
+
type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
69
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
70
|
+
} & {
|
|
71
|
+
[K in Exclude<keyof I, KeysOfUnion<P> | "$type">]: never;
|
|
72
|
+
};
|
|
73
|
+
interface MessageFns<T, V extends string> {
|
|
74
|
+
readonly $type: V;
|
|
75
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
76
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
77
|
+
fromJSON(object: any): T;
|
|
78
|
+
toJSON(message: T): unknown;
|
|
79
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
80
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
81
|
+
}
|
|
82
|
+
export {};
|
|
@@ -0,0 +1,364 @@
|
|
|
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: CommandAuthority.proto
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.CommandRequest = exports.CommandAuthority = void 0;
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
|
+
const timestamp_1 = require("./google/protobuf/timestamp");
|
|
12
|
+
const typeRegistry_1 = require("./typeRegistry");
|
|
13
|
+
function createBaseCommandAuthority() {
|
|
14
|
+
return {
|
|
15
|
+
$type: "keelson.CommandAuthority",
|
|
16
|
+
vesselId: "",
|
|
17
|
+
controllerId: "",
|
|
18
|
+
controllerSite: "",
|
|
19
|
+
token: "",
|
|
20
|
+
grantedAt: undefined,
|
|
21
|
+
expiresAt: undefined,
|
|
22
|
+
lastHeartbeat: undefined,
|
|
23
|
+
leaseTtlSeconds: 0,
|
|
24
|
+
heartbeatIntervalSeconds: 0,
|
|
25
|
+
released: false,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
exports.CommandAuthority = {
|
|
29
|
+
$type: "keelson.CommandAuthority",
|
|
30
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
31
|
+
if (message.vesselId !== "") {
|
|
32
|
+
writer.uint32(10).string(message.vesselId);
|
|
33
|
+
}
|
|
34
|
+
if (message.controllerId !== "") {
|
|
35
|
+
writer.uint32(18).string(message.controllerId);
|
|
36
|
+
}
|
|
37
|
+
if (message.controllerSite !== "") {
|
|
38
|
+
writer.uint32(26).string(message.controllerSite);
|
|
39
|
+
}
|
|
40
|
+
if (message.token !== "") {
|
|
41
|
+
writer.uint32(34).string(message.token);
|
|
42
|
+
}
|
|
43
|
+
if (message.grantedAt !== undefined) {
|
|
44
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.grantedAt), writer.uint32(82).fork()).join();
|
|
45
|
+
}
|
|
46
|
+
if (message.expiresAt !== undefined) {
|
|
47
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.expiresAt), writer.uint32(90).fork()).join();
|
|
48
|
+
}
|
|
49
|
+
if (message.lastHeartbeat !== undefined) {
|
|
50
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.lastHeartbeat), writer.uint32(98).fork()).join();
|
|
51
|
+
}
|
|
52
|
+
if (message.leaseTtlSeconds !== 0) {
|
|
53
|
+
writer.uint32(104).uint32(message.leaseTtlSeconds);
|
|
54
|
+
}
|
|
55
|
+
if (message.heartbeatIntervalSeconds !== 0) {
|
|
56
|
+
writer.uint32(112).uint32(message.heartbeatIntervalSeconds);
|
|
57
|
+
}
|
|
58
|
+
if (message.released !== false) {
|
|
59
|
+
writer.uint32(160).bool(message.released);
|
|
60
|
+
}
|
|
61
|
+
return writer;
|
|
62
|
+
},
|
|
63
|
+
decode(input, length) {
|
|
64
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
65
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
66
|
+
const message = createBaseCommandAuthority();
|
|
67
|
+
while (reader.pos < end) {
|
|
68
|
+
const tag = reader.uint32();
|
|
69
|
+
switch (tag >>> 3) {
|
|
70
|
+
case 1: {
|
|
71
|
+
if (tag !== 10) {
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
message.vesselId = reader.string();
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
case 2: {
|
|
78
|
+
if (tag !== 18) {
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
message.controllerId = reader.string();
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
case 3: {
|
|
85
|
+
if (tag !== 26) {
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
message.controllerSite = reader.string();
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
case 4: {
|
|
92
|
+
if (tag !== 34) {
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
message.token = reader.string();
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
case 10: {
|
|
99
|
+
if (tag !== 82) {
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
message.grantedAt = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
case 11: {
|
|
106
|
+
if (tag !== 90) {
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
message.expiresAt = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
case 12: {
|
|
113
|
+
if (tag !== 98) {
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
message.lastHeartbeat = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
case 13: {
|
|
120
|
+
if (tag !== 104) {
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
message.leaseTtlSeconds = reader.uint32();
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
case 14: {
|
|
127
|
+
if (tag !== 112) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
message.heartbeatIntervalSeconds = reader.uint32();
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
case 20: {
|
|
134
|
+
if (tag !== 160) {
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
message.released = reader.bool();
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
reader.skip(tag & 7);
|
|
145
|
+
}
|
|
146
|
+
return message;
|
|
147
|
+
},
|
|
148
|
+
fromJSON(object) {
|
|
149
|
+
return {
|
|
150
|
+
$type: exports.CommandAuthority.$type,
|
|
151
|
+
vesselId: isSet(object.vesselId) ? globalThis.String(object.vesselId) : "",
|
|
152
|
+
controllerId: isSet(object.controllerId) ? globalThis.String(object.controllerId) : "",
|
|
153
|
+
controllerSite: isSet(object.controllerSite) ? globalThis.String(object.controllerSite) : "",
|
|
154
|
+
token: isSet(object.token) ? globalThis.String(object.token) : "",
|
|
155
|
+
grantedAt: isSet(object.grantedAt) ? fromJsonTimestamp(object.grantedAt) : undefined,
|
|
156
|
+
expiresAt: isSet(object.expiresAt) ? fromJsonTimestamp(object.expiresAt) : undefined,
|
|
157
|
+
lastHeartbeat: isSet(object.lastHeartbeat) ? fromJsonTimestamp(object.lastHeartbeat) : undefined,
|
|
158
|
+
leaseTtlSeconds: isSet(object.leaseTtlSeconds) ? globalThis.Number(object.leaseTtlSeconds) : 0,
|
|
159
|
+
heartbeatIntervalSeconds: isSet(object.heartbeatIntervalSeconds)
|
|
160
|
+
? globalThis.Number(object.heartbeatIntervalSeconds)
|
|
161
|
+
: 0,
|
|
162
|
+
released: isSet(object.released) ? globalThis.Boolean(object.released) : false,
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
toJSON(message) {
|
|
166
|
+
const obj = {};
|
|
167
|
+
if (message.vesselId !== "") {
|
|
168
|
+
obj.vesselId = message.vesselId;
|
|
169
|
+
}
|
|
170
|
+
if (message.controllerId !== "") {
|
|
171
|
+
obj.controllerId = message.controllerId;
|
|
172
|
+
}
|
|
173
|
+
if (message.controllerSite !== "") {
|
|
174
|
+
obj.controllerSite = message.controllerSite;
|
|
175
|
+
}
|
|
176
|
+
if (message.token !== "") {
|
|
177
|
+
obj.token = message.token;
|
|
178
|
+
}
|
|
179
|
+
if (message.grantedAt !== undefined) {
|
|
180
|
+
obj.grantedAt = message.grantedAt.toISOString();
|
|
181
|
+
}
|
|
182
|
+
if (message.expiresAt !== undefined) {
|
|
183
|
+
obj.expiresAt = message.expiresAt.toISOString();
|
|
184
|
+
}
|
|
185
|
+
if (message.lastHeartbeat !== undefined) {
|
|
186
|
+
obj.lastHeartbeat = message.lastHeartbeat.toISOString();
|
|
187
|
+
}
|
|
188
|
+
if (message.leaseTtlSeconds !== 0) {
|
|
189
|
+
obj.leaseTtlSeconds = Math.round(message.leaseTtlSeconds);
|
|
190
|
+
}
|
|
191
|
+
if (message.heartbeatIntervalSeconds !== 0) {
|
|
192
|
+
obj.heartbeatIntervalSeconds = Math.round(message.heartbeatIntervalSeconds);
|
|
193
|
+
}
|
|
194
|
+
if (message.released !== false) {
|
|
195
|
+
obj.released = message.released;
|
|
196
|
+
}
|
|
197
|
+
return obj;
|
|
198
|
+
},
|
|
199
|
+
create(base) {
|
|
200
|
+
return exports.CommandAuthority.fromPartial(base ?? {});
|
|
201
|
+
},
|
|
202
|
+
fromPartial(object) {
|
|
203
|
+
const message = createBaseCommandAuthority();
|
|
204
|
+
message.vesselId = object.vesselId ?? "";
|
|
205
|
+
message.controllerId = object.controllerId ?? "";
|
|
206
|
+
message.controllerSite = object.controllerSite ?? "";
|
|
207
|
+
message.token = object.token ?? "";
|
|
208
|
+
message.grantedAt = object.grantedAt ?? undefined;
|
|
209
|
+
message.expiresAt = object.expiresAt ?? undefined;
|
|
210
|
+
message.lastHeartbeat = object.lastHeartbeat ?? undefined;
|
|
211
|
+
message.leaseTtlSeconds = object.leaseTtlSeconds ?? 0;
|
|
212
|
+
message.heartbeatIntervalSeconds = object.heartbeatIntervalSeconds ?? 0;
|
|
213
|
+
message.released = object.released ?? false;
|
|
214
|
+
return message;
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
typeRegistry_1.messageTypeRegistry.set(exports.CommandAuthority.$type, exports.CommandAuthority);
|
|
218
|
+
function createBaseCommandRequest() {
|
|
219
|
+
return {
|
|
220
|
+
$type: "keelson.CommandRequest",
|
|
221
|
+
vesselId: "",
|
|
222
|
+
requesterId: "",
|
|
223
|
+
requesterSite: "",
|
|
224
|
+
requestedAt: undefined,
|
|
225
|
+
reason: "",
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
exports.CommandRequest = {
|
|
229
|
+
$type: "keelson.CommandRequest",
|
|
230
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
231
|
+
if (message.vesselId !== "") {
|
|
232
|
+
writer.uint32(10).string(message.vesselId);
|
|
233
|
+
}
|
|
234
|
+
if (message.requesterId !== "") {
|
|
235
|
+
writer.uint32(18).string(message.requesterId);
|
|
236
|
+
}
|
|
237
|
+
if (message.requesterSite !== "") {
|
|
238
|
+
writer.uint32(26).string(message.requesterSite);
|
|
239
|
+
}
|
|
240
|
+
if (message.requestedAt !== undefined) {
|
|
241
|
+
timestamp_1.Timestamp.encode(toTimestamp(message.requestedAt), writer.uint32(34).fork()).join();
|
|
242
|
+
}
|
|
243
|
+
if (message.reason !== "") {
|
|
244
|
+
writer.uint32(42).string(message.reason);
|
|
245
|
+
}
|
|
246
|
+
return writer;
|
|
247
|
+
},
|
|
248
|
+
decode(input, length) {
|
|
249
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
250
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
251
|
+
const message = createBaseCommandRequest();
|
|
252
|
+
while (reader.pos < end) {
|
|
253
|
+
const tag = reader.uint32();
|
|
254
|
+
switch (tag >>> 3) {
|
|
255
|
+
case 1: {
|
|
256
|
+
if (tag !== 10) {
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
message.vesselId = reader.string();
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
case 2: {
|
|
263
|
+
if (tag !== 18) {
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
message.requesterId = reader.string();
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
case 3: {
|
|
270
|
+
if (tag !== 26) {
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
message.requesterSite = reader.string();
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
case 4: {
|
|
277
|
+
if (tag !== 34) {
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
message.requestedAt = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
case 5: {
|
|
284
|
+
if (tag !== 42) {
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
message.reason = reader.string();
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
reader.skip(tag & 7);
|
|
295
|
+
}
|
|
296
|
+
return message;
|
|
297
|
+
},
|
|
298
|
+
fromJSON(object) {
|
|
299
|
+
return {
|
|
300
|
+
$type: exports.CommandRequest.$type,
|
|
301
|
+
vesselId: isSet(object.vesselId) ? globalThis.String(object.vesselId) : "",
|
|
302
|
+
requesterId: isSet(object.requesterId) ? globalThis.String(object.requesterId) : "",
|
|
303
|
+
requesterSite: isSet(object.requesterSite) ? globalThis.String(object.requesterSite) : "",
|
|
304
|
+
requestedAt: isSet(object.requestedAt) ? fromJsonTimestamp(object.requestedAt) : undefined,
|
|
305
|
+
reason: isSet(object.reason) ? globalThis.String(object.reason) : "",
|
|
306
|
+
};
|
|
307
|
+
},
|
|
308
|
+
toJSON(message) {
|
|
309
|
+
const obj = {};
|
|
310
|
+
if (message.vesselId !== "") {
|
|
311
|
+
obj.vesselId = message.vesselId;
|
|
312
|
+
}
|
|
313
|
+
if (message.requesterId !== "") {
|
|
314
|
+
obj.requesterId = message.requesterId;
|
|
315
|
+
}
|
|
316
|
+
if (message.requesterSite !== "") {
|
|
317
|
+
obj.requesterSite = message.requesterSite;
|
|
318
|
+
}
|
|
319
|
+
if (message.requestedAt !== undefined) {
|
|
320
|
+
obj.requestedAt = message.requestedAt.toISOString();
|
|
321
|
+
}
|
|
322
|
+
if (message.reason !== "") {
|
|
323
|
+
obj.reason = message.reason;
|
|
324
|
+
}
|
|
325
|
+
return obj;
|
|
326
|
+
},
|
|
327
|
+
create(base) {
|
|
328
|
+
return exports.CommandRequest.fromPartial(base ?? {});
|
|
329
|
+
},
|
|
330
|
+
fromPartial(object) {
|
|
331
|
+
const message = createBaseCommandRequest();
|
|
332
|
+
message.vesselId = object.vesselId ?? "";
|
|
333
|
+
message.requesterId = object.requesterId ?? "";
|
|
334
|
+
message.requesterSite = object.requesterSite ?? "";
|
|
335
|
+
message.requestedAt = object.requestedAt ?? undefined;
|
|
336
|
+
message.reason = object.reason ?? "";
|
|
337
|
+
return message;
|
|
338
|
+
},
|
|
339
|
+
};
|
|
340
|
+
typeRegistry_1.messageTypeRegistry.set(exports.CommandRequest.$type, exports.CommandRequest);
|
|
341
|
+
function toTimestamp(date) {
|
|
342
|
+
const seconds = Math.trunc(date.getTime() / 1000);
|
|
343
|
+
const nanos = (date.getTime() % 1000) * 1000000;
|
|
344
|
+
return { $type: "google.protobuf.Timestamp", seconds, nanos };
|
|
345
|
+
}
|
|
346
|
+
function fromTimestamp(t) {
|
|
347
|
+
let millis = (t.seconds || 0) * 1000;
|
|
348
|
+
millis += (t.nanos || 0) / 1000000;
|
|
349
|
+
return new globalThis.Date(millis);
|
|
350
|
+
}
|
|
351
|
+
function fromJsonTimestamp(o) {
|
|
352
|
+
if (o instanceof globalThis.Date) {
|
|
353
|
+
return o;
|
|
354
|
+
}
|
|
355
|
+
else if (typeof o === "string") {
|
|
356
|
+
return new globalThis.Date(o);
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function isSet(value) {
|
|
363
|
+
return value !== null && value !== undefined;
|
|
364
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
/**
|
|
3
|
+
* WGS84 latitude/longitude in plain degrees. The canonical coordinate
|
|
4
|
+
* shape for keelson *domain nouns* — mission waypoints, geofence
|
|
5
|
+
* vertices, navigation targets, route legs — shared by RPC interfaces
|
|
6
|
+
* and pub/sub payloads alike so consumers see a single coordinate type
|
|
7
|
+
* rather than each surface picking its own scaling / units.
|
|
8
|
+
*
|
|
9
|
+
* Telemetry position *fixes* (the `location_fix` subject) intentionally
|
|
10
|
+
* remain foxglove.LocationFix: a measured fix carries sensor context
|
|
11
|
+
* (covariance, frame_id) that is meaningful for telemetry but noise for
|
|
12
|
+
* a planned position. Don't swap one for the other.
|
|
13
|
+
*/
|
|
14
|
+
export interface Coordinate {
|
|
15
|
+
$type: "keelson.Coordinate";
|
|
16
|
+
latitudeDeg: number;
|
|
17
|
+
longitudeDeg: number;
|
|
18
|
+
}
|
|
19
|
+
export declare const Coordinate: MessageFns<Coordinate, "keelson.Coordinate">;
|
|
20
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
21
|
+
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 {} ? {
|
|
22
|
+
[K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
|
|
23
|
+
} : Partial<T>;
|
|
24
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
25
|
+
type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
26
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
27
|
+
} & {
|
|
28
|
+
[K in Exclude<keyof I, KeysOfUnion<P> | "$type">]: never;
|
|
29
|
+
};
|
|
30
|
+
interface MessageFns<T, V extends string> {
|
|
31
|
+
readonly $type: V;
|
|
32
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
33
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
34
|
+
fromJSON(object: any): T;
|
|
35
|
+
toJSON(message: T): unknown;
|
|
36
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
37
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
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: Coordinate.proto
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Coordinate = void 0;
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
|
+
const typeRegistry_1 = require("./typeRegistry");
|
|
12
|
+
function createBaseCoordinate() {
|
|
13
|
+
return { $type: "keelson.Coordinate", latitudeDeg: 0, longitudeDeg: 0 };
|
|
14
|
+
}
|
|
15
|
+
exports.Coordinate = {
|
|
16
|
+
$type: "keelson.Coordinate",
|
|
17
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
18
|
+
if (message.latitudeDeg !== 0) {
|
|
19
|
+
writer.uint32(9).double(message.latitudeDeg);
|
|
20
|
+
}
|
|
21
|
+
if (message.longitudeDeg !== 0) {
|
|
22
|
+
writer.uint32(17).double(message.longitudeDeg);
|
|
23
|
+
}
|
|
24
|
+
return writer;
|
|
25
|
+
},
|
|
26
|
+
decode(input, length) {
|
|
27
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
28
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
29
|
+
const message = createBaseCoordinate();
|
|
30
|
+
while (reader.pos < end) {
|
|
31
|
+
const tag = reader.uint32();
|
|
32
|
+
switch (tag >>> 3) {
|
|
33
|
+
case 1: {
|
|
34
|
+
if (tag !== 9) {
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
message.latitudeDeg = reader.double();
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
case 2: {
|
|
41
|
+
if (tag !== 17) {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
message.longitudeDeg = reader.double();
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
reader.skip(tag & 7);
|
|
52
|
+
}
|
|
53
|
+
return message;
|
|
54
|
+
},
|
|
55
|
+
fromJSON(object) {
|
|
56
|
+
return {
|
|
57
|
+
$type: exports.Coordinate.$type,
|
|
58
|
+
latitudeDeg: isSet(object.latitudeDeg) ? globalThis.Number(object.latitudeDeg) : 0,
|
|
59
|
+
longitudeDeg: isSet(object.longitudeDeg) ? globalThis.Number(object.longitudeDeg) : 0,
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
toJSON(message) {
|
|
63
|
+
const obj = {};
|
|
64
|
+
if (message.latitudeDeg !== 0) {
|
|
65
|
+
obj.latitudeDeg = message.latitudeDeg;
|
|
66
|
+
}
|
|
67
|
+
if (message.longitudeDeg !== 0) {
|
|
68
|
+
obj.longitudeDeg = message.longitudeDeg;
|
|
69
|
+
}
|
|
70
|
+
return obj;
|
|
71
|
+
},
|
|
72
|
+
create(base) {
|
|
73
|
+
return exports.Coordinate.fromPartial(base ?? {});
|
|
74
|
+
},
|
|
75
|
+
fromPartial(object) {
|
|
76
|
+
const message = createBaseCoordinate();
|
|
77
|
+
message.latitudeDeg = object.latitudeDeg ?? 0;
|
|
78
|
+
message.longitudeDeg = object.longitudeDeg ?? 0;
|
|
79
|
+
return message;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
typeRegistry_1.messageTypeRegistry.set(exports.Coordinate.$type, exports.Coordinate);
|
|
83
|
+
function isSet(value) {
|
|
84
|
+
return value !== null && value !== undefined;
|
|
85
|
+
}
|
|
@@ -5,6 +5,15 @@ export declare enum HealthLevel {
|
|
|
5
5
|
HEALTH_CRITICAL = 2,
|
|
6
6
|
HEALTH_DEGRADED = 3,
|
|
7
7
|
HEALTH_NOMINAL = 4,
|
|
8
|
+
/**
|
|
9
|
+
* HEALTH_NOT_ADVERTISED - The source's source-level liveliness token is present, but it does
|
|
10
|
+
* not advertise a subject-level token for this subject — a resolved
|
|
11
|
+
* negative (typically an operator config error: subject-name typo,
|
|
12
|
+
* wrong source_id), distinct from UNKNOWN (no information) and
|
|
13
|
+
* INACTIVE (advertised but silent). Only raised against sources that
|
|
14
|
+
* advertise at least one subject-level token (three-tier adopters).
|
|
15
|
+
*/
|
|
16
|
+
HEALTH_NOT_ADVERTISED = 5,
|
|
8
17
|
UNRECOGNIZED = -1
|
|
9
18
|
}
|
|
10
19
|
export declare function healthLevelFromJSON(object: any): HealthLevel;
|
|
@@ -17,6 +17,15 @@ var HealthLevel;
|
|
|
17
17
|
HealthLevel[HealthLevel["HEALTH_CRITICAL"] = 2] = "HEALTH_CRITICAL";
|
|
18
18
|
HealthLevel[HealthLevel["HEALTH_DEGRADED"] = 3] = "HEALTH_DEGRADED";
|
|
19
19
|
HealthLevel[HealthLevel["HEALTH_NOMINAL"] = 4] = "HEALTH_NOMINAL";
|
|
20
|
+
/**
|
|
21
|
+
* HEALTH_NOT_ADVERTISED - The source's source-level liveliness token is present, but it does
|
|
22
|
+
* not advertise a subject-level token for this subject — a resolved
|
|
23
|
+
* negative (typically an operator config error: subject-name typo,
|
|
24
|
+
* wrong source_id), distinct from UNKNOWN (no information) and
|
|
25
|
+
* INACTIVE (advertised but silent). Only raised against sources that
|
|
26
|
+
* advertise at least one subject-level token (three-tier adopters).
|
|
27
|
+
*/
|
|
28
|
+
HealthLevel[HealthLevel["HEALTH_NOT_ADVERTISED"] = 5] = "HEALTH_NOT_ADVERTISED";
|
|
20
29
|
HealthLevel[HealthLevel["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
21
30
|
})(HealthLevel || (exports.HealthLevel = HealthLevel = {}));
|
|
22
31
|
function healthLevelFromJSON(object) {
|
|
@@ -36,6 +45,9 @@ function healthLevelFromJSON(object) {
|
|
|
36
45
|
case 4:
|
|
37
46
|
case "HEALTH_NOMINAL":
|
|
38
47
|
return HealthLevel.HEALTH_NOMINAL;
|
|
48
|
+
case 5:
|
|
49
|
+
case "HEALTH_NOT_ADVERTISED":
|
|
50
|
+
return HealthLevel.HEALTH_NOT_ADVERTISED;
|
|
39
51
|
case -1:
|
|
40
52
|
case "UNRECOGNIZED":
|
|
41
53
|
default:
|
|
@@ -55,6 +67,8 @@ function healthLevelToJSON(object) {
|
|
|
55
67
|
return "HEALTH_DEGRADED";
|
|
56
68
|
case HealthLevel.HEALTH_NOMINAL:
|
|
57
69
|
return "HEALTH_NOMINAL";
|
|
70
|
+
case HealthLevel.HEALTH_NOT_ADVERTISED:
|
|
71
|
+
return "HEALTH_NOT_ADVERTISED";
|
|
58
72
|
case HealthLevel.UNRECOGNIZED:
|
|
59
73
|
default:
|
|
60
74
|
return "UNRECOGNIZED";
|