signalk-wakelogger 0.2.0-beta.2 → 0.2.0-beta.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +7 -1
  3. package/dist/config/defaults.d.ts +1 -0
  4. package/dist/config/defaults.js +1 -0
  5. package/dist/config/defaults.js.map +1 -1
  6. package/dist/config/schema.d.ts +8 -0
  7. package/dist/config/schema.js +8 -0
  8. package/dist/config/schema.js.map +1 -1
  9. package/dist/courses/course-store.d.ts +19 -0
  10. package/dist/courses/course-store.js +182 -0
  11. package/dist/courses/course-store.js.map +1 -0
  12. package/dist/courses/native-course.d.ts +41 -0
  13. package/dist/courses/native-course.js +101 -0
  14. package/dist/courses/native-course.js.map +1 -0
  15. package/dist/courses/protocol.d.ts +43 -0
  16. package/dist/courses/protocol.js +60 -0
  17. package/dist/courses/protocol.js.map +1 -0
  18. package/dist/index.js +122 -29
  19. package/dist/index.js.map +1 -1
  20. package/dist/telemetry/types.d.ts +13 -0
  21. package/dist/transport/mqtt-client.d.ts +7 -2
  22. package/dist/transport/mqtt-client.js +26 -7
  23. package/dist/transport/mqtt-client.js.map +1 -1
  24. package/dist/transport/topics.d.ts +2 -0
  25. package/dist/transport/topics.js +2 -1
  26. package/dist/transport/topics.js.map +1 -1
  27. package/dist/trips/recording-store.d.ts +16 -0
  28. package/dist/trips/recording-store.js +127 -0
  29. package/dist/trips/recording-store.js.map +1 -0
  30. package/dist/trips/state-machine.js +3 -3
  31. package/dist/trips/state-machine.js.map +1 -1
  32. package/docs/course-sync.md +63 -0
  33. package/docs/onboard-mapping.md +125 -0
  34. package/docs/trip-detection.md +7 -1
  35. package/package.json +15 -9
  36. package/public/api-client.mjs +44 -0
  37. package/public/app.mjs +219 -0
  38. package/public/chart-sources.mjs +57 -0
  39. package/public/course-progress.mjs +49 -0
  40. package/public/index.html +16 -0
  41. package/public/map-preparation.mjs +60 -0
  42. package/public/style.css +1 -0
  43. package/public/vendor/LEAFLET-LICENSE +26 -0
  44. package/public/vendor/images/layers-2x.png +0 -0
  45. package/public/vendor/images/layers.png +0 -0
  46. package/public/vendor/images/marker-icon-2x.png +0 -0
  47. package/public/vendor/images/marker-icon.png +0 -0
  48. package/public/vendor/images/marker-shadow.png +0 -0
  49. package/public/vendor/leaflet.css +661 -0
  50. package/public/vendor/leaflet.js +6 -0
package/dist/index.js CHANGED
@@ -4,6 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  const node_fs_1 = require("node:fs");
6
6
  const node_path_1 = __importDefault(require("node:path"));
7
+ const course_store_1 = require("./courses/course-store");
8
+ const protocol_1 = require("./courses/protocol");
9
+ const native_course_1 = require("./courses/native-course");
7
10
  const schema_1 = require("./config/schema");
8
11
  const defaults_1 = require("./config/defaults");
9
12
  const factory_1 = require("./outbox/factory");
@@ -16,7 +19,7 @@ const profile_1 = require("./telemetry/profile");
16
19
  const profile_store_1 = require("./telemetry/profile-store");
17
20
  const sampler_1 = require("./telemetry/sampler");
18
21
  const mqtt_client_1 = require("./transport/mqtt-client");
