@rise-maritime/keelson-js 0.6.0-alpha.275.dev.2 → 0.6.0-alpha.281.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 CHANGED
@@ -156,6 +156,14 @@ export declare function getInterfaceDefinition(interfaceAndVersion: string): {
156
156
  readonly responseStream: false;
157
157
  readonly options: {};
158
158
  };
159
+ readonly describe_file: {
160
+ readonly name: "describe_file";
161
+ readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").DescribeFileRequest>;
162
+ readonly requestStream: false;
163
+ readonly responseType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").DescribeFileResponse>;
164
+ readonly responseStream: false;
165
+ readonly options: {};
166
+ };
159
167
  readonly load_file: {
160
168
  readonly name: "load_file";
161
169
  readonly requestType: import("./interfaces/ReplayControl").MessageFns<import("./interfaces/ReplayControl").LoadFileRequest>;
@@ -22,6 +22,38 @@ export interface ListFilesResponse {
22
22
  baseDirectory: string;
23
23
  files: FileInfo[];
24
24
  }
25
+ export interface DescribeFileRequest {
26
+ /**
27
+ * Path relative to the replayer's base directory, as in load_file. The file
28
+ * need not be loaded — a client can inspect a recording before playing it.
29
+ */
30
+ path: string;
31
+ }
32
+ /** One channel (topic) in the file, and when it spoke. */
33
+ export interface ChannelInfo {
34
+ topic: string;
35
+ /** The channel's schema name as recorded, e.g. "keelson.TimestampedFloat". */
36
+ schemaName: string;
37
+ /** The channel's message encoding as recorded, e.g. "protobuf". */
38
+ messageEncoding: string;
39
+ messageCount: number;
40
+ /**
41
+ * log_time of the channel's first and last message. Unset when the channel
42
+ * recorded no messages. Exact, not the bounds of the chunks it appears in.
43
+ */
44
+ firstTime: Date | undefined;
45
+ lastTime: Date | undefined;
46
+ }
47
+ export interface DescribeFileResponse {
48
+ file: FileInfo | undefined;
49
+ channels: ChannelInfo[];
50
+ /**
51
+ * True when the file carried no summary or no chunk indexes, so the replayer
52
+ * had to read it end to end. The figures are still exact; the call was just
53
+ * proportional to the file's size rather than to its number of chunks.
54
+ */
55
+ fromScan: boolean;
56
+ }
25
57
  export interface LoadFileRequest {
26
58
  path: string;
27
59
  }
@@ -30,7 +62,11 @@ export interface SeekRequest {
30
62
  target: Date | undefined;
31
63
  }
32
64
  export interface SetSpeedRequest {
33
- /** Playback speed multiplier; expected range [0.25, 4.0]. */
65
+ /**
66
+ * Playback speed multiplier; expected range [0.25, 20.0]. At high speeds a
67
+ * recording heavy with images or point clouds is published as fast as the
68
+ * replayer can manage and lags wall time; no message is dropped.
69
+ */
34
70
  speed: number;
35
71
  }
36
72
  export interface SetLoopRequest {
@@ -42,6 +78,9 @@ export interface ReplaySuccessResponse {
42
78
  export declare const FileInfo: MessageFns<FileInfo>;
43
79
  export declare const ListFilesRequest: MessageFns<ListFilesRequest>;
44
80
  export declare const ListFilesResponse: MessageFns<ListFilesResponse>;
81
+ export declare const DescribeFileRequest: MessageFns<DescribeFileRequest>;
82
+ export declare const ChannelInfo: MessageFns<ChannelInfo>;
83
+ export declare const DescribeFileResponse: MessageFns<DescribeFileResponse>;
45
84
  export declare const LoadFileRequest: MessageFns<LoadFileRequest>;
46
85
  export declare const SeekRequest: MessageFns<SeekRequest>;
47
86
  export declare const SetSpeedRequest: MessageFns<SetSpeedRequest>;
@@ -60,6 +99,15 @@ export declare const ReplayControlDefinition: {
60
99
  readonly responseStream: false;
61
100
  readonly options: {};
62
101
  };
102
+ /** Per-channel message counts and first/last message times for one file. */
103
+ readonly describe_file: {
104
+ readonly name: "describe_file";
105
+ readonly requestType: MessageFns<DescribeFileRequest>;
106
+ readonly requestStream: false;
107
+ readonly responseType: MessageFns<DescribeFileResponse>;
108
+ readonly responseStream: false;
109
+ readonly options: {};
110
+ };
63
111
  readonly load_file: {
64
112
  readonly name: "load_file";
65
113
  readonly requestType: MessageFns<LoadFileRequest>;
@@ -5,7 +5,7 @@
5
5
  // protoc v6.30.2
6
6
  // source: ReplayControl.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ReplayControlDefinition = exports.ReplaySuccessResponse = exports.SetLoopRequest = exports.SetSpeedRequest = exports.SeekRequest = exports.LoadFileRequest = exports.ListFilesResponse = exports.ListFilesRequest = exports.FileInfo = exports.protobufPackage = void 0;
8
+ exports.ReplayControlDefinition = exports.ReplaySuccessResponse = exports.SetLoopRequest = exports.SetSpeedRequest = exports.SeekRequest = exports.LoadFileRequest = exports.DescribeFileResponse = exports.ChannelInfo = exports.DescribeFileRequest = exports.ListFilesResponse = exports.ListFilesRequest = exports.FileInfo = exports.protobufPackage = void 0;
9
9
  /* eslint-disable */
10
10
  const wire_1 = require("@bufbuild/protobuf/wire");
11
11
  const empty_1 = require("./google/protobuf/empty");
@@ -283,6 +283,270 @@ exports.ListFilesResponse = {
283
283
  return message;
284
284
  },
285
285
  };
286
+ function createBaseDescribeFileRequest() {
287
+ return { path: "" };
288
+ }
289
+ exports.DescribeFileRequest = {
290
+ encode(message, writer = new wire_1.BinaryWriter()) {
291
+ if (message.path !== "") {
292
+ writer.uint32(10).string(message.path);
293
+ }
294
+ return writer;
295
+ },
296
+ decode(input, length) {
297
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
298
+ let end = length === undefined ? reader.len : reader.pos + length;
299
+ const message = createBaseDescribeFileRequest();
300
+ while (reader.pos < end) {
301
+ const tag = reader.uint32();
302
+ switch (tag >>> 3) {
303
+ case 1: {
304
+ if (tag !== 10) {
305
+ break;
306
+ }
307
+ message.path = reader.string();
308
+ continue;
309
+ }
310
+ }
311
+ if ((tag & 7) === 4 || tag === 0) {
312
+ break;
313
+ }
314
+ reader.skip(tag & 7);
315
+ }
316
+ return message;
317
+ },
318
+ fromJSON(object) {
319
+ return { path: isSet(object.path) ? globalThis.String(object.path) : "" };
320
+ },
321
+ toJSON(message) {
322
+ const obj = {};
323
+ if (message.path !== "") {
324
+ obj.path = message.path;
325
+ }
326
+ return obj;
327
+ },
328
+ create(base) {
329
+ return exports.DescribeFileRequest.fromPartial(base ?? {});
330
+ },
331
+ fromPartial(object) {
332
+ const message = createBaseDescribeFileRequest();
333
+ message.path = object.path ?? "";
334
+ return message;
335
+ },
336
+ };
337
+ function createBaseChannelInfo() {
338
+ return { topic: "", schemaName: "", messageEncoding: "", messageCount: 0, firstTime: undefined, lastTime: undefined };
339
+ }
340
+ exports.ChannelInfo = {
341
+ encode(message, writer = new wire_1.BinaryWriter()) {
342
+ if (message.topic !== "") {
343
+ writer.uint32(10).string(message.topic);
344
+ }
345
+ if (message.schemaName !== "") {
346
+ writer.uint32(18).string(message.schemaName);
347
+ }
348
+ if (message.messageEncoding !== "") {
349
+ writer.uint32(26).string(message.messageEncoding);
350
+ }
351
+ if (message.messageCount !== 0) {
352
+ writer.uint32(32).uint64(message.messageCount);
353
+ }
354
+ if (message.firstTime !== undefined) {
355
+ timestamp_1.Timestamp.encode(toTimestamp(message.firstTime), writer.uint32(42).fork()).join();
356
+ }
357
+ if (message.lastTime !== undefined) {
358
+ timestamp_1.Timestamp.encode(toTimestamp(message.lastTime), writer.uint32(50).fork()).join();
359
+ }
360
+ return writer;
361
+ },
362
+ decode(input, length) {
363
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
364
+ let end = length === undefined ? reader.len : reader.pos + length;
365
+ const message = createBaseChannelInfo();
366
+ while (reader.pos < end) {
367
+ const tag = reader.uint32();
368
+ switch (tag >>> 3) {
369
+ case 1: {
370
+ if (tag !== 10) {
371
+ break;
372
+ }
373
+ message.topic = reader.string();
374
+ continue;
375
+ }
376
+ case 2: {
377
+ if (tag !== 18) {
378
+ break;
379
+ }
380
+ message.schemaName = reader.string();
381
+ continue;
382
+ }
383
+ case 3: {
384
+ if (tag !== 26) {
385
+ break;
386
+ }
387
+ message.messageEncoding = reader.string();
388
+ continue;
389
+ }
390
+ case 4: {
391
+ if (tag !== 32) {
392
+ break;
393
+ }
394
+ message.messageCount = longToNumber(reader.uint64());
395
+ continue;
396
+ }
397
+ case 5: {
398
+ if (tag !== 42) {
399
+ break;
400
+ }
401
+ message.firstTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
402
+ continue;
403
+ }
404
+ case 6: {
405
+ if (tag !== 50) {
406
+ break;
407
+ }
408
+ message.lastTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
409
+ continue;
410
+ }
411
+ }
412
+ if ((tag & 7) === 4 || tag === 0) {
413
+ break;
414
+ }
415
+ reader.skip(tag & 7);
416
+ }
417
+ return message;
418
+ },
419
+ fromJSON(object) {
420
+ return {
421
+ topic: isSet(object.topic) ? globalThis.String(object.topic) : "",
422
+ schemaName: isSet(object.schemaName) ? globalThis.String(object.schemaName) : "",
423
+ messageEncoding: isSet(object.messageEncoding) ? globalThis.String(object.messageEncoding) : "",
424
+ messageCount: isSet(object.messageCount) ? globalThis.Number(object.messageCount) : 0,
425
+ firstTime: isSet(object.firstTime) ? fromJsonTimestamp(object.firstTime) : undefined,
426
+ lastTime: isSet(object.lastTime) ? fromJsonTimestamp(object.lastTime) : undefined,
427
+ };
428
+ },
429
+ toJSON(message) {
430
+ const obj = {};
431
+ if (message.topic !== "") {
432
+ obj.topic = message.topic;
433
+ }
434
+ if (message.schemaName !== "") {
435
+ obj.schemaName = message.schemaName;
436
+ }
437
+ if (message.messageEncoding !== "") {
438
+ obj.messageEncoding = message.messageEncoding;
439
+ }
440
+ if (message.messageCount !== 0) {
441
+ obj.messageCount = Math.round(message.messageCount);
442
+ }
443
+ if (message.firstTime !== undefined) {
444
+ obj.firstTime = message.firstTime.toISOString();
445
+ }
446
+ if (message.lastTime !== undefined) {
447
+ obj.lastTime = message.lastTime.toISOString();
448
+ }
449
+ return obj;
450
+ },
451
+ create(base) {
452
+ return exports.ChannelInfo.fromPartial(base ?? {});
453
+ },
454
+ fromPartial(object) {
455
+ const message = createBaseChannelInfo();
456
+ message.topic = object.topic ?? "";
457
+ message.schemaName = object.schemaName ?? "";
458
+ message.messageEncoding = object.messageEncoding ?? "";
459
+ message.messageCount = object.messageCount ?? 0;
460
+ message.firstTime = object.firstTime ?? undefined;
461
+ message.lastTime = object.lastTime ?? undefined;
462
+ return message;
463
+ },
464
+ };
465
+ function createBaseDescribeFileResponse() {
466
+ return { file: undefined, channels: [], fromScan: false };
467
+ }
468
+ exports.DescribeFileResponse = {
469
+ encode(message, writer = new wire_1.BinaryWriter()) {
470
+ if (message.file !== undefined) {
471
+ exports.FileInfo.encode(message.file, writer.uint32(10).fork()).join();
472
+ }
473
+ for (const v of message.channels) {
474
+ exports.ChannelInfo.encode(v, writer.uint32(18).fork()).join();
475
+ }
476
+ if (message.fromScan !== false) {
477
+ writer.uint32(24).bool(message.fromScan);
478
+ }
479
+ return writer;
480
+ },
481
+ decode(input, length) {
482
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
483
+ let end = length === undefined ? reader.len : reader.pos + length;
484
+ const message = createBaseDescribeFileResponse();
485
+ while (reader.pos < end) {
486
+ const tag = reader.uint32();
487
+ switch (tag >>> 3) {
488
+ case 1: {
489
+ if (tag !== 10) {
490
+ break;
491
+ }
492
+ message.file = exports.FileInfo.decode(reader, reader.uint32());
493
+ continue;
494
+ }
495
+ case 2: {
496
+ if (tag !== 18) {
497
+ break;
498
+ }
499
+ message.channels.push(exports.ChannelInfo.decode(reader, reader.uint32()));
500
+ continue;
501
+ }
502
+ case 3: {
503
+ if (tag !== 24) {
504
+ break;
505
+ }
506
+ message.fromScan = reader.bool();
507
+ continue;
508
+ }
509
+ }
510
+ if ((tag & 7) === 4 || tag === 0) {
511
+ break;
512
+ }
513
+ reader.skip(tag & 7);
514
+ }
515
+ return message;
516
+ },
517
+ fromJSON(object) {
518
+ return {
519
+ file: isSet(object.file) ? exports.FileInfo.fromJSON(object.file) : undefined,
520
+ channels: globalThis.Array.isArray(object?.channels)
521
+ ? object.channels.map((e) => exports.ChannelInfo.fromJSON(e))
522
+ : [],
523
+ fromScan: isSet(object.fromScan) ? globalThis.Boolean(object.fromScan) : false,
524
+ };
525
+ },
526
+ toJSON(message) {
527
+ const obj = {};
528
+ if (message.file !== undefined) {
529
+ obj.file = exports.FileInfo.toJSON(message.file);
530
+ }
531
+ if (message.channels?.length) {
532
+ obj.channels = message.channels.map((e) => exports.ChannelInfo.toJSON(e));
533
+ }
534
+ if (message.fromScan !== false) {
535
+ obj.fromScan = message.fromScan;
536
+ }
537
+ return obj;
538
+ },
539
+ create(base) {
540
+ return exports.DescribeFileResponse.fromPartial(base ?? {});
541
+ },
542
+ fromPartial(object) {
543
+ const message = createBaseDescribeFileResponse();
544
+ message.file = (object.file !== undefined && object.file !== null) ? exports.FileInfo.fromPartial(object.file) : undefined;
545
+ message.channels = object.channels?.map((e) => exports.ChannelInfo.fromPartial(e)) || [];
546
+ message.fromScan = object.fromScan ?? false;
547
+ return message;
548
+ },
549
+ };
286
550
  function createBaseLoadFileRequest() {
287
551
  return { path: "" };
288
552
  }
@@ -536,6 +800,15 @@ exports.ReplayControlDefinition = {
536
800
  responseStream: false,
537
801
  options: {},
538
802
  },
803
+ /** Per-channel message counts and first/last message times for one file. */
804
+ describe_file: {
805
+ name: "describe_file",
806
+ requestType: exports.DescribeFileRequest,
807
+ requestStream: false,
808
+ responseType: exports.DescribeFileResponse,
809
+ responseStream: false,
810
+ options: {},
811
+ },
539
812
  load_file: {
540
813
  name: "load_file",
541
814
  requestType: exports.LoadFileRequest,
@@ -99,31 +99,6 @@ export declare enum GeometryType {
99
99
  }
100
100
  export declare function geometryTypeFromJSON(object: any): GeometryType;
101
101
  export declare function geometryTypeToJSON(object: GeometryType): string;
102
- /**
103
- * How a leg's XTD corridor is shaped. UNSPECIFIED MUST be read as FIXED:
104
- * every leg published before this field existed is a fixed-width corridor, and
105
- * reading it any other way would change routes nobody edited.
106
- */
107
- export declare enum XtdCorridorMode {
108
- XTD_CORRIDOR_MODE_UNSPECIFIED = 0,
109
- /**
110
- * XTD_CORRIDOR_MODE_FIXED - Fixed width: parallel lines at xtd_port_m / xtd_starboard_m either side of
111
- * track.
112
- */
113
- XTD_CORRIDOR_MODE_FIXED = 1,
114
- /**
115
- * XTD_CORRIDOR_MODE_VARIABLE - Variable width: a boundary drawn by the planner (Leg.xtd_port_boundary /
116
- * xtd_starboard_boundary), e.g. a corridor that narrows past a shoal.
117
- * xtd_port_m / xtd_starboard_m still carry a nominal limit for a monitor
118
- * that does not evaluate the boundary. That fallback is NOT conservative when
119
- * the drawn corridor is narrower than the nominal one, which is why such a
120
- * monitor SHOULD report the leg as monitored at reduced fidelity.
121
- */
122
- XTD_CORRIDOR_MODE_VARIABLE = 2,
123
- UNRECOGNIZED = -1
124
- }
125
- export declare function xtdCorridorModeFromJSON(object: any): XtdCorridorMode;
126
- export declare function xtdCorridorModeToJSON(object: XtdCorridorMode): string;
127
102
  /**
128
103
  * Whether a route's waypoint list closes back on itself. RTZ 1.2 has no such
129
104
  * concept, so producers either repeated the first waypoint (breaking id
@@ -491,19 +466,6 @@ export interface Leg {
491
466
  xtdStarboardM?: number | undefined;
492
467
  xtdMonitoringPortM?: number | undefined;
493
468
  xtdMonitoringStarboardM?: number | undefined;
494
- /**
495
- * Whether this leg's XTD corridor is fixed or variable width. See XtdCorridorMode and
496
- * protocol-specification.md §6.2.2.
497
- */
498
- xtdCorridorMode: XtdCorridorMode;
499
- /**
500
- * VARIABLE only: the drawn corridor boundary on each side, vertices in
501
- * along-track order, covering this leg and the turn at the waypoint it
502
- * arrives at. A consumer MUST ignore both lists unless the mode is VARIABLE,
503
- * so a stale shape left behind by a switch back to FIXED is never sailed.
504
- */
505
- xtdPortBoundary: XtdBoundaryPoint[];
506
- xtdStarboardBoundary: XtdBoundaryPoint[];
507
469
  /**
508
470
  * Safety contour (depth in metres below chart datum) below which the route
509
471
  * is considered unsafe.
@@ -552,36 +514,6 @@ export interface Leg {
552
514
  colregTrafficIntensity: ColregTrafficIntensity;
553
515
  extensions: Extensions | undefined;
554
516
  }
555
- /**
556
- * One vertex of a variable-width XTD corridor boundary (Leg.xtd_port_boundary /
557
- * Leg.xtd_starboard_boundary).
558
- */
559
- export interface XtdBoundaryPoint {
560
- /**
561
- * WGS-84 vertex. Authoritative: this is the boundary a monitor checks
562
- * against, whatever the anchor below says.
563
- */
564
- position: Coordinate | undefined;
565
- /**
566
- * Editor anchor — where along the leg's straight the vertex was placed,
567
- * 0 at the leg's start and 1 at its end, and how far off track. Lets an
568
- * editor keep the vertex attached to the leg when a waypoint moves, instead
569
- * of leaving it stranded at its old position. `optional` because a vertex
570
- * placed freely (at a leg end or inside a turn) has no such anchor, and 0
571
- * is a real fraction.
572
- */
573
- alongTrackFraction?: number | undefined;
574
- /**
575
- * Perpendicular distance from track for that anchor, metres, always
576
- * positive: the side is given by which boundary list holds the vertex.
577
- */
578
- offsetM?: number | undefined;
579
- /**
580
- * True when the vertex lies on the turn at the leg's end rather than on the
581
- * straight.
582
- */
583
- inTurn: boolean;
584
- }
585
517
  export interface Schedules {
586
518
  /** Multiple schedules can coexist (e.g. "manual", "weather-optimized"). */
587
519
  schedule: Schedule[];
@@ -766,7 +698,6 @@ export declare const Waypoints: MessageFns<Waypoints>;
766
698
  export declare const DefaultWaypoint: MessageFns<DefaultWaypoint>;
767
699
  export declare const Waypoint: MessageFns<Waypoint>;
768
700
  export declare const Leg: MessageFns<Leg>;
769
- export declare const XtdBoundaryPoint: MessageFns<XtdBoundaryPoint>;
770
701
  export declare const Schedules: MessageFns<Schedules>;
771
702
  export declare const Schedule: MessageFns<Schedule>;
772
703
  export declare const ScheduleElement: MessageFns<ScheduleElement>;
@@ -5,8 +5,8 @@
5
5
  // protoc v6.30.2
6
6
  // source: Route.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.xtdCorridorModeToJSON = exports.xtdCorridorModeFromJSON = exports.XtdCorridorMode = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = exports.protobufPackage = void 0;
9
- exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = exports.ScheduleElement = exports.Schedule = exports.Schedules = exports.XtdBoundaryPoint = exports.Leg = void 0;
8
+ exports.Schedule = exports.Schedules = exports.Leg = exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = exports.protobufPackage = void 0;
9
+ exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = exports.ScheduleElement = void 0;
10
10
  /* eslint-disable */
11
11
  const wire_1 = require("@bufbuild/protobuf/wire");
12
12
  const Coordinate_1 = require("./Coordinate");
@@ -432,62 +432,6 @@ function geometryTypeToJSON(object) {
432
432
  }
433
433
  }
434
434
  exports.geometryTypeToJSON = geometryTypeToJSON;
435
- /**
436
- * How a leg's XTD corridor is shaped. UNSPECIFIED MUST be read as FIXED:
437
- * every leg published before this field existed is a fixed-width corridor, and
438
- * reading it any other way would change routes nobody edited.
439
- */
440
- var XtdCorridorMode;
441
- (function (XtdCorridorMode) {
442
- XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_UNSPECIFIED"] = 0] = "XTD_CORRIDOR_MODE_UNSPECIFIED";
443
- /**
444
- * XTD_CORRIDOR_MODE_FIXED - Fixed width: parallel lines at xtd_port_m / xtd_starboard_m either side of
445
- * track.
446
- */
447
- XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_FIXED"] = 1] = "XTD_CORRIDOR_MODE_FIXED";
448
- /**
449
- * XTD_CORRIDOR_MODE_VARIABLE - Variable width: a boundary drawn by the planner (Leg.xtd_port_boundary /
450
- * xtd_starboard_boundary), e.g. a corridor that narrows past a shoal.
451
- * xtd_port_m / xtd_starboard_m still carry a nominal limit for a monitor
452
- * that does not evaluate the boundary. That fallback is NOT conservative when
453
- * the drawn corridor is narrower than the nominal one, which is why such a
454
- * monitor SHOULD report the leg as monitored at reduced fidelity.
455
- */
456
- XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_VARIABLE"] = 2] = "XTD_CORRIDOR_MODE_VARIABLE";
457
- XtdCorridorMode[XtdCorridorMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
458
- })(XtdCorridorMode || (exports.XtdCorridorMode = XtdCorridorMode = {}));
459
- function xtdCorridorModeFromJSON(object) {
460
- switch (object) {
461
- case 0:
462
- case "XTD_CORRIDOR_MODE_UNSPECIFIED":
463
- return XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED;
464
- case 1:
465
- case "XTD_CORRIDOR_MODE_FIXED":
466
- return XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED;
467
- case 2:
468
- case "XTD_CORRIDOR_MODE_VARIABLE":
469
- return XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE;
470
- case -1:
471
- case "UNRECOGNIZED":
472
- default:
473
- return XtdCorridorMode.UNRECOGNIZED;
474
- }
475
- }
476
- exports.xtdCorridorModeFromJSON = xtdCorridorModeFromJSON;
477
- function xtdCorridorModeToJSON(object) {
478
- switch (object) {
479
- case XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED:
480
- return "XTD_CORRIDOR_MODE_UNSPECIFIED";
481
- case XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED:
482
- return "XTD_CORRIDOR_MODE_FIXED";
483
- case XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE:
484
- return "XTD_CORRIDOR_MODE_VARIABLE";
485
- case XtdCorridorMode.UNRECOGNIZED:
486
- default:
487
- return "UNRECOGNIZED";
488
- }
489
- }
490
- exports.xtdCorridorModeToJSON = xtdCorridorModeToJSON;
491
435
  /**
492
436
  * Whether a route's waypoint list closes back on itself. RTZ 1.2 has no such
493
437
  * concept, so producers either repeated the first waypoint (breaking id
@@ -2275,9 +2219,6 @@ function createBaseLeg() {
2275
2219
  xtdStarboardM: undefined,
2276
2220
  xtdMonitoringPortM: undefined,
2277
2221
  xtdMonitoringStarboardM: undefined,
2278
- xtdCorridorMode: 0,
2279
- xtdPortBoundary: [],
2280
- xtdStarboardBoundary: [],
2281
2222
  safetyContourM: undefined,
2282
2223
  safetyDepthM: undefined,
2283
2224
  ukcStaticM: undefined,
@@ -2315,15 +2256,6 @@ exports.Leg = {
2315
2256
  if (message.xtdMonitoringStarboardM !== undefined) {
2316
2257
  writer.uint32(37).float(message.xtdMonitoringStarboardM);
2317
2258
  }
2318
- if (message.xtdCorridorMode !== 0) {
2319
- writer.uint32(40).int32(message.xtdCorridorMode);
2320
- }
2321
- for (const v of message.xtdPortBoundary) {
2322
- exports.XtdBoundaryPoint.encode(v, writer.uint32(50).fork()).join();
2323
- }
2324
- for (const v of message.xtdStarboardBoundary) {
2325
- exports.XtdBoundaryPoint.encode(v, writer.uint32(58).fork()).join();
2326
- }
2327
2259
  if (message.safetyContourM !== undefined) {
2328
2260
  writer.uint32(85).float(message.safetyContourM);
2329
2261
  }
@@ -2424,27 +2356,6 @@ exports.Leg = {
2424
2356
  message.xtdMonitoringStarboardM = reader.float();
2425
2357
  continue;
2426
2358
  }
2427
- case 5: {
2428
- if (tag !== 40) {
2429
- break;
2430
- }
2431
- message.xtdCorridorMode = reader.int32();
2432
- continue;
2433
- }
2434
- case 6: {
2435
- if (tag !== 50) {
2436
- break;
2437
- }
2438
- message.xtdPortBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2439
- continue;
2440
- }
2441
- case 7: {
2442
- if (tag !== 58) {
2443
- break;
2444
- }
2445
- message.xtdStarboardBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2446
- continue;
2447
- }
2448
2359
  case 10: {
2449
2360
  if (tag !== 85) {
2450
2361
  break;
@@ -2608,13 +2519,6 @@ exports.Leg = {
2608
2519
  xtdMonitoringStarboardM: isSet(object.xtdMonitoringStarboardM)
2609
2520
  ? globalThis.Number(object.xtdMonitoringStarboardM)
2610
2521
  : undefined,
2611
- xtdCorridorMode: isSet(object.xtdCorridorMode) ? xtdCorridorModeFromJSON(object.xtdCorridorMode) : 0,
2612
- xtdPortBoundary: globalThis.Array.isArray(object?.xtdPortBoundary)
2613
- ? object.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2614
- : [],
2615
- xtdStarboardBoundary: globalThis.Array.isArray(object?.xtdStarboardBoundary)
2616
- ? object.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2617
- : [],
2618
2522
  safetyContourM: isSet(object.safetyContourM) ? globalThis.Number(object.safetyContourM) : undefined,
2619
2523
  safetyDepthM: isSet(object.safetyDepthM) ? globalThis.Number(object.safetyDepthM) : undefined,
2620
2524
  ukcStaticM: isSet(object.ukcStaticM) ? globalThis.Number(object.ukcStaticM) : undefined,
@@ -2654,15 +2558,6 @@ exports.Leg = {
2654
2558
  if (message.xtdMonitoringStarboardM !== undefined) {
2655
2559
  obj.xtdMonitoringStarboardM = message.xtdMonitoringStarboardM;
2656
2560
  }
2657
- if (message.xtdCorridorMode !== 0) {
2658
- obj.xtdCorridorMode = xtdCorridorModeToJSON(message.xtdCorridorMode);
2659
- }
2660
- if (message.xtdPortBoundary?.length) {
2661
- obj.xtdPortBoundary = message.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2662
- }
2663
- if (message.xtdStarboardBoundary?.length) {
2664
- obj.xtdStarboardBoundary = message.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2665
- }
2666
2561
  if (message.safetyContourM !== undefined) {
2667
2562
  obj.safetyContourM = message.safetyContourM;
2668
2563
  }
@@ -2737,9 +2632,6 @@ exports.Leg = {
2737
2632
  message.xtdStarboardM = object.xtdStarboardM ?? undefined;
2738
2633
  message.xtdMonitoringPortM = object.xtdMonitoringPortM ?? undefined;
2739
2634
  message.xtdMonitoringStarboardM = object.xtdMonitoringStarboardM ?? undefined;
2740
- message.xtdCorridorMode = object.xtdCorridorMode ?? 0;
2741
- message.xtdPortBoundary = object.xtdPortBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2742
- message.xtdStarboardBoundary = object.xtdStarboardBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2743
2635
  message.safetyContourM = object.safetyContourM ?? undefined;
2744
2636
  message.safetyDepthM = object.safetyDepthM ?? undefined;
2745
2637
  message.ukcStaticM = object.ukcStaticM ?? undefined;
@@ -2766,106 +2658,6 @@ exports.Leg = {
2766
2658
  return message;
2767
2659
  },
2768
2660
  };
2769
- function createBaseXtdBoundaryPoint() {
2770
- return { position: undefined, alongTrackFraction: undefined, offsetM: undefined, inTurn: false };
2771
- }
2772
- exports.XtdBoundaryPoint = {
2773
- encode(message, writer = new wire_1.BinaryWriter()) {
2774
- if (message.position !== undefined) {
2775
- Coordinate_1.Coordinate.encode(message.position, writer.uint32(10).fork()).join();
2776
- }
2777
- if (message.alongTrackFraction !== undefined) {
2778
- writer.uint32(17).double(message.alongTrackFraction);
2779
- }
2780
- if (message.offsetM !== undefined) {
2781
- writer.uint32(29).float(message.offsetM);
2782
- }
2783
- if (message.inTurn !== false) {
2784
- writer.uint32(32).bool(message.inTurn);
2785
- }
2786
- return writer;
2787
- },
2788
- decode(input, length) {
2789
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2790
- let end = length === undefined ? reader.len : reader.pos + length;
2791
- const message = createBaseXtdBoundaryPoint();
2792
- while (reader.pos < end) {
2793
- const tag = reader.uint32();
2794
- switch (tag >>> 3) {
2795
- case 1: {
2796
- if (tag !== 10) {
2797
- break;
2798
- }
2799
- message.position = Coordinate_1.Coordinate.decode(reader, reader.uint32());
2800
- continue;
2801
- }
2802
- case 2: {
2803
- if (tag !== 17) {
2804
- break;
2805
- }
2806
- message.alongTrackFraction = reader.double();
2807
- continue;
2808
- }
2809
- case 3: {
2810
- if (tag !== 29) {
2811
- break;
2812
- }
2813
- message.offsetM = reader.float();
2814
- continue;
2815
- }
2816
- case 4: {
2817
- if (tag !== 32) {
2818
- break;
2819
- }
2820
- message.inTurn = reader.bool();
2821
- continue;
2822
- }
2823
- }
2824
- if ((tag & 7) === 4 || tag === 0) {
2825
- break;
2826
- }
2827
- reader.skip(tag & 7);
2828
- }
2829
- return message;
2830
- },
2831
- fromJSON(object) {
2832
- return {
2833
- position: isSet(object.position) ? Coordinate_1.Coordinate.fromJSON(object.position) : undefined,
2834
- alongTrackFraction: isSet(object.alongTrackFraction) ? globalThis.Number(object.alongTrackFraction) : undefined,
2835
- offsetM: isSet(object.offsetM) ? globalThis.Number(object.offsetM) : undefined,
2836
- inTurn: isSet(object.inTurn) ? globalThis.Boolean(object.inTurn) : false,
2837
- };
2838
- },
2839
- toJSON(message) {
2840
- const obj = {};
2841
- if (message.position !== undefined) {
2842
- obj.position = Coordinate_1.Coordinate.toJSON(message.position);
2843
- }
2844
- if (message.alongTrackFraction !== undefined) {
2845
- obj.alongTrackFraction = message.alongTrackFraction;
2846
- }
2847
- if (message.offsetM !== undefined) {
2848
- obj.offsetM = message.offsetM;
2849
- }
2850
- if (message.inTurn !== false) {
2851
- obj.inTurn = message.inTurn;
2852
- }
2853
- return obj;
2854
- },
2855
- create(base) {
2856
- return exports.XtdBoundaryPoint.fromPartial(base ?? {});
2857
- },
2858
- fromPartial(object) {
2859
- const message = createBaseXtdBoundaryPoint();
2860
- message.position = (object.position !== undefined && object.position !== null)
2861
- ? Coordinate_1.Coordinate.fromPartial(object.position)
2862
- : undefined;
2863
- message.alongTrackFraction = object.alongTrackFraction ?? undefined;
2864
- message.offsetM = object.offsetM ?? undefined;
2865
- message.inTurn = object.inTurn ?? false;
2866
- return message;
2867
- },
2868
- };
2869
2661
  function createBaseSchedules() {
2870
2662
  return { schedule: [], extensions: undefined };
2871
2663
  }
@@ -137,6 +137,14 @@ export declare const serviceDefinitions: {
137
137
  readonly responseStream: false;
138
138
  readonly options: {};
139
139
  };
140
+ readonly describe_file: {
141
+ readonly name: "describe_file";
142
+ readonly requestType: import("./ReplayControl").MessageFns<import("./ReplayControl").DescribeFileRequest>;
143
+ readonly requestStream: false;
144
+ readonly responseType: import("./ReplayControl").MessageFns<import("./ReplayControl").DescribeFileResponse>;
145
+ readonly responseStream: false;
146
+ readonly options: {};
147
+ };
140
148
  readonly load_file: {
141
149
  readonly name: "load_file";
142
150
  readonly requestType: import("./ReplayControl").MessageFns<import("./ReplayControl").LoadFileRequest>;
@@ -98,31 +98,6 @@ export declare enum GeometryType {
98
98
  }
99
99
  export declare function geometryTypeFromJSON(object: any): GeometryType;
100
100
  export declare function geometryTypeToJSON(object: GeometryType): string;
101
- /**
102
- * How a leg's XTD corridor is shaped. UNSPECIFIED MUST be read as FIXED:
103
- * every leg published before this field existed is a fixed-width corridor, and
104
- * reading it any other way would change routes nobody edited.
105
- */
106
- export declare enum XtdCorridorMode {
107
- XTD_CORRIDOR_MODE_UNSPECIFIED = 0,
108
- /**
109
- * XTD_CORRIDOR_MODE_FIXED - Fixed width: parallel lines at xtd_port_m / xtd_starboard_m either side of
110
- * track.
111
- */
112
- XTD_CORRIDOR_MODE_FIXED = 1,
113
- /**
114
- * XTD_CORRIDOR_MODE_VARIABLE - Variable width: a boundary drawn by the planner (Leg.xtd_port_boundary /
115
- * xtd_starboard_boundary), e.g. a corridor that narrows past a shoal.
116
- * xtd_port_m / xtd_starboard_m still carry a nominal limit for a monitor
117
- * that does not evaluate the boundary. That fallback is NOT conservative when
118
- * the drawn corridor is narrower than the nominal one, which is why such a
119
- * monitor SHOULD report the leg as monitored at reduced fidelity.
120
- */
121
- XTD_CORRIDOR_MODE_VARIABLE = 2,
122
- UNRECOGNIZED = -1
123
- }
124
- export declare function xtdCorridorModeFromJSON(object: any): XtdCorridorMode;
125
- export declare function xtdCorridorModeToJSON(object: XtdCorridorMode): string;
126
101
  /**
127
102
  * Whether a route's waypoint list closes back on itself. RTZ 1.2 has no such
128
103
  * concept, so producers either repeated the first waypoint (breaking id
@@ -501,19 +476,6 @@ export interface Leg {
501
476
  xtdStarboardM?: number | undefined;
502
477
  xtdMonitoringPortM?: number | undefined;
503
478
  xtdMonitoringStarboardM?: number | undefined;
504
- /**
505
- * Whether this leg's XTD corridor is fixed or variable width. See XtdCorridorMode and
506
- * protocol-specification.md §6.2.2.
507
- */
508
- xtdCorridorMode: XtdCorridorMode;
509
- /**
510
- * VARIABLE only: the drawn corridor boundary on each side, vertices in
511
- * along-track order, covering this leg and the turn at the waypoint it
512
- * arrives at. A consumer MUST ignore both lists unless the mode is VARIABLE,
513
- * so a stale shape left behind by a switch back to FIXED is never sailed.
514
- */
515
- xtdPortBoundary: XtdBoundaryPoint[];
516
- xtdStarboardBoundary: XtdBoundaryPoint[];
517
479
  /**
518
480
  * Safety contour (depth in metres below chart datum) below which the route
519
481
  * is considered unsafe.
@@ -562,37 +524,6 @@ export interface Leg {
562
524
  colregTrafficIntensity: ColregTrafficIntensity;
563
525
  extensions: Extensions | undefined;
564
526
  }
565
- /**
566
- * One vertex of a variable-width XTD corridor boundary (Leg.xtd_port_boundary /
567
- * Leg.xtd_starboard_boundary).
568
- */
569
- export interface XtdBoundaryPoint {
570
- $type: "keelson.XtdBoundaryPoint";
571
- /**
572
- * WGS-84 vertex. Authoritative: this is the boundary a monitor checks
573
- * against, whatever the anchor below says.
574
- */
575
- position: Coordinate | undefined;
576
- /**
577
- * Editor anchor — where along the leg's straight the vertex was placed,
578
- * 0 at the leg's start and 1 at its end, and how far off track. Lets an
579
- * editor keep the vertex attached to the leg when a waypoint moves, instead
580
- * of leaving it stranded at its old position. `optional` because a vertex
581
- * placed freely (at a leg end or inside a turn) has no such anchor, and 0
582
- * is a real fraction.
583
- */
584
- alongTrackFraction?: number | undefined;
585
- /**
586
- * Perpendicular distance from track for that anchor, metres, always
587
- * positive: the side is given by which boundary list holds the vertex.
588
- */
589
- offsetM?: number | undefined;
590
- /**
591
- * True when the vertex lies on the turn at the leg's end rather than on the
592
- * straight.
593
- */
594
- inTurn: boolean;
595
- }
596
527
  export interface Schedules {
597
528
  $type: "keelson.Schedules";
598
529
  /** Multiple schedules can coexist (e.g. "manual", "weather-optimized"). */
@@ -788,7 +719,6 @@ export declare const Waypoints: MessageFns<Waypoints, "keelson.Waypoints">;
788
719
  export declare const DefaultWaypoint: MessageFns<DefaultWaypoint, "keelson.DefaultWaypoint">;
789
720
  export declare const Waypoint: MessageFns<Waypoint, "keelson.Waypoint">;
790
721
  export declare const Leg: MessageFns<Leg, "keelson.Leg">;
791
- export declare const XtdBoundaryPoint: MessageFns<XtdBoundaryPoint, "keelson.XtdBoundaryPoint">;
792
722
  export declare const Schedules: MessageFns<Schedules, "keelson.Schedules">;
793
723
  export declare const Schedule: MessageFns<Schedule, "keelson.Schedule">;
794
724
  export declare const ScheduleElement: MessageFns<ScheduleElement, "keelson.ScheduleElement">;
@@ -5,8 +5,8 @@
5
5
  // protoc v6.30.2
6
6
  // source: Route.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.Leg = exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.xtdCorridorModeToJSON = exports.xtdCorridorModeFromJSON = exports.XtdCorridorMode = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = void 0;
9
- exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = exports.ScheduleElement = exports.Schedule = exports.Schedules = exports.XtdBoundaryPoint = void 0;
8
+ exports.ScheduleElement = exports.Schedule = exports.Schedules = exports.Leg = exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = void 0;
9
+ exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = void 0;
10
10
  /* eslint-disable */
11
11
  const wire_1 = require("@bufbuild/protobuf/wire");
12
12
  const Coordinate_1 = require("./Coordinate");
@@ -432,62 +432,6 @@ function geometryTypeToJSON(object) {
432
432
  }
433
433
  }
434
434
  exports.geometryTypeToJSON = geometryTypeToJSON;
435
- /**
436
- * How a leg's XTD corridor is shaped. UNSPECIFIED MUST be read as FIXED:
437
- * every leg published before this field existed is a fixed-width corridor, and
438
- * reading it any other way would change routes nobody edited.
439
- */
440
- var XtdCorridorMode;
441
- (function (XtdCorridorMode) {
442
- XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_UNSPECIFIED"] = 0] = "XTD_CORRIDOR_MODE_UNSPECIFIED";
443
- /**
444
- * XTD_CORRIDOR_MODE_FIXED - Fixed width: parallel lines at xtd_port_m / xtd_starboard_m either side of
445
- * track.
446
- */
447
- XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_FIXED"] = 1] = "XTD_CORRIDOR_MODE_FIXED";
448
- /**
449
- * XTD_CORRIDOR_MODE_VARIABLE - Variable width: a boundary drawn by the planner (Leg.xtd_port_boundary /
450
- * xtd_starboard_boundary), e.g. a corridor that narrows past a shoal.
451
- * xtd_port_m / xtd_starboard_m still carry a nominal limit for a monitor
452
- * that does not evaluate the boundary. That fallback is NOT conservative when
453
- * the drawn corridor is narrower than the nominal one, which is why such a
454
- * monitor SHOULD report the leg as monitored at reduced fidelity.
455
- */
456
- XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_VARIABLE"] = 2] = "XTD_CORRIDOR_MODE_VARIABLE";
457
- XtdCorridorMode[XtdCorridorMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
458
- })(XtdCorridorMode || (exports.XtdCorridorMode = XtdCorridorMode = {}));
459
- function xtdCorridorModeFromJSON(object) {
460
- switch (object) {
461
- case 0:
462
- case "XTD_CORRIDOR_MODE_UNSPECIFIED":
463
- return XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED;
464
- case 1:
465
- case "XTD_CORRIDOR_MODE_FIXED":
466
- return XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED;
467
- case 2:
468
- case "XTD_CORRIDOR_MODE_VARIABLE":
469
- return XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE;
470
- case -1:
471
- case "UNRECOGNIZED":
472
- default:
473
- return XtdCorridorMode.UNRECOGNIZED;
474
- }
475
- }
476
- exports.xtdCorridorModeFromJSON = xtdCorridorModeFromJSON;
477
- function xtdCorridorModeToJSON(object) {
478
- switch (object) {
479
- case XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED:
480
- return "XTD_CORRIDOR_MODE_UNSPECIFIED";
481
- case XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED:
482
- return "XTD_CORRIDOR_MODE_FIXED";
483
- case XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE:
484
- return "XTD_CORRIDOR_MODE_VARIABLE";
485
- case XtdCorridorMode.UNRECOGNIZED:
486
- default:
487
- return "UNRECOGNIZED";
488
- }
489
- }
490
- exports.xtdCorridorModeToJSON = xtdCorridorModeToJSON;
491
435
  /**
492
436
  * Whether a route's waypoint list closes back on itself. RTZ 1.2 has no such
493
437
  * concept, so producers either repeated the first waypoint (breaking id
@@ -2320,9 +2264,6 @@ function createBaseLeg() {
2320
2264
  xtdStarboardM: undefined,
2321
2265
  xtdMonitoringPortM: undefined,
2322
2266
  xtdMonitoringStarboardM: undefined,
2323
- xtdCorridorMode: 0,
2324
- xtdPortBoundary: [],
2325
- xtdStarboardBoundary: [],
2326
2267
  safetyContourM: undefined,
2327
2268
  safetyDepthM: undefined,
2328
2269
  ukcStaticM: undefined,
@@ -2361,15 +2302,6 @@ exports.Leg = {
2361
2302
  if (message.xtdMonitoringStarboardM !== undefined) {
2362
2303
  writer.uint32(37).float(message.xtdMonitoringStarboardM);
2363
2304
  }
2364
- if (message.xtdCorridorMode !== 0) {
2365
- writer.uint32(40).int32(message.xtdCorridorMode);
2366
- }
2367
- for (const v of message.xtdPortBoundary) {
2368
- exports.XtdBoundaryPoint.encode(v, writer.uint32(50).fork()).join();
2369
- }
2370
- for (const v of message.xtdStarboardBoundary) {
2371
- exports.XtdBoundaryPoint.encode(v, writer.uint32(58).fork()).join();
2372
- }
2373
2305
  if (message.safetyContourM !== undefined) {
2374
2306
  writer.uint32(85).float(message.safetyContourM);
2375
2307
  }
@@ -2470,27 +2402,6 @@ exports.Leg = {
2470
2402
  message.xtdMonitoringStarboardM = reader.float();
2471
2403
  continue;
2472
2404
  }
2473
- case 5: {
2474
- if (tag !== 40) {
2475
- break;
2476
- }
2477
- message.xtdCorridorMode = reader.int32();
2478
- continue;
2479
- }
2480
- case 6: {
2481
- if (tag !== 50) {
2482
- break;
2483
- }
2484
- message.xtdPortBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2485
- continue;
2486
- }
2487
- case 7: {
2488
- if (tag !== 58) {
2489
- break;
2490
- }
2491
- message.xtdStarboardBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2492
- continue;
2493
- }
2494
2405
  case 10: {
2495
2406
  if (tag !== 85) {
2496
2407
  break;
@@ -2655,13 +2566,6 @@ exports.Leg = {
2655
2566
  xtdMonitoringStarboardM: isSet(object.xtdMonitoringStarboardM)
2656
2567
  ? globalThis.Number(object.xtdMonitoringStarboardM)
2657
2568
  : undefined,
2658
- xtdCorridorMode: isSet(object.xtdCorridorMode) ? xtdCorridorModeFromJSON(object.xtdCorridorMode) : 0,
2659
- xtdPortBoundary: globalThis.Array.isArray(object?.xtdPortBoundary)
2660
- ? object.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2661
- : [],
2662
- xtdStarboardBoundary: globalThis.Array.isArray(object?.xtdStarboardBoundary)
2663
- ? object.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2664
- : [],
2665
2569
  safetyContourM: isSet(object.safetyContourM) ? globalThis.Number(object.safetyContourM) : undefined,
2666
2570
  safetyDepthM: isSet(object.safetyDepthM) ? globalThis.Number(object.safetyDepthM) : undefined,
2667
2571
  ukcStaticM: isSet(object.ukcStaticM) ? globalThis.Number(object.ukcStaticM) : undefined,
@@ -2701,15 +2605,6 @@ exports.Leg = {
2701
2605
  if (message.xtdMonitoringStarboardM !== undefined) {
2702
2606
  obj.xtdMonitoringStarboardM = message.xtdMonitoringStarboardM;
2703
2607
  }
2704
- if (message.xtdCorridorMode !== 0) {
2705
- obj.xtdCorridorMode = xtdCorridorModeToJSON(message.xtdCorridorMode);
2706
- }
2707
- if (message.xtdPortBoundary?.length) {
2708
- obj.xtdPortBoundary = message.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2709
- }
2710
- if (message.xtdStarboardBoundary?.length) {
2711
- obj.xtdStarboardBoundary = message.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2712
- }
2713
2608
  if (message.safetyContourM !== undefined) {
2714
2609
  obj.safetyContourM = message.safetyContourM;
2715
2610
  }
@@ -2784,9 +2679,6 @@ exports.Leg = {
2784
2679
  message.xtdStarboardM = object.xtdStarboardM ?? undefined;
2785
2680
  message.xtdMonitoringPortM = object.xtdMonitoringPortM ?? undefined;
2786
2681
  message.xtdMonitoringStarboardM = object.xtdMonitoringStarboardM ?? undefined;
2787
- message.xtdCorridorMode = object.xtdCorridorMode ?? 0;
2788
- message.xtdPortBoundary = object.xtdPortBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2789
- message.xtdStarboardBoundary = object.xtdStarboardBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2790
2682
  message.safetyContourM = object.safetyContourM ?? undefined;
2791
2683
  message.safetyDepthM = object.safetyDepthM ?? undefined;
2792
2684
  message.ukcStaticM = object.ukcStaticM ?? undefined;
@@ -2814,115 +2706,6 @@ exports.Leg = {
2814
2706
  },
2815
2707
  };
2816
2708
  typeRegistry_1.messageTypeRegistry.set(exports.Leg.$type, exports.Leg);
2817
- function createBaseXtdBoundaryPoint() {
2818
- return {
2819
- $type: "keelson.XtdBoundaryPoint",
2820
- position: undefined,
2821
- alongTrackFraction: undefined,
2822
- offsetM: undefined,
2823
- inTurn: false,
2824
- };
2825
- }
2826
- exports.XtdBoundaryPoint = {
2827
- $type: "keelson.XtdBoundaryPoint",
2828
- encode(message, writer = new wire_1.BinaryWriter()) {
2829
- if (message.position !== undefined) {
2830
- Coordinate_1.Coordinate.encode(message.position, writer.uint32(10).fork()).join();
2831
- }
2832
- if (message.alongTrackFraction !== undefined) {
2833
- writer.uint32(17).double(message.alongTrackFraction);
2834
- }
2835
- if (message.offsetM !== undefined) {
2836
- writer.uint32(29).float(message.offsetM);
2837
- }
2838
- if (message.inTurn !== false) {
2839
- writer.uint32(32).bool(message.inTurn);
2840
- }
2841
- return writer;
2842
- },
2843
- decode(input, length) {
2844
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2845
- let end = length === undefined ? reader.len : reader.pos + length;
2846
- const message = createBaseXtdBoundaryPoint();
2847
- while (reader.pos < end) {
2848
- const tag = reader.uint32();
2849
- switch (tag >>> 3) {
2850
- case 1: {
2851
- if (tag !== 10) {
2852
- break;
2853
- }
2854
- message.position = Coordinate_1.Coordinate.decode(reader, reader.uint32());
2855
- continue;
2856
- }
2857
- case 2: {
2858
- if (tag !== 17) {
2859
- break;
2860
- }
2861
- message.alongTrackFraction = reader.double();
2862
- continue;
2863
- }
2864
- case 3: {
2865
- if (tag !== 29) {
2866
- break;
2867
- }
2868
- message.offsetM = reader.float();
2869
- continue;
2870
- }
2871
- case 4: {
2872
- if (tag !== 32) {
2873
- break;
2874
- }
2875
- message.inTurn = reader.bool();
2876
- continue;
2877
- }
2878
- }
2879
- if ((tag & 7) === 4 || tag === 0) {
2880
- break;
2881
- }
2882
- reader.skip(tag & 7);
2883
- }
2884
- return message;
2885
- },
2886
- fromJSON(object) {
2887
- return {
2888
- $type: exports.XtdBoundaryPoint.$type,
2889
- position: isSet(object.position) ? Coordinate_1.Coordinate.fromJSON(object.position) : undefined,
2890
- alongTrackFraction: isSet(object.alongTrackFraction) ? globalThis.Number(object.alongTrackFraction) : undefined,
2891
- offsetM: isSet(object.offsetM) ? globalThis.Number(object.offsetM) : undefined,
2892
- inTurn: isSet(object.inTurn) ? globalThis.Boolean(object.inTurn) : false,
2893
- };
2894
- },
2895
- toJSON(message) {
2896
- const obj = {};
2897
- if (message.position !== undefined) {
2898
- obj.position = Coordinate_1.Coordinate.toJSON(message.position);
2899
- }
2900
- if (message.alongTrackFraction !== undefined) {
2901
- obj.alongTrackFraction = message.alongTrackFraction;
2902
- }
2903
- if (message.offsetM !== undefined) {
2904
- obj.offsetM = message.offsetM;
2905
- }
2906
- if (message.inTurn !== false) {
2907
- obj.inTurn = message.inTurn;
2908
- }
2909
- return obj;
2910
- },
2911
- create(base) {
2912
- return exports.XtdBoundaryPoint.fromPartial(base ?? {});
2913
- },
2914
- fromPartial(object) {
2915
- const message = createBaseXtdBoundaryPoint();
2916
- message.position = (object.position !== undefined && object.position !== null)
2917
- ? Coordinate_1.Coordinate.fromPartial(object.position)
2918
- : undefined;
2919
- message.alongTrackFraction = object.alongTrackFraction ?? undefined;
2920
- message.offsetM = object.offsetM ?? undefined;
2921
- message.inTurn = object.inTurn ?? false;
2922
- return message;
2923
- },
2924
- };
2925
- typeRegistry_1.messageTypeRegistry.set(exports.XtdBoundaryPoint.$type, exports.XtdBoundaryPoint);
2926
2709
  function createBaseSchedules() {
2927
2710
  return { $type: "keelson.Schedules", schedule: [], extensions: undefined };
2928
2711
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rise-maritime/keelson-js",
3
3
  "//version": "NOT the published version. The release workflow overwrites it from the release tag (npm version --no-git-tag-version), so tag and artifact cannot disagree. Only matters for local installs; do not hand-bump before tagging — that manual step is what broke release 0.5.4.",
4
- "version": "0.6.0-alpha.275.dev.2",
4
+ "version": "0.6.0-alpha.281.dev.1",
5
5
  "description": "Keelson JavaScript SDK with Node-RED nodes",
6
6
  "main": "dist/index.js",
7
7
  "files": [