@rise-maritime/keelson-js 0.5.3 → 0.6.0-pre.3
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 +434 -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 +627 -0
- package/dist/interfaces/Route.js +4148 -0
- package/dist/interfaces/RoutePlanner.d.ts +152 -0
- package/dist/interfaces/RoutePlanner.js +268 -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 +428 -0
- package/dist/interfaces/serviceRegistry.js +36 -0
- package/dist/interfaces.json +17 -0
- package/dist/payloads/Alarm.d.ts +7 -12
- package/dist/payloads/Alarm.js +4 -54
- 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 +165 -4
- package/dist/payloads/OperationalAuthority.js +520 -1
- package/dist/payloads/Route.d.ts +649 -0
- package/dist/payloads/Route.js +4257 -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/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/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 +10 -1
- package/dist/payloads/index.keelson.js +10 -1
- package/dist/qos.json +88 -0
- package/dist/subjects.json +28 -1
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,9 @@ import { Envelope } from './Envelope';
|
|
|
2
2
|
import { MessageType } from './payloads/typeRegistry';
|
|
3
3
|
import './payloads';
|
|
4
4
|
export declare function construct_pubSub_key(base_path: string, entityId: string, subject: string, sourceId: string, targetId?: string): string;
|
|
5
|
-
export declare function construct_rpc_key(base_path: string, entityId: string, procedure: string, sourceId: string): string;
|
|
5
|
+
export declare function construct_rpc_key(base_path: string, entityId: string, iface: string, version: string, procedure: string, sourceId: string): string;
|
|
6
|
+
export declare function construct_source_liveliness_key(base_path: string, entityId: string, sourceId: string): string;
|
|
7
|
+
export declare function construct_rpc_interface_liveliness_key(base_path: string, entityId: string, iface: string, version: string, sourceId: string): string;
|
|
6
8
|
export interface ParsedPubSubKey {
|
|
7
9
|
base_path: string;
|
|
8
10
|
entityId: string;
|
|
@@ -17,6 +19,437 @@ export declare function enclose(payload: Uint8Array, enclosed_at?: Date): Envelo
|
|
|
17
19
|
export declare function uncover(encodedEnvelope: Uint8Array): [Date, Date | undefined, Uint8Array] | undefined;
|
|
18
20
|
export declare function isSubjectWellKnown(subject: string): boolean;
|
|
19
21
|
export declare function getSubjectSchema(subject: string): string | undefined;
|
|
22
|
+
export declare function isInterfaceWellKnown(interfaceAndVersion: string): boolean;
|
|
23
|
+
export declare function getInterfaceService(interfaceAndVersion: string): string | undefined;
|
|
24
|
+
export declare function listInterfaces(): string[];
|
|
25
|
+
export declare function getInterfaceDefinition(interfaceAndVersion: string): {
|
|
26
|
+
readonly name: "Configurable";
|
|
27
|
+
readonly fullName: "keelson.interfaces.configurable.Configurable";
|
|
28
|
+
readonly methods: {
|
|
29
|
+
readonly get_config: {
|
|
30
|
+
readonly name: "get_config";
|
|
31
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
32
|
+
readonly requestStream: false;
|
|
33
|
+
readonly responseType: import("./interfaces/Configurable").MessageFns<import("./interfaces/Configurable").JSON>;
|
|
34
|
+
readonly responseStream: false;
|
|
35
|
+
readonly options: {};
|
|
36
|
+
};
|
|
37
|
+
readonly set_config: {
|
|
38
|
+
readonly name: "set_config";
|
|
39
|
+
readonly requestType: import("./interfaces/Configurable").MessageFns<import("./interfaces/Configurable").JSON>;
|
|
40
|
+
readonly requestStream: false;
|
|
41
|
+
readonly responseType: import("./interfaces/Configurable").MessageFns<import("./interfaces/Configurable").ConfigurableSuccessResponse>;
|
|
42
|
+
readonly responseStream: false;
|
|
43
|
+
readonly options: {};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
} | {
|
|
47
|
+
readonly name: "MavlinkCommand";
|
|
48
|
+
readonly fullName: "keelson.interfaces.mavlink_command.MavlinkCommand";
|
|
49
|
+
readonly methods: {
|
|
50
|
+
readonly set_message_interval: {
|
|
51
|
+
readonly name: "set_message_interval";
|
|
52
|
+
readonly requestType: import("./interfaces/MavlinkCommand").MessageFns<import("./interfaces/MavlinkCommand").SetMessageIntervalRequest>;
|
|
53
|
+
readonly requestStream: false;
|
|
54
|
+
readonly responseType: import("./interfaces/MavlinkCommand").MessageFns<import("./interfaces/MavlinkCommand").SetMessageIntervalResponse>;
|
|
55
|
+
readonly responseStream: false;
|
|
56
|
+
readonly options: {};
|
|
57
|
+
};
|
|
58
|
+
readonly send_command_long: {
|
|
59
|
+
readonly name: "send_command_long";
|
|
60
|
+
readonly requestType: import("./interfaces/MavlinkCommand").MessageFns<import("./interfaces/MavlinkCommand").CommandLongRequest>;
|
|
61
|
+
readonly requestStream: false;
|
|
62
|
+
readonly responseType: import("./interfaces/MavlinkCommand").MessageFns<import("./interfaces/MavlinkCommand").CommandLongResponse>;
|
|
63
|
+
readonly responseStream: false;
|
|
64
|
+
readonly options: {};
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
} | {
|
|
68
|
+
readonly name: "NetworkPingPong";
|
|
69
|
+
readonly fullName: "keelson.interfaces.network_ping_pong.NetworkPingPong";
|
|
70
|
+
readonly methods: {
|
|
71
|
+
readonly ping_network: {
|
|
72
|
+
readonly name: "ping_network";
|
|
73
|
+
readonly requestType: import("./interfaces/NetworkPingPong").MessageFns<import("./interfaces/NetworkPingPong").NetworkPing>;
|
|
74
|
+
readonly requestStream: false;
|
|
75
|
+
readonly responseType: import("./interfaces/NetworkPingPong").MessageFns<import("./interfaces/NetworkPingPong").NetworkPong>;
|
|
76
|
+
readonly responseStream: false;
|
|
77
|
+
readonly options: {};
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
} | {
|
|
81
|
+
readonly name: "ReplayControl";
|
|
82
|
+
readonly fullName: "keelson.interfaces.replay_control.ReplayControl";
|
|
83
|
+
readonly methods: {
|
|
84
|
+
readonly list_files: {
|
|
85
|
+
readonly name: "list_files";
|
|
86
|
+
readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ListFilesRequest>;
|
|
87
|
+
readonly requestStream: false;
|
|
88
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ListFilesResponse>;
|
|
89
|
+
readonly responseStream: false;
|
|
90
|
+
readonly options: {};
|
|
91
|
+
};
|
|
92
|
+
readonly load_file: {
|
|
93
|
+
readonly name: "load_file";
|
|
94
|
+
readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").LoadFileRequest>;
|
|
95
|
+
readonly requestStream: false;
|
|
96
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
97
|
+
readonly responseStream: false;
|
|
98
|
+
readonly options: {};
|
|
99
|
+
};
|
|
100
|
+
readonly play: {
|
|
101
|
+
readonly name: "play";
|
|
102
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
103
|
+
readonly requestStream: false;
|
|
104
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
105
|
+
readonly responseStream: false;
|
|
106
|
+
readonly options: {};
|
|
107
|
+
};
|
|
108
|
+
readonly pause: {
|
|
109
|
+
readonly name: "pause";
|
|
110
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
111
|
+
readonly requestStream: false;
|
|
112
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
113
|
+
readonly responseStream: false;
|
|
114
|
+
readonly options: {};
|
|
115
|
+
};
|
|
116
|
+
readonly stop: {
|
|
117
|
+
readonly name: "stop";
|
|
118
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
119
|
+
readonly requestStream: false;
|
|
120
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
121
|
+
readonly responseStream: false;
|
|
122
|
+
readonly options: {};
|
|
123
|
+
};
|
|
124
|
+
readonly seek: {
|
|
125
|
+
readonly name: "seek";
|
|
126
|
+
readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").SeekRequest>;
|
|
127
|
+
readonly requestStream: false;
|
|
128
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
129
|
+
readonly responseStream: false;
|
|
130
|
+
readonly options: {};
|
|
131
|
+
};
|
|
132
|
+
readonly set_speed: {
|
|
133
|
+
readonly name: "set_speed";
|
|
134
|
+
readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").SetSpeedRequest>;
|
|
135
|
+
readonly requestStream: false;
|
|
136
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
137
|
+
readonly responseStream: false;
|
|
138
|
+
readonly options: {};
|
|
139
|
+
};
|
|
140
|
+
readonly set_loop: {
|
|
141
|
+
readonly name: "set_loop";
|
|
142
|
+
readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").SetLoopRequest>;
|
|
143
|
+
readonly requestStream: false;
|
|
144
|
+
readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").ReplaySuccessResponse>;
|
|
145
|
+
readonly responseStream: false;
|
|
146
|
+
readonly options: {};
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
} | {
|
|
150
|
+
readonly name: "RoutePlanner";
|
|
151
|
+
readonly fullName: "keelson.interfaces.route_planner.RoutePlanner";
|
|
152
|
+
readonly methods: {
|
|
153
|
+
readonly plan_route: {
|
|
154
|
+
readonly name: "plan_route";
|
|
155
|
+
readonly requestType: import("./interfaces/RoutePlanner").MessageFns<import("./interfaces/RoutePlanner").PlanRouteRequest>;
|
|
156
|
+
readonly requestStream: false;
|
|
157
|
+
readonly responseType: import("./interfaces/Route").MessageFns<import("./interfaces/Route").Route>;
|
|
158
|
+
readonly responseStream: false;
|
|
159
|
+
readonly options: {};
|
|
160
|
+
};
|
|
161
|
+
readonly validate_route: {
|
|
162
|
+
readonly name: "validate_route";
|
|
163
|
+
readonly requestType: import("./interfaces/Route").MessageFns<import("./interfaces/Route").Route>;
|
|
164
|
+
readonly requestStream: false;
|
|
165
|
+
readonly responseType: import("./interfaces/Route").MessageFns<import("./interfaces/Route").Route>;
|
|
166
|
+
readonly responseStream: false;
|
|
167
|
+
readonly options: {};
|
|
168
|
+
};
|
|
169
|
+
readonly get_route: {
|
|
170
|
+
readonly name: "get_route";
|
|
171
|
+
readonly requestType: import("./interfaces/Route").MessageFns<import("./interfaces/Route").RouteRef>;
|
|
172
|
+
readonly requestStream: false;
|
|
173
|
+
readonly responseType: import("./interfaces/Route").MessageFns<import("./interfaces/Route").Route>;
|
|
174
|
+
readonly responseStream: false;
|
|
175
|
+
readonly options: {};
|
|
176
|
+
};
|
|
177
|
+
readonly select_route: {
|
|
178
|
+
readonly name: "select_route";
|
|
179
|
+
readonly requestType: import("./interfaces/Route").MessageFns<import("./interfaces/Route").RouteRef>;
|
|
180
|
+
readonly requestStream: false;
|
|
181
|
+
readonly responseType: import("./interfaces/Route").MessageFns<import("./interfaces/Route").Route>;
|
|
182
|
+
readonly responseStream: false;
|
|
183
|
+
readonly options: {};
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
} | {
|
|
187
|
+
readonly name: "SimulationControl";
|
|
188
|
+
readonly fullName: "keelson.interfaces.simulation_control.SimulationControl";
|
|
189
|
+
readonly methods: {
|
|
190
|
+
readonly start: {
|
|
191
|
+
readonly name: "start";
|
|
192
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
193
|
+
readonly requestStream: false;
|
|
194
|
+
readonly responseType: import("./interfaces/SimulationControl").MessageFns<import("./interfaces/SimulationControl").StartResponse>;
|
|
195
|
+
readonly responseStream: false;
|
|
196
|
+
readonly options: {};
|
|
197
|
+
};
|
|
198
|
+
readonly pause: {
|
|
199
|
+
readonly name: "pause";
|
|
200
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
201
|
+
readonly requestStream: false;
|
|
202
|
+
readonly responseType: import("./interfaces/SimulationControl").MessageFns<import("./interfaces/SimulationControl").PauseResponse>;
|
|
203
|
+
readonly responseStream: false;
|
|
204
|
+
readonly options: {};
|
|
205
|
+
};
|
|
206
|
+
readonly stop: {
|
|
207
|
+
readonly name: "stop";
|
|
208
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
209
|
+
readonly requestStream: false;
|
|
210
|
+
readonly responseType: import("./interfaces/SimulationControl").MessageFns<import("./interfaces/SimulationControl").StopResponse>;
|
|
211
|
+
readonly responseStream: false;
|
|
212
|
+
readonly options: {};
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
} | {
|
|
216
|
+
readonly name: "Subscriber";
|
|
217
|
+
readonly fullName: "keelson.interfaces.subscriber.Subscriber";
|
|
218
|
+
readonly methods: {
|
|
219
|
+
readonly get_subscriptions: {
|
|
220
|
+
readonly name: "get_subscriptions";
|
|
221
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
222
|
+
readonly requestStream: false;
|
|
223
|
+
readonly responseType: import("./interfaces/Subscriber").MessageFns<import("./interfaces/Subscriber").Subscriptions>;
|
|
224
|
+
readonly responseStream: false;
|
|
225
|
+
readonly options: {};
|
|
226
|
+
};
|
|
227
|
+
readonly set_subscriptions: {
|
|
228
|
+
readonly name: "set_subscriptions";
|
|
229
|
+
readonly requestType: import("./interfaces/Subscriber").MessageFns<import("./interfaces/Subscriber").Subscriptions>;
|
|
230
|
+
readonly requestStream: false;
|
|
231
|
+
readonly responseType: import("./interfaces/Subscriber").MessageFns<import("./interfaces/Subscriber").SubscriberSuccessResponse>;
|
|
232
|
+
readonly responseStream: false;
|
|
233
|
+
readonly options: {};
|
|
234
|
+
};
|
|
235
|
+
};
|
|
236
|
+
} | {
|
|
237
|
+
readonly name: "VehicleControl";
|
|
238
|
+
readonly fullName: "keelson.interfaces.vehicle_control.VehicleControl";
|
|
239
|
+
readonly methods: {
|
|
240
|
+
readonly set_control_mapping: {
|
|
241
|
+
readonly name: "set_control_mapping";
|
|
242
|
+
readonly requestType: import("./interfaces/VehicleControl").MessageFns<import("./interfaces/VehicleControl").ControlAxisMapping>;
|
|
243
|
+
readonly requestStream: false;
|
|
244
|
+
readonly responseType: import("./interfaces/VehicleControl").MessageFns<import("./interfaces/VehicleControl").ControlAxisMappingAck>;
|
|
245
|
+
readonly responseStream: false;
|
|
246
|
+
readonly options: {};
|
|
247
|
+
};
|
|
248
|
+
readonly get_control_mapping: {
|
|
249
|
+
readonly name: "get_control_mapping";
|
|
250
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
251
|
+
readonly requestStream: false;
|
|
252
|
+
readonly responseType: import("./interfaces/VehicleControl").MessageFns<import("./interfaces/VehicleControl").ControlAxisMapping>;
|
|
253
|
+
readonly responseStream: false;
|
|
254
|
+
readonly options: {};
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
} | {
|
|
258
|
+
readonly name: "VehicleGeofence";
|
|
259
|
+
readonly fullName: "keelson.interfaces.vehicle_geofence.VehicleGeofence";
|
|
260
|
+
readonly methods: {
|
|
261
|
+
readonly upload_geofence: {
|
|
262
|
+
readonly name: "upload_geofence";
|
|
263
|
+
readonly requestType: import("./interfaces/VehicleGeofence").MessageFns<import("./interfaces/VehicleGeofence").Geofence>;
|
|
264
|
+
readonly requestStream: false;
|
|
265
|
+
readonly responseType: import("./interfaces/VehicleGeofence").MessageFns<import("./interfaces/VehicleGeofence").GeofenceUploadResponse>;
|
|
266
|
+
readonly responseStream: false;
|
|
267
|
+
readonly options: {};
|
|
268
|
+
};
|
|
269
|
+
readonly enable_geofence: {
|
|
270
|
+
readonly name: "enable_geofence";
|
|
271
|
+
readonly requestType: import("./interfaces/VehicleGeofence").MessageFns<import("./interfaces/VehicleGeofence").EnableGeofenceRequest>;
|
|
272
|
+
readonly requestStream: false;
|
|
273
|
+
readonly responseType: import("./interfaces/VehicleGeofence").MessageFns<import("./interfaces/VehicleGeofence").EnableGeofenceResponse>;
|
|
274
|
+
readonly responseStream: false;
|
|
275
|
+
readonly options: {};
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
} | {
|
|
279
|
+
readonly name: "VehicleLifecycle";
|
|
280
|
+
readonly fullName: "keelson.interfaces.vehicle_lifecycle.VehicleLifecycle";
|
|
281
|
+
readonly methods: {
|
|
282
|
+
readonly arm: {
|
|
283
|
+
readonly name: "arm";
|
|
284
|
+
readonly requestType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").ArmRequest>;
|
|
285
|
+
readonly requestStream: false;
|
|
286
|
+
readonly responseType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").ArmResponse>;
|
|
287
|
+
readonly responseStream: false;
|
|
288
|
+
readonly options: {};
|
|
289
|
+
};
|
|
290
|
+
readonly set_mode: {
|
|
291
|
+
readonly name: "set_mode";
|
|
292
|
+
readonly requestType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").SetModeRequest>;
|
|
293
|
+
readonly requestStream: false;
|
|
294
|
+
readonly responseType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").SetModeResponse>;
|
|
295
|
+
readonly responseStream: false;
|
|
296
|
+
readonly options: {};
|
|
297
|
+
};
|
|
298
|
+
readonly emergency_stop: {
|
|
299
|
+
readonly name: "emergency_stop";
|
|
300
|
+
readonly requestType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").EmergencyStopRequest>;
|
|
301
|
+
readonly requestStream: false;
|
|
302
|
+
readonly responseType: import("./interfaces/VehicleLifecycle").MessageFns<import("./interfaces/VehicleLifecycle").EmergencyStopResponse>;
|
|
303
|
+
readonly responseStream: false;
|
|
304
|
+
readonly options: {};
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
} | {
|
|
308
|
+
readonly name: "VehicleMission";
|
|
309
|
+
readonly fullName: "keelson.interfaces.vehicle_mission.VehicleMission";
|
|
310
|
+
readonly methods: {
|
|
311
|
+
readonly upload_mission: {
|
|
312
|
+
readonly name: "upload_mission";
|
|
313
|
+
readonly requestType: import("./interfaces/Mission").MessageFns<import("./interfaces/Mission").Mission>;
|
|
314
|
+
readonly requestStream: false;
|
|
315
|
+
readonly responseType: import("./interfaces/VehicleMission").MessageFns<import("./interfaces/VehicleMission").MissionUploadResponse>;
|
|
316
|
+
readonly responseStream: false;
|
|
317
|
+
readonly options: {};
|
|
318
|
+
};
|
|
319
|
+
readonly download_mission: {
|
|
320
|
+
readonly name: "download_mission";
|
|
321
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
322
|
+
readonly requestStream: false;
|
|
323
|
+
readonly responseType: import("./interfaces/Mission").MessageFns<import("./interfaces/Mission").Mission>;
|
|
324
|
+
readonly responseStream: false;
|
|
325
|
+
readonly options: {};
|
|
326
|
+
};
|
|
327
|
+
readonly clear_mission: {
|
|
328
|
+
readonly name: "clear_mission";
|
|
329
|
+
readonly requestType: import("./interfaces/VehicleMission").MessageFns<import("./interfaces/VehicleMission").ClearMissionRequest>;
|
|
330
|
+
readonly requestStream: false;
|
|
331
|
+
readonly responseType: import("./interfaces/VehicleMission").MessageFns<import("./interfaces/VehicleMission").ClearMissionResponse>;
|
|
332
|
+
readonly responseStream: false;
|
|
333
|
+
readonly options: {};
|
|
334
|
+
};
|
|
335
|
+
readonly set_current_waypoint: {
|
|
336
|
+
readonly name: "set_current_waypoint";
|
|
337
|
+
readonly requestType: import("./interfaces/VehicleMission").MessageFns<import("./interfaces/VehicleMission").SetCurrentWaypointRequest>;
|
|
338
|
+
readonly requestStream: false;
|
|
339
|
+
readonly responseType: import("./interfaces/VehicleMission").MessageFns<import("./interfaces/VehicleMission").SetCurrentWaypointResponse>;
|
|
340
|
+
readonly responseStream: false;
|
|
341
|
+
readonly options: {};
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
} | {
|
|
345
|
+
readonly name: "VehicleNavigation";
|
|
346
|
+
readonly fullName: "keelson.interfaces.vehicle_navigation.VehicleNavigation";
|
|
347
|
+
readonly methods: {
|
|
348
|
+
readonly set_navigation_target: {
|
|
349
|
+
readonly name: "set_navigation_target";
|
|
350
|
+
readonly requestType: import("./interfaces/VehicleNavigation").MessageFns<import("./interfaces/VehicleNavigation").NavigationTarget>;
|
|
351
|
+
readonly requestStream: false;
|
|
352
|
+
readonly responseType: import("./interfaces/VehicleNavigation").MessageFns<import("./interfaces/VehicleNavigation").NavigationTargetResponse>;
|
|
353
|
+
readonly responseStream: false;
|
|
354
|
+
readonly options: {};
|
|
355
|
+
};
|
|
356
|
+
readonly set_cruise_speed: {
|
|
357
|
+
readonly name: "set_cruise_speed";
|
|
358
|
+
readonly requestType: import("./interfaces/VehicleNavigation").MessageFns<import("./interfaces/VehicleNavigation").SetCruiseSpeedRequest>;
|
|
359
|
+
readonly requestStream: false;
|
|
360
|
+
readonly responseType: import("./interfaces/VehicleNavigation").MessageFns<import("./interfaces/VehicleNavigation").SetCruiseSpeedResponse>;
|
|
361
|
+
readonly responseStream: false;
|
|
362
|
+
readonly options: {};
|
|
363
|
+
};
|
|
364
|
+
};
|
|
365
|
+
} | {
|
|
366
|
+
readonly name: "VehicleParam";
|
|
367
|
+
readonly fullName: "keelson.interfaces.vehicle_param.VehicleParam";
|
|
368
|
+
readonly methods: {
|
|
369
|
+
readonly get_param: {
|
|
370
|
+
readonly name: "get_param";
|
|
371
|
+
readonly requestType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").ParamGetRequest>;
|
|
372
|
+
readonly requestStream: false;
|
|
373
|
+
readonly responseType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").ParamValueResponse>;
|
|
374
|
+
readonly responseStream: false;
|
|
375
|
+
readonly options: {};
|
|
376
|
+
};
|
|
377
|
+
readonly set_param: {
|
|
378
|
+
readonly name: "set_param";
|
|
379
|
+
readonly requestType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").ParamSetRequest>;
|
|
380
|
+
readonly requestStream: false;
|
|
381
|
+
readonly responseType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").ParamValueResponse>;
|
|
382
|
+
readonly responseStream: false;
|
|
383
|
+
readonly options: {};
|
|
384
|
+
};
|
|
385
|
+
readonly list_params: {
|
|
386
|
+
readonly name: "list_params";
|
|
387
|
+
readonly requestType: import("./interfaces/google/protobuf/empty").MessageFns<import("./interfaces/google/protobuf/empty").Empty>;
|
|
388
|
+
readonly requestStream: false;
|
|
389
|
+
readonly responseType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").ParamListResponse>;
|
|
390
|
+
readonly responseStream: false;
|
|
391
|
+
readonly options: {};
|
|
392
|
+
};
|
|
393
|
+
readonly set_params: {
|
|
394
|
+
readonly name: "set_params";
|
|
395
|
+
readonly requestType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").ParamSetBulkRequest>;
|
|
396
|
+
readonly requestStream: false;
|
|
397
|
+
readonly responseType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").ParamSetBulkResponse>;
|
|
398
|
+
readonly responseStream: false;
|
|
399
|
+
readonly options: {};
|
|
400
|
+
};
|
|
401
|
+
readonly save_params: {
|
|
402
|
+
readonly name: "save_params";
|
|
403
|
+
readonly requestType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").SaveParamsRequest>;
|
|
404
|
+
readonly requestStream: false;
|
|
405
|
+
readonly responseType: import("./interfaces/VehicleParam").MessageFns<import("./interfaces/VehicleParam").SaveParamsResponse>;
|
|
406
|
+
readonly responseStream: false;
|
|
407
|
+
readonly options: {};
|
|
408
|
+
};
|
|
409
|
+
};
|
|
410
|
+
} | {
|
|
411
|
+
readonly name: "VehicleSimulatorControl";
|
|
412
|
+
readonly fullName: "keelson.interfaces.vehicle_simulator_control.VehicleSimulatorControl";
|
|
413
|
+
readonly methods: {
|
|
414
|
+
readonly set_initial_pose: {
|
|
415
|
+
readonly name: "set_initial_pose";
|
|
416
|
+
readonly requestType: import("./interfaces/VehicleSimulatorControl").MessageFns<import("./interfaces/VehicleSimulatorControl").InitialPose>;
|
|
417
|
+
readonly requestStream: false;
|
|
418
|
+
readonly responseType: import("./interfaces/VehicleSimulatorControl").MessageFns<import("./interfaces/VehicleSimulatorControl").SetInitialPoseResponse>;
|
|
419
|
+
readonly responseStream: false;
|
|
420
|
+
readonly options: {};
|
|
421
|
+
};
|
|
422
|
+
};
|
|
423
|
+
} | {
|
|
424
|
+
readonly name: "WHEPProxy";
|
|
425
|
+
readonly fullName: "keelson.interfaces.whep_proxy.WHEPProxy";
|
|
426
|
+
readonly methods: {
|
|
427
|
+
readonly whep_signal: {
|
|
428
|
+
readonly name: "whep_signal";
|
|
429
|
+
readonly requestType: import("./interfaces/WHEPProxy").MessageFns<import("./interfaces/WHEPProxy").WHEPRequest>;
|
|
430
|
+
readonly requestStream: false;
|
|
431
|
+
readonly responseType: import("./interfaces/WHEPProxy").MessageFns<import("./interfaces/WHEPProxy").WHEPResponse>;
|
|
432
|
+
readonly responseStream: false;
|
|
433
|
+
readonly options: {};
|
|
434
|
+
};
|
|
435
|
+
};
|
|
436
|
+
};
|
|
437
|
+
export declare function getProcedures(interfaceAndVersion: string): string[];
|
|
438
|
+
export interface ProcedureCodec {
|
|
439
|
+
/** ts-proto MessageFns: encode/decode/fromJSON/toJSON/fromPartial */
|
|
440
|
+
requestType: unknown;
|
|
441
|
+
responseType: unknown;
|
|
442
|
+
}
|
|
443
|
+
export declare function getProcedureCodecs(interfaceAndVersion: string, procedure: string): ProcedureCodec;
|
|
444
|
+
export interface QoSProfile {
|
|
445
|
+
name: string;
|
|
446
|
+
priority: "REAL_TIME" | "INTERACTIVE_HIGH" | "INTERACTIVE_LOW" | "DATA_HIGH" | "DATA" | "DATA_LOW" | "BACKGROUND";
|
|
447
|
+
congestion_control: "DROP" | "BLOCK";
|
|
448
|
+
reliability: "RELIABLE" | "BEST_EFFORT";
|
|
449
|
+
express: boolean;
|
|
450
|
+
}
|
|
451
|
+
/** Return the QoS profile assigned to a well-known subject (or the default). */
|
|
452
|
+
export declare function qosFor(subject: string): QoSProfile;
|
|
20
453
|
export declare function getProtobufClassFromTypeName(typeName: string): MessageType<import("./payloads/typeRegistry").UnknownMessage> | undefined;
|
|
21
454
|
export declare function decodePayloadFromTypeName(typeName: string, payload: Uint8Array): import("./payloads/typeRegistry").UnknownMessage | undefined;
|
|
22
455
|
export declare function encodePayloadFromTypeName(typeName: string, payload: any): Uint8Array | undefined;
|
package/dist/index.js
CHANGED
|
@@ -3,15 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.encloseFromTypeName = exports.encodePayloadFromTypeName = exports.decodePayloadFromTypeName = exports.getProtobufClassFromTypeName = exports.getSubjectSchema = exports.isSubjectWellKnown = exports.uncover = exports.enclose = exports.get_subject_from_pubsub_key = exports.parse_rpc_key = exports.parse_pubsub_key = exports.construct_rpc_key = exports.construct_pubSub_key = void 0;
|
|
6
|
+
exports.encloseFromTypeName = exports.encodePayloadFromTypeName = exports.decodePayloadFromTypeName = exports.getProtobufClassFromTypeName = exports.qosFor = exports.getProcedureCodecs = exports.getProcedures = exports.getInterfaceDefinition = exports.listInterfaces = exports.getInterfaceService = exports.isInterfaceWellKnown = exports.getSubjectSchema = exports.isSubjectWellKnown = exports.uncover = exports.enclose = exports.get_subject_from_pubsub_key = exports.parse_rpc_key = exports.parse_pubsub_key = exports.construct_rpc_interface_liveliness_key = exports.construct_source_liveliness_key = exports.construct_rpc_key = exports.construct_pubSub_key = void 0;
|
|
7
7
|
const Envelope_1 = require("./Envelope");
|
|
8
8
|
const subjects_json_1 = __importDefault(require("./subjects.json"));
|
|
9
|
+
const interfaces_json_1 = __importDefault(require("./interfaces.json"));
|
|
10
|
+
const qos_json_1 = __importDefault(require("./qos.json"));
|
|
9
11
|
const typeRegistry_1 = require("./payloads/typeRegistry");
|
|
12
|
+
const serviceRegistry_1 = require("./interfaces/serviceRegistry");
|
|
10
13
|
require("./payloads");
|
|
11
14
|
// KEY HELPER FUNCTIONS
|
|
12
15
|
const KEELSON_BASE_KEY_FORMAT = "{base_path}/@v0/{entity_id}";
|
|
13
16
|
const KEELSON_PUB_SUB_KEY_FORMAT = KEELSON_BASE_KEY_FORMAT + "/pubsub/{subject}/{source_id}";
|
|
14
|
-
const KEELSON_REQ_REP_KEY_FORMAT = KEELSON_BASE_KEY_FORMAT + "/@rpc/{procedure}/{source_id}";
|
|
17
|
+
const KEELSON_REQ_REP_KEY_FORMAT = KEELSON_BASE_KEY_FORMAT + "/@rpc/{interface}/{version}/{procedure}/{source_id}";
|
|
18
|
+
const KEELSON_RPC_INTERFACE_LIVELINESS_KEY_FORMAT = KEELSON_BASE_KEY_FORMAT + "/@rpc/{interface}/{version}/*/{source_id}";
|
|
19
|
+
// An interface version chunk is v{N} with N a positive integer.
|
|
20
|
+
function isValidInterfaceVersion(version) {
|
|
21
|
+
return /^v[1-9][0-9]*$/.test(version);
|
|
22
|
+
}
|
|
15
23
|
function construct_pubSub_key(base_path, entityId, subject, sourceId, targetId) {
|
|
16
24
|
/**
|
|
17
25
|
* Construct a key expression for a publish and subscribe.
|
|
@@ -33,16 +41,58 @@ function construct_pubSub_key(base_path, entityId, subject, sourceId, targetId)
|
|
|
33
41
|
return targetId ? `${key}/@target/${targetId}` : key;
|
|
34
42
|
}
|
|
35
43
|
exports.construct_pubSub_key = construct_pubSub_key;
|
|
36
|
-
function construct_rpc_key(base_path, entityId, procedure, sourceId) {
|
|
44
|
+
function construct_rpc_key(base_path, entityId, iface, version, procedure, sourceId) {
|
|
37
45
|
/**
|
|
38
46
|
* Construct a key expression for a request reply interaction (Queryable).
|
|
47
|
+
*
|
|
48
|
+
* @param iface - Well-known RPC interface name (see interfaces.yaml)
|
|
49
|
+
* @param version - Interface version chunk, v{N} (e.g. "v1")
|
|
39
50
|
*/
|
|
51
|
+
if (!isValidInterfaceVersion(version)) {
|
|
52
|
+
throw new Error(`Interface version '${version}' is not of the required form v{N}`);
|
|
53
|
+
}
|
|
54
|
+
if (!isInterfaceWellKnown(`${iface}/${version}`)) {
|
|
55
|
+
console.warn(`Interface: ${iface}/${version} is NOT well-known!`);
|
|
56
|
+
}
|
|
40
57
|
return KEELSON_REQ_REP_KEY_FORMAT.replace("{base_path}", base_path)
|
|
41
58
|
.replace("{entity_id}", entityId)
|
|
59
|
+
.replace("{interface}", iface)
|
|
60
|
+
.replace("{version}", version)
|
|
42
61
|
.replace("{procedure}", procedure)
|
|
43
62
|
.replace("{source_id}", sourceId);
|
|
44
63
|
}
|
|
45
64
|
exports.construct_rpc_key = construct_rpc_key;
|
|
65
|
+
function construct_source_liveliness_key(base_path, entityId, sourceId) {
|
|
66
|
+
/**
|
|
67
|
+
* Construct the source-level liveliness token key: "this process is
|
|
68
|
+
* present on the bus as a producer in some category". The `*` occupies
|
|
69
|
+
* the category slot (pubsub / @rpc / ...). Note that as a verbatim
|
|
70
|
+
* chunk, @rpc is never matched by the wildcard — RPC capability is
|
|
71
|
+
* discovered via the interface-level token instead.
|
|
72
|
+
*/
|
|
73
|
+
return `${base_path}/@v0/${entityId}/*/${sourceId}`;
|
|
74
|
+
}
|
|
75
|
+
exports.construct_source_liveliness_key = construct_source_liveliness_key;
|
|
76
|
+
function construct_rpc_interface_liveliness_key(base_path, entityId, iface, version, sourceId) {
|
|
77
|
+
/**
|
|
78
|
+
* Construct the liveliness token key for one served RPC
|
|
79
|
+
* (interface, version) pair. The `*` in the procedure slot means
|
|
80
|
+
* "any procedure in this scope"; under the full-interface rule the
|
|
81
|
+
* token also claims full coverage of the interface version.
|
|
82
|
+
*/
|
|
83
|
+
if (!isValidInterfaceVersion(version)) {
|
|
84
|
+
throw new Error(`Interface version '${version}' is not of the required form v{N}`);
|
|
85
|
+
}
|
|
86
|
+
if (!isInterfaceWellKnown(`${iface}/${version}`)) {
|
|
87
|
+
console.warn(`Interface: ${iface}/${version} is NOT well-known!`);
|
|
88
|
+
}
|
|
89
|
+
return KEELSON_RPC_INTERFACE_LIVELINESS_KEY_FORMAT.replace("{base_path}", base_path)
|
|
90
|
+
.replace("{entity_id}", entityId)
|
|
91
|
+
.replace("{interface}", iface)
|
|
92
|
+
.replace("{version}", version)
|
|
93
|
+
.replace("{source_id}", sourceId);
|
|
94
|
+
}
|
|
95
|
+
exports.construct_rpc_interface_liveliness_key = construct_rpc_interface_liveliness_key;
|
|
46
96
|
function parse_pubsub_key(key) {
|
|
47
97
|
/**
|
|
48
98
|
* Parse a key expression for a publish subscribe interaction.
|
|
@@ -74,8 +124,10 @@ function parse_rpc_key(key) {
|
|
|
74
124
|
return {
|
|
75
125
|
base_path: parts[0],
|
|
76
126
|
entityId: parts[2],
|
|
77
|
-
|
|
78
|
-
|
|
127
|
+
interface: parts[4],
|
|
128
|
+
version: parts[5],
|
|
129
|
+
procedure: parts[6],
|
|
130
|
+
sourceId: parts.slice(7).join("/")
|
|
79
131
|
};
|
|
80
132
|
}
|
|
81
133
|
exports.parse_rpc_key = parse_rpc_key;
|
|
@@ -103,6 +155,63 @@ function getSubjectSchema(subject) {
|
|
|
103
155
|
return subjects_json_1.default[subject];
|
|
104
156
|
}
|
|
105
157
|
exports.getSubjectSchema = getSubjectSchema;
|
|
158
|
+
// INTERFACES HELPER FUNCTIONS
|
|
159
|
+
function isInterfaceWellKnown(interfaceAndVersion) {
|
|
160
|
+
return interfaces_json_1.default[interfaceAndVersion] != null;
|
|
161
|
+
}
|
|
162
|
+
exports.isInterfaceWellKnown = isInterfaceWellKnown;
|
|
163
|
+
function getInterfaceService(interfaceAndVersion) {
|
|
164
|
+
return interfaces_json_1.default[interfaceAndVersion];
|
|
165
|
+
}
|
|
166
|
+
exports.getInterfaceService = getInterfaceService;
|
|
167
|
+
function listInterfaces() {
|
|
168
|
+
/** All well-known "{interface}/{version}" keys of this SDK release. */
|
|
169
|
+
return Object.keys(serviceRegistry_1.serviceDefinitions);
|
|
170
|
+
}
|
|
171
|
+
exports.listInterfaces = listInterfaces;
|
|
172
|
+
function getInterfaceDefinition(interfaceAndVersion) {
|
|
173
|
+
/** The ts-proto generic ServiceDefinition for "{interface}/{version}". */
|
|
174
|
+
return serviceRegistry_1.serviceDefinitions[interfaceAndVersion];
|
|
175
|
+
}
|
|
176
|
+
exports.getInterfaceDefinition = getInterfaceDefinition;
|
|
177
|
+
function getProcedures(interfaceAndVersion) {
|
|
178
|
+
/** Procedure (method) names defined by "{interface}/{version}". */
|
|
179
|
+
const definition = getInterfaceDefinition(interfaceAndVersion);
|
|
180
|
+
if (definition == null) {
|
|
181
|
+
throw new Error(`Unknown interface: ${interfaceAndVersion}`);
|
|
182
|
+
}
|
|
183
|
+
return Object.values(definition.methods).map((m) => m.name);
|
|
184
|
+
}
|
|
185
|
+
exports.getProcedures = getProcedures;
|
|
186
|
+
function getProcedureCodecs(interfaceAndVersion, procedure) {
|
|
187
|
+
/**
|
|
188
|
+
* The request/response message codecs of one procedure — each has
|
|
189
|
+
* encode/decode/fromJSON/toJSON/fromPartial per ts-proto's message
|
|
190
|
+
* functions, enabling generic invocation without static imports.
|
|
191
|
+
*/
|
|
192
|
+
const definition = getInterfaceDefinition(interfaceAndVersion);
|
|
193
|
+
if (definition == null) {
|
|
194
|
+
throw new Error(`Unknown interface: ${interfaceAndVersion}`);
|
|
195
|
+
}
|
|
196
|
+
for (const method of Object.values(definition.methods)) {
|
|
197
|
+
const m = method;
|
|
198
|
+
if (m.name === procedure) {
|
|
199
|
+
return { requestType: m.requestType, responseType: m.responseType };
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
throw new Error(`Unknown procedure ${procedure} on ${interfaceAndVersion}`);
|
|
203
|
+
}
|
|
204
|
+
exports.getProcedureCodecs = getProcedureCodecs;
|
|
205
|
+
const QOS_PROFILES = qos_json_1.default.profiles ?? {};
|
|
206
|
+
const QOS_SUBJECTS = qos_json_1.default.subjects ?? {};
|
|
207
|
+
const QOS_DEFAULT = qos_json_1.default.default ?? "default";
|
|
208
|
+
/** Return the QoS profile assigned to a well-known subject (or the default). */
|
|
209
|
+
function qosFor(subject) {
|
|
210
|
+
const name = QOS_SUBJECTS[subject] ?? QOS_DEFAULT;
|
|
211
|
+
const fields = QOS_PROFILES[name];
|
|
212
|
+
return { name, ...fields };
|
|
213
|
+
}
|
|
214
|
+
exports.qosFor = qosFor;
|
|
106
215
|
// PAYLOADS
|
|
107
216
|
function getProtobufClassFromTypeName(typeName) {
|
|
108
217
|
return typeRegistry_1.messageTypeRegistry.get(typeName);
|