19
- const state_machine_1 = require("./trips/state-machine");
22
+ const recording_store_1 = require("./trips/recording-store");
20
23
  const constructor = (app) => {
21
24
  const pluginVersion = '0.2.0-beta.2';
22
25
  let generation = 0;
@@ -25,7 +28,12 @@ const constructor = (app) => {
25
28
  let statusTimer;
26
29
  let outbox;
27
30
  let transport;
31
+ let courses;
32
+ let courseInitializationError;
33
+ let courseFailureAcknowledgement;
28
34
  let tripState;
35
+ let activeUploadMode = 'automatic';
36
+ let sampleOperation = Promise.resolve();
29
37
  let connectionState = 'unpaired';
30
38
  let activeProfile;
31
39
  let storageBackend = 'file';
@@ -39,9 +47,14 @@ const constructor = (app) => {
39
47
  description: 'Live vessel tracking and resilient Signal K telemetry for Wake Logger',
40
48
  schema: schema_1.configSchema,
41
49
  start(configuration) {
50
+ pairingAbortController?.abort();
51
+ associationAbortController?.abort();
52
+ // Stop all transmission immediately when a saved configuration restarts us.
53
+ const stopping = transport?.stop(false);
42
54
  const previous = initialization;
43
55
  const thisGeneration = ++generation;
44
56
  initialization = (async () => {
57
+ await stopping;
45
58
  await previous?.catch(() => undefined);
46
59
  await cleanupResources();
47
60
  if (thisGeneration === generation)
@@ -68,6 +81,48 @@ const constructor = (app) => {
68
81
  // Signal K protects routes registered directly on the plugin router with
69
82
  // administrator authentication. Do not downgrade this action via access().
70
83
  const adminRouter = router;
84
+ adminRouter.get?.('/course', async (_request, response, next) => {
85
+ try {
86
+ response.status(200).json({
87
+ ...(await courses?.status() ?? { desired: null, cachedCourse: null, acknowledgement: null, routePoints: [], native: { available: false, course: null, ownedRouteId: null, activeMatchesDesired: false, conflict: false } }),
88
+ uploadMode: activeUploadMode, connectionState, courseError: courseInitializationError
89
+ });
90
+ }
91
+ catch (error) {
92
+ next(error);
93
+ }
94
+ });
95
+ adminRouter.post('/course/activate', async (_request, response, next) => {
96
+ try {
97
+ if (!courses)
98
+ throw new protocol_1.CourseError('no_selected_course');
99
+ await courses.activate();
100
+ void transport?.publishCourseAcknowledgement().catch((error) => app.error(`Course acknowledgement deferred: ${safeError(error)}`));
101
+ response.status(200).json({ ...await courses.status(), uploadMode: activeUploadMode, connectionState });
102
+ }
103
+ catch (error) {
104
+ if (error instanceof protocol_1.CourseError)
105
+ response.status(409).json({ error: error.code });
106
+ else
107
+ next(error);
108
+ }
109
+ });
110
+ adminRouter.post('/course/map-readiness', async (request, response, next) => {
111
+ try {
112
+ if (!courses)
113
+ throw new protocol_1.CourseError('no_selected_course');
114
+ const body = request.body;
115
+ await courses.setMapReadiness(body?.revision, body?.status);
116
+ void transport?.publishCourseAcknowledgement().catch((error) => app.error(`Course acknowledgement deferred: ${safeError(error)}`));
117
+ response.status(200).json(await courses.status());
118
+ }
119
+ catch (error) {
120
+ if (error instanceof protocol_1.CourseError)
121
+ response.status(409).json({ error: error.code });
122
+ else
123
+ next(error);
124
+ }
125
+ });
71
126
  adminRouter.post('/forget-credentials', async (_request, response, next) => {
72
127
  try {
73
128
  generation += 1;
@@ -96,6 +151,9 @@ const constructor = (app) => {
96
151
  openapi: '3.0.3',
97
152
  info: { title: 'Wake Logger Signal K plugin', version: pluginVersion },
98
153
  paths: {
154
+ '/course': { get: { summary: 'Read cached and native course state', responses: { '200': { description: 'Course state' } } } },
155
+ '/course/map-readiness': { post: { summary: 'Report locally verified chart readiness for a course revision', responses: { '200': { description: 'Readiness saved' }, '409': { description: 'Invalid or stale revision' } } } },
156
+ '/course/activate': { post: { summary: 'Explicitly activate the selected cached course', responses: { '200': { description: 'Course active' }, '409': { description: 'No selected course or native course unavailable' } } } },
99
157
  '/forget-credentials': {
100
158
  post: {
101
159
  summary: 'Forget Wake Logger credentials while preserving all device outboxes',
@@ -115,6 +173,11 @@ const constructor = (app) => {
115
173
  sampleTimer = undefined;
116
174
  statusTimer = undefined;
117
175
  await transport?.stop();
176
+ await sampleOperation;
177
+ await courses?.close();
178
+ courses = undefined;
179
+ courseInitializationError = undefined;
180
+ courseFailureAcknowledgement = undefined;
118
181
  transport = undefined;
119
182
  await outbox?.close();
120
183
  outbox = undefined;
@@ -124,11 +187,12 @@ const constructor = (app) => {
124
187
  associationCheck = undefined;
125
188
  }
126
189
  async function initialise(config, thisGeneration) {
190
+ activeUploadMode = config.uploadMode;
127
191
  const dataDirectory = app.getDataDirPath();
128
192
  const credentialStore = new credentials_1.CredentialStore(node_path_1.default.join(dataDirectory, 'identity'));
129
193
  let credentials = await credentialStore.load();
130
194
  const lastPairingCodeFingerprint = await credentialStore.lastPairingCodeFingerprint();
131
- if ((0, credentials_1.shouldExchangePairingCode)(credentials, config.pairingCode, lastPairingCodeFingerprint)) {
195
+ if (config.uploadMode === 'automatic' && (0, credentials_1.shouldExchangePairingCode)(credentials, config.pairingCode, lastPairingCodeFingerprint)) {
132
196
  const controller = new AbortController();
133
197
  pairingAbortController = controller;
134
198
  try {
@@ -172,7 +236,7 @@ const constructor = (app) => {
172
236
  }
173
237
  if (!credentials) {
174
238
  connectionState = 'unpaired';
175
- app.setPluginStatus('Wake Logger: Not paired');
239
+ app.setPluginStatus(config.uploadMode === 'local_only' ? 'Wake Logger: Not paired — switch to automatic and pair before recording locally' : 'Wake Logger: Not paired');
176
240
  return;
177
241
  }
178
242
  if (generation !== thisGeneration)
@@ -180,11 +244,20 @@ const constructor = (app) => {
180
244
  await startTelemetry(config, credentials, credentialStore, dataDirectory, thisGeneration);
181
245
  }
182
246
  async function startTelemetry(config, credentials, credentialStore, dataDirectory, thisGeneration) {
247
+ courses = new course_store_1.CourseStore(node_path_1.default.join(dataDirectory, 'courses', credentials.deviceId, 'state.json'), new native_course_1.NativeCourseService(app));
248
+ try {
249
+ await courses.open();
250
+ }
251
+ catch (error) {
252
+ courses = undefined;
253
+ courseInitializationError = safeError(error);
254
+ app.error(`Wake Logger course cache unavailable; telemetry recording continues: ${courseInitializationError}`);
255
+ }
183
256
  const normaliser = new normaliser_1.TelemetryNormaliser();
184
257
  const tripFile = node_path_1.default.join(dataDirectory, 'trip-state.json');
185
- const trip = new state_machine_1.TripStateMachine(await readTripSnapshot(tripFile));
258
+ const trip = new recording_store_1.RecordingStore(node_path_1.default.join(dataDirectory, 'recordings', credentials.deviceId, 'state.json'));
259
+ await trip.open(await readTripSnapshot(tripFile));
186
260
  tripState = trip;
187
- let tripSnapshotJson = JSON.stringify(trip.currentState());
188
261
  // Each provisioned device owns an independent sequence space. A replacement
189
262
  // device must never replay the retired device's records under new credentials.
190
263
  const profileStore = new profile_store_1.TelemetryProfileStore(node_path_1.default.join(dataDirectory, 'profiles', credentials.deviceId));
@@ -192,7 +265,7 @@ const constructor = (app) => {
192
265
  const legacy = credentials.telemetryProfile;
193
266
  const profile = await profileStore.load() ?? credentialProfile ?? (0, profile_1.legacyProfile)(legacy?.sample_period_ms ?? config.samplePeriodMs, legacy?.batch_size);
194
267
  activeProfile = profile;
195
- const sampler = new sampler_1.PathSampler(profile);
268
+ const sampler = new sampler_1.PathSampler(profile, config.uploadMode === 'local_only' ? 'NORMAL' : 'OFFLINE');
196
269
  const selected = await (0, factory_1.createOutbox)(app, dataDirectory, credentials.deviceId, {
197
270
  maxBytes: config.maxOutboxMb * 1024 * 1024,
198
271
  maxAgeMs: config.maxOutboxDays * 24 * 60 * 60 * 1000,
@@ -200,6 +273,7 @@ const constructor = (app) => {
200
273
  }, credentials.outboxBinding?.backend);
201
274
  outbox = selected.store;
202
275
  storageBackend = selected.backend;
276
+ let nextSequence = (await outbox.stats()).currentSequence + 1;
203
277
  if (!credentials.outboxBinding) {
204
278
  credentials.outboxBinding = { version: 1, backend: selected.backend, initializedAt: Date.now() };
205
279
  await credentialStore.save(credentials);
@@ -216,6 +290,22 @@ const constructor = (app) => {
216
290
  if (state === 'authentication_failed')
217
291
  void confirmAssociation(credentials, thisGeneration);
218
292
  },
293
+ onCourse: async (payload) => {
294
+ if (courses)
295
+ return courses.receive(payload);
296
+ let revision = 0;
297
+ try {
298
+ revision = (0, protocol_1.parseCourse)(payload).revision;
299
+ }
300
+ catch { /* Report unavailable storage without accepting a new course. */ }
301
+ courseFailureAcknowledgement = { v: 1, revision, status: 'rejected', errorCode: 'course_storage_unavailable' };
302
+ return courseFailureAcknowledgement;
303
+ },
304
+ getCourseAcknowledgement: () => courses?.acknowledgement() ?? courseFailureAcknowledgement,
305
+ onRecordingAcks: async (acks) => {
306
+ sampleOperation = sampleOperation.then(() => trip.acknowledge(acks));
307
+ await sampleOperation;
308
+ },
219
309
  onMode: (mode) => sampler.updateMode(mode),
220
310
  onProfile: async (replacement) => {
221
311
  await profileStore.save(replacement);
@@ -225,37 +315,42 @@ const constructor = (app) => {
225
315
  debug: config.debugTelemetry ? (message) => app.debug(message) : undefined
226
316
  });
227
317
  stopSubscription = (0, subscriber_1.subscribeToTelemetry)(app, (delta) => normaliser.ingest(delta));
228
- const sample = () => {
318
+ const sample = async () => {
319
+ if (generation !== thisGeneration)
320
+ return;
229
321
  const now = Date.now();
230
322
  const draft = normaliser.takeSample(now, sampler.dueFields(now));
231
- if (!draft || !outbox || !transport)
323
+ if (!draft || !outbox)
232
324
  return;
233
- const evidence = trip.process(draft);
234
- draft.trackingSessionId = evidence?.trackingSessionId ?? trip.trackingSessionId();
235
- if (evidence)
236
- draft.evidence = evidence;
237
- const nextSnapshotJson = JSON.stringify(trip.currentState());
238
- if (nextSnapshotJson !== tripSnapshotJson) {
239
- tripSnapshotJson = nextSnapshotJson;
240
- void atomicWrite(tripFile, `${tripSnapshotJson}\n`).catch((error) => app.error(`Unable to persist Wake Logger trip state: ${safeError(error)}`));
325
+ await trip.prepare(draft, nextSequence);
326
+ let queued;
327
+ try {
328
+ queued = await outbox.append(credentials.deviceId, draft);
329
+ nextSequence = queued.sequence + 1;
330
+ }
331
+ catch (error) {
332
+ // Append may commit before a later maintenance error. Recover only on
333
+ // failure; scanning the complete offline queue every sample is costly.
334
+ nextSequence = (await outbox.stats()).currentSequence + 1;
335
+ throw error;
241
336
  }
242
- void outbox.append(credentials.deviceId, draft).then((sample) => {
243
- transport?.updateCurrent(sample);
244
- if (config.debugTelemetry)
245
- app.debug(`Queued Wake Logger sequence ${sample.sequence}`);
246
- }).catch((error) => app.error(`Unable to queue Wake Logger telemetry: ${safeError(error)}`));
337
+ transport?.updateCurrent(queued);
338
+ if (config.debugTelemetry)
339
+ app.debug(`Queued Wake Logger sequence ${queued.sequence}`);
247
340
  };
248
341
  const scheduleSample = () => {
249
342
  if (generation !== thisGeneration)
250
343
  return;
251
344
  sampleTimer = setTimeout(() => {
252
- sample();
253
- scheduleSample();
345
+ sampleOperation = sampleOperation.then(sample).catch((error) => app.error(`Unable to queue Wake Logger telemetry: ${safeError(error)}`)).then(scheduleSample);
254
346
  }, sampler.samplePeriodMs());
255
347
  };
256
348
  scheduleSample();
257
349
  statusTimer = setInterval(() => void updateStatus(), 10_000);
258
- transport.start();
350
+ if (config.uploadMode === 'automatic')
351
+ transport.start();
352
+ else
353
+ connectionState = 'recording_locally';
259
354
  await updateStatus();
260
355
  }
261
356
  async function updateStatus(detail) {
@@ -271,6 +366,8 @@ const constructor = (app) => {
271
366
  const extra = detail ? ` — ${detail}` : '';
272
367
  transport?.updateStatus({
273
368
  pluginVersion,
369
+ uploadMode: activeUploadMode,
370
+ recordings: tripState?.statusManifests(),
274
371
  connectionState,
275
372
  queueMessageCount: stats.messageCount,
276
373
  queueDiskBytes: stats.diskBytes,
@@ -289,6 +386,7 @@ const constructor = (app) => {
289
386
  return;
290
387
  }
291
388
  app.setPluginStatus(`Wake Logger: ${connectionState} — ${queue}${dropped}${sequence}${trip}${extra}`);
389
+ void transport?.publishCourseAcknowledgement().catch((error) => app.error(`Unable to report Wake Logger course: ${safeError(error)}`));
292
390
  }
293
391
  function confirmAssociation(credentials, thisGeneration) {
294
392
  if (associationCheck)
@@ -326,11 +424,6 @@ async function readTripSnapshot(target) {
326
424
  throw error;
327
425
  }
328
426
  }
329
- async function atomicWrite(target, contents) {
330
- const temporary = `${target}.tmp`;
331
- await node_fs_1.promises.writeFile(temporary, contents, { mode: 0o600 });
332
- await node_fs_1.promises.rename(temporary, target);
333
- }
334
427
  function safeError(error) {
335
428
  return (error instanceof Error ? error.message : String(error)).replace(/(password|token|secret)=\S+/gi, '$1=[redacted]').slice(0, 500);
336
429
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,16 @@ export interface TripEvidence {
25
25
  movementDurationSeconds?: number;
26
26
  };
27
27
  }
28
+ export interface RecordingManifest {
29
+ id: string;
30
+ startedAt: number;
31
+ firstSequence: number;
32
+ state: 'recording' | 'complete' | 'cancelled' | 'interrupted';
33
+ endedAt?: number;
34
+ lastSequence?: number;
35
+ }
28
36
  export interface TelemetryDraft {
37
+ recording?: RecordingManifest;
29
38
  capturedAt: number;
30
39
  receivedAt: number;
31
40
  trackingSessionId?: string;
@@ -45,13 +54,17 @@ export interface TelemetryBatch {
45
54
  droppedThrough?: number;
46
55
  samples: TelemetrySample[];
47
56
  }
57
+ export type RecordingAcknowledgement = Pick<RecordingManifest, 'id' | 'lastSequence' | 'state'>;
48
58
  export interface ApplicationAck {
59
+ recordingAcks?: RecordingAcknowledgement[];
49
60
  v: 1;
50
61
  deviceId: string;
51
62
  ackSequence: number;
52
63
  acknowledgedAt?: number;
53
64
  }
54
65
  export interface PluginStatusMetrics {
66
+ uploadMode?: 'automatic' | 'local_only';
67
+ recordings?: RecordingManifest[];
55
68
  pluginVersion: string;
56
69
  connectionState: string;
57
70
  queueMessageCount: number;
@@ -1,12 +1,16 @@
1
+ import type { CourseAcknowledgement } from '../courses/protocol';
1
2
  import type { DeviceCredentials } from '../pairing/credentials';
2
3
  import { type TelemetryProfile } from '../telemetry/profile';
3
- import type { NetworkMode, PluginStatusMetrics, TelemetrySample } from '../telemetry/types';
4
+ import type { RecordingAcknowledgement, NetworkMode, PluginStatusMetrics, TelemetrySample } from '../telemetry/types';
4
5
  import type { OutboxStore } from '../outbox/interface';
5
6
  export type ConnectionState = 'offline' | 'connecting' | 'online' | 'degraded' | 'authentication_failed';
6
7
  interface TransportOptions {
7
8
  profile: TelemetryProfile;
8
9
  onState: (state: ConnectionState, detail?: string) => void;
9
10
  onMode?: (mode: NetworkMode, reason: string) => void;
11
+ onCourse?: (payload: Buffer) => Promise<CourseAcknowledgement>;
12
+ getCourseAcknowledgement?: () => Promise<CourseAcknowledgement | undefined> | CourseAcknowledgement | undefined;
13
+ onRecordingAcks?: (acks: RecordingAcknowledgement[]) => Promise<void>;
10
14
  onProfile?: (profile: TelemetryProfile) => Promise<void>;
11
15
  debug?: (message: string) => void;
12
16
  random?: () => number;
@@ -44,8 +48,9 @@ export declare class WakeLoggerTransport {
44
48
  private backlogTokenAt?;
45
49
  constructor(credentials: DeviceCredentials, outbox: OutboxStore, options: TransportOptions);
46
50
  start(): void;
47
- stop(): Promise<void>;
51
+ stop(publishOffline?: boolean): Promise<void>;
48
52
  updateCurrent(sample: TelemetrySample): void;
53
+ publishCourseAcknowledgement(): Promise<void>;
49
54
  updateProfile(profile: TelemetryProfile): void;
50
55
  updateStatus(metrics: PluginStatusMetrics): void;
51
56
  transportMetrics(): Pick<PluginStatusMetrics, 'networkMode' | 'modeReason' | 'lastAcknowledgedAt' | 'acknowledgementLatencyMs' | 'reconnectCount' | 'publishedBytes'>;
@@ -62,7 +62,7 @@ class WakeLoggerTransport {
62
62
  this.connect();
63
63
  }).catch((error) => this.options.onState('degraded', sanitizeError(String(error))));
64
64
  }
65
- async stop() {
65
+ async stop(publishOffline = true) {
66
66
  this.stopped = true;
67
67
  if (this.reconnectTimer)
68
68
  clearTimeout(this.reconnectTimer);
@@ -76,9 +76,9 @@ class WakeLoggerTransport {
76
76
  this.syncMode();
77
77
  if (!client)
78
78
  return;
79
- if (client.connected)
79
+ if (publishOffline && client.connected)
80
80
  await this.publish(client, this.topics.status, JSON.stringify(statusPayload('offline', this.effectiveStatusMetrics())), { qos: 1, retain: true }).catch(() => undefined);
81
- await new Promise((resolve) => client.end(false, {}, () => resolve()));
81
+ await new Promise((resolve) => client.end(!publishOffline, {}, () => resolve()));
82
82
  }
83
83
  updateCurrent(sample) {
84
84
  this.current = sample;
@@ -88,6 +88,12 @@ class WakeLoggerTransport {
88
88
  void this.publishLiveSample().catch((error) => this.transportFailure(error));
89
89
  }
90
90
  }
91
+ async publishCourseAcknowledgement() {
92
+ const acknowledgement = await this.options.getCourseAcknowledgement?.();
93
+ if (acknowledgement && this.client?.connected && !this.stopped) {
94
+ await this.publish(this.client, this.topics.courseAck, JSON.stringify(acknowledgement), { qos: 1, retain: true });
95
+ }
96
+ }
91
97
  updateProfile(profile) { this.profile = profile; }
92
98
  updateStatus(metrics) {
93
99
  this.statusMetrics = metrics;
@@ -118,7 +124,7 @@ class WakeLoggerTransport {
118
124
  const client = mqtt_1.default.connect(url, mqttOptions);
119
125
  this.client = client;
120
126
  client.on('connect', () => void this.onConnect(client).catch((error) => { this.transportFailure(error); client.end(true); }));
121
- client.on('message', (topic, payload) => void this.onMessage(topic, payload));
127
+ client.on('message', (topic, payload) => void this.onMessage(topic, payload).catch((error) => this.transportFailure(error)));
122
128
  client.on('error', (error) => {
123
129
  const auth = /auth|not authorized|bad user/i.test(error.message);
124
130
  this.authenticationFailed = auth;
@@ -150,7 +156,7 @@ class WakeLoggerTransport {
150
156
  const stats = await this.outbox.stats();
151
157
  this.backlogMessageCount = stats.messageCount;
152
158
  this.nextPublishAfter = stats.acknowledgedSequence;
153
- await subscribe(client, [this.topics.ack, this.topics.profile]);
159
+ await subscribe(client, [this.topics.ack, this.topics.profile, this.topics.course]);
154
160
  this.monitor.connected();
155
161
  this.syncMode();
156
162
  this.backlogTokenAt = this.now();
@@ -158,6 +164,7 @@ class WakeLoggerTransport {
158
164
  await this.publish(client, this.topics.status, JSON.stringify(statusPayload('online', this.effectiveStatusMetrics())), { qos: 1, retain: true });
159
165
  this.statePublishPending = this.current !== undefined;
160
166
  await this.drainCurrentState();
167
+ await this.publishCourseAcknowledgement();
161
168
  this.options.onState('online');
162
169
  if (this.pumpTimer)
163
170
  clearInterval(this.pumpTimer);
@@ -231,6 +238,10 @@ class WakeLoggerTransport {
231
238
  await this.handleAcknowledgement(payload);
232
239
  else if (topic === this.topics.profile)
233
240
  await this.handleProfile(payload);
241
+ else if (topic === this.topics.course && this.options.onCourse) {
242
+ await this.options.onCourse(payload);
243
+ await this.publishCourseAcknowledgement();
244
+ }
234
245
  }
235
246
  async handleAcknowledgement(payload) {
236
247
  if (payload.length > 4096)
@@ -239,15 +250,22 @@ class WakeLoggerTransport {
239
250
  const ack = JSON.parse(payload.toString('utf8'));
240
251
  if (ack.v !== 1 || ack.deviceId !== this.credentials.deviceId || !Number.isSafeInteger(ack.ackSequence))
241
252
  return;
253
+ const before = await this.outbox.stats();
254
+ if (ack.ackSequence < 0 || ack.ackSequence > before.currentSequence)
255
+ return;
242
256
  const acknowledgedBatch = this.inFlight.find((batch) => ack.ackSequence >= batch.through);
243
257
  if (acknowledgedBatch) {
244
258
  this.acknowledgementLatencyMs = this.now() - acknowledgedBatch.sentAt;
245
259
  this.monitor.acknowledgement(this.acknowledgementLatencyMs);
246
260
  }
247
261
  await this.outbox.acknowledge(ack.ackSequence);
248
- this.backlogMessageCount = (await this.outbox.stats()).messageCount;
262
+ const committed = await this.outbox.stats();
263
+ if (Array.isArray(ack.recordingAcks) && ack.recordingAcks.length <= 25) {
264
+ await this.options.onRecordingAcks?.(ack.recordingAcks.filter((entry) => entry && typeof entry.id === 'string' && Number.isSafeInteger(entry.lastSequence) && ['complete', 'cancelled', 'interrupted'].includes(entry.state)));
265
+ }
266
+ this.backlogMessageCount = committed.messageCount;
249
267
  this.lastAcknowledgedAt = this.now();
250
- this.inFlight = this.inFlight.filter((batch) => batch.through > ack.ackSequence);
268
+ this.inFlight = this.inFlight.filter((batch) => batch.through > committed.acknowledgedSequence);
251
269
  this.syncMode();
252
270
  this.options.debug?.(`Application acknowledged telemetry through sequence ${ack.ackSequence}`);
253
271
  void this.pump();
@@ -332,6 +350,7 @@ class WakeLoggerTransport {
332
350
  exports.WakeLoggerTransport = WakeLoggerTransport;
333
351
  function statusPayload(state, metrics) {
334
352
  return { v: 1, state, at: Date.now(), ...(metrics ? {
353
+ uploadMode: metrics.uploadMode, recordings: metrics.recordings,
335
354
  pluginVersion: metrics.pluginVersion, queueMessageCount: metrics.queueMessageCount, queueDiskBytes: metrics.queueDiskBytes,
336
355
  queueOldestCapturedAt: metrics.queueOldestCapturedAt, queueDroppedCount: metrics.queueDroppedCount,
337
356
  acknowledgedSequence: metrics.acknowledgedSequence, currentSequence: metrics.currentSequence, trackingState: metrics.trackingState,
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-client.js","sourceRoot":"","sources":["../../src/transport/mqtt-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mqtt-client.js","sourceRoot":"","sources":["../../src/transport/mqtt-client.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,7 @@ export interface DeviceTopics {
6
6
  ack: string;
7
7
  profile: string;
8
8
  profileAck: string;
9
+ course: string;
10
+ courseAck: string;
9
11
  }
10
12
  export declare function deviceTopics(deviceId: string): DeviceTopics;
@@ -7,7 +7,8 @@ function deviceTopics(deviceId) {
7
7
  const base = `wakelogger/v1/devices/${deviceId}`;
8
8
  return {
9
9
  telemetry: `${base}/telemetry`, state: `${base}/state`, status: `${base}/status`,
10
- events: `${base}/events`, ack: `${base}/ack`, profile: `${base}/profile`, profileAck: `${base}/profile-ack`
10
+ events: `${base}/events`, ack: `${base}/ack`, profile: `${base}/profile`, profileAck: `${base}/profile-ack`,
11
+ course: `${base}/course`, courseAck: `${base}/course-ack`
11
12
  };
12
13
  }
13
14
  //# sourceMappingURL=topics.js.map