@mongrov/core 0.8.0 → 0.9.0

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/README.md CHANGED
@@ -102,6 +102,9 @@ interface LoggerConfig {
102
102
  // Callback hooks
103
103
  onError?: (entry: LogEntry) => void
104
104
  onException?: (error: Error, context?: Record<string, unknown>) => void
105
+
106
+ // Report how the previous session ended (default false; needs expo-file-system)
107
+ sessionMarker?: boolean
105
108
  }
106
109
  ```
107
110
 
@@ -130,6 +133,33 @@ including pre-0.7 `logs-YYYY-MM-DD.txt` day files.
130
133
  { file: { maxSizeMB: 10, retentionDays: 14, maxFileSizeKB: 512 } }
131
134
  ```
132
135
 
136
+ ### Session Marker
137
+
138
+ `sessionMarker: true` keeps a small `session-marker.json` next to the file logs
139
+ (`file.directory` when set) recording this session's id and state: `running` at
140
+ start and on every return to the foreground, `backgrounded` when the app goes to
141
+ the background, `closed` on `destroy()`. The logger follows `AppState` itself, so
142
+ a logger created at module load, before any provider, is covered.
143
+
144
+ At the next start, the previous session's last state is reported once:
145
+
146
+ | Previous state | Logged |
147
+ |---|---|
148
+ | `running` (died in the foreground: crash, OOM, watchdog) | `logger.session.unclean-exit` at **warn** |
149
+ | `backgrounded` (the OS reclaimed it; routine on iOS) | `logger.session.ended-in-background` at info |
150
+ | `closed`, or no marker | nothing |
151
+
152
+ Both carry `{ previousSessionId, startedAt, lastSeenAt, lastCrashReportId }`.
153
+ `lastCrashReportId` is whatever the app passed to `logger.setLastCrashReportId(id)`
154
+ (e.g. the Sentry event id from `beforeSend`), so the warn can name the report.
155
+ Marker failures are reported once (`[Logger] session marker failed`) and never
156
+ throw into callers.
157
+
158
+ ```typescript
159
+ const logger = createLogger({ appVersion, ringBuffer: true, file: true, sessionMarker: true })
160
+ logger.sessionId // the id every entry carries as context.sessionId
161
+ ```
162
+
133
163
  ### Webhook Transport
134
164
 
135
165
  Generic HTTP POST with batching and offline queue.
@@ -180,6 +210,8 @@ const logger = createLogger({
180
210
  | `setUser(userId)` | Set user ID in context |
181
211
  | `setScreen(screenName)` | Set current screen in context |
182
212
  | `setContext(key, value)` | Set custom context key |
213
+ | `setLastCrashReportId(id)` | Keep a crash report id for the next start's `unclean-exit` (needs `sessionMarker`) |
214
+ | `sessionId` | This session's id (every entry's `context.sessionId`) |
183
215
  | `getLogs(filter?)` | Get logs from ring buffer |
184
216
  | `exportLogs(filter?)` | Export logs as JSON string |
185
217
  | `flush()` | Force-push queued webhook entries |
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export type { Logger } from './logger';
5
5
  export { addNetworkStateListener, getNetworkState, setNetworkStateLogger, useNetworkState } from './network-state';
6
6
  export { OfflineQueue } from './offline-queue';
7
7
  export { defaultRedact, REDACTED } from './redact';
8
+ export type { SessionRecord, SessionState } from './session-marker';
8
9
  export { FileTransport } from './transports/file';
9
10
  export { RingBufferTransport } from './transports/ring-buffer';
10
11
  export { WebhookTransport } from './transports/webhook';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAEvE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGlH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,YAAY,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAEvE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGlH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAElD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,YAAY,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,SAAS,CAAA"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAGvE,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGvC,sDAAsD;AACtD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAElH,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,yEAAyE;AACzE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,sCAAsC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAGvE,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGvC,sDAAsD;AACtD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAElH,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,yEAAyE;AACzE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,sCAAsC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA"}
package/dist/logger.d.ts CHANGED
@@ -9,6 +9,8 @@ import type { LogEntry, LogFilter, LoggerConfig } from './types';
9
9
  */
10
10
  export declare function sanitizeLogData(data?: Record<string, unknown>): Record<string, unknown> | undefined;
11
11
  export interface Logger {
12
+ /** This logger's session; every entry carries it as `context.sessionId`. */
13
+ readonly sessionId: string;
12
14
  debug: (message: string, data?: Record<string, unknown>) => void;
13
15
  info: (message: string, data?: Record<string, unknown>) => void;
14
16
  warn: (message: string, data?: Record<string, unknown>) => void;
@@ -17,6 +19,12 @@ export interface Logger {
17
19
  setUser: (userId: string) => void;
18
20
  setScreen: (screenName: string) => void;
19
21
  setContext: (key: string, value: string) => void;
22
+ /**
23
+ * The id of the last crash report the app sent (e.g. a Sentry event id),
24
+ * kept in the session marker so the next start's
25
+ * `logger.session.unclean-exit` can name it. No-op without `sessionMarker`.
26
+ */
27
+ setLastCrashReportId: (id: string) => void;
20
28
  getLogs: (filter?: LogFilter) => LogEntry[];
21
29
  exportLogs: (filter?: LogFilter) => string;
22
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,QAAQ,EACR,SAAS,EACT,YAAY,EAIb,MAAM,SAAS,CAAA;AAgHhB;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAYnG;AAsDD,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/D,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAE3E,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAEhD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAA;IAC3C,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,MAAM,CAAA;IAC1C;;;;OAIG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAErC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA4PzD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,QAAQ,EACR,SAAS,EACT,YAAY,EAIb,MAAM,SAAS,CAAA;AAiHhB;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAYnG;AAsDD,MAAM,WAAW,MAAM;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/D,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAE3E,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD;;;;OAIG;IACH,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAA;IAC3C,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,MAAM,CAAA;IAC1C;;;;OAIG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAErC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA0TzD"}
package/dist/logger.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { FailureGate } from './internal-log';
2
2
  import { defaultRedact } from './redact';
3
+ import { SessionMarker } from './session-marker';
3
4
  import { FileTransport } from './transports/file';
4
5
  import { RingBufferTransport } from './transports/ring-buffer';
5
6
  import { WebhookTransport } from './transports/webhook';
@@ -227,6 +228,59 @@ export function createLogger(config) {
227
228
  }
228
229
  if (fileUnavailable !== null)
229
230
  log('warn', '[Logger] file transport unavailable; file log disabled', { error: fileUnavailable });
231
+ // Session marker: did the previous session end cleanly?
232
+ let sessionMarker = null;
233
+ let appStateSubscription = null;
234
+ if (config.sessionMarker) {
235
+ const fileConfig = typeof config.file === 'object' ? config.file : undefined;
236
+ try {
237
+ sessionMarker = new SessionMarker(sessionId, fileConfig?.directory, internalLogger('session-marker'));
238
+ }
239
+ catch (error) {
240
+ log('warn', '[Logger] session marker unavailable', { error: String(error) });
241
+ }
242
+ }
243
+ if (sessionMarker) {
244
+ const marker = sessionMarker;
245
+ marker.start().then(({ record, unreadable }) => {
246
+ if (unreadable) {
247
+ log('info', 'logger.session.marker-unreadable');
248
+ return;
249
+ }
250
+ if (!record || record.state === 'closed')
251
+ return;
252
+ const previous = {
253
+ previousSessionId: record.sessionId,
254
+ startedAt: record.startedAt,
255
+ lastSeenAt: record.updatedAt,
256
+ lastCrashReportId: record.lastCrashReportId ?? null,
257
+ };
258
+ // Foreground death (crash, OOM, watchdog) is the case worth a warn; the
259
+ // OS reclaiming a backgrounded app is routine, so it is info.
260
+ if (record.state === 'running')
261
+ log('warn', 'logger.session.unclean-exit', previous, true);
262
+ else
263
+ log('info', 'logger.session.ended-in-background', previous);
264
+ });
265
+ // Checkpoints follow the app's own lifecycle, so a logger created at
266
+ // module load (before any provider) is covered too. `inactive` is a
267
+ // transient iOS state (an incoming call, Control Centre) and is ignored.
268
+ try {
269
+ const { AppState } = require('react-native');
270
+ if (AppState && typeof AppState.addEventListener === 'function') {
271
+ appStateSubscription = AppState.addEventListener('change', (state) => {
272
+ if (state === 'background')
273
+ void marker.mark('backgrounded');
274
+ else if (state === 'active')
275
+ void marker.mark('running');
276
+ });
277
+ }
278
+ }
279
+ catch {
280
+ // expected: no react-native (tests, node): the marker still records
281
+ // start and destroy.
282
+ }
283
+ }
230
284
  if (minLevelUnknown)
231
285
  log('warn', '[Logger] unknown minLevel; using the default', { configured: String(config.minLevel), using: minLevel });
232
286
  function buildEntry(level, message, data) {
@@ -325,6 +379,7 @@ export function createLogger(config) {
325
379
  };
326
380
  }
327
381
  const logger = {
382
+ sessionId,
328
383
  debug: (message, data) => log('debug', message, data),
329
384
  info: (message, data) => log('info', message, data),
330
385
  warn: (message, data) => log('warn', message, data),
@@ -358,6 +413,9 @@ export function createLogger(config) {
358
413
  ;
359
414
  extraContext[key] = value;
360
415
  },
416
+ setLastCrashReportId(id) {
417
+ void sessionMarker?.setLastCrashReportId(id);
418
+ },
361
419
  getLogs(filter) {
362
420
  if (!ringBuffer) {
363
421
  throw new Error('Ring buffer not configured. Enable ringBuffer in LoggerConfig.');
@@ -383,6 +441,9 @@ export function createLogger(config) {
383
441
  }
384
442
  },
385
443
  async destroy() {
444
+ appStateSubscription?.remove();
445
+ appStateSubscription = null;
446
+ await sessionMarker?.mark('closed');
386
447
  if (webhookTransport) {
387
448
  await webhookTransport.destroy();
388
449
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { InternalLogger } from './internal-log';
2
+ /**
3
+ * A small file that says whether the last session ended cleanly.
4
+ *
5
+ * Written `running` when a logger starts and on every return to the
6
+ * foreground, `backgrounded` when the app goes to the background, and
7
+ * `closed` on `destroy()`. A file still saying `running` at the next start
8
+ * means the process died in the foreground: a crash, an OOM kill, or a
9
+ * watchdog. That is the one case a crash report may never have reached
10
+ * Sentry, so it is logged as a warn with the previous session's id.
11
+ *
12
+ * `backgrounded` is NOT reported as unclean. iOS and Android reclaim
13
+ * backgrounded apps routinely (iOS kills one a BLE sync woke within seconds),
14
+ * so warning on every such end would bury the real crashes. It is logged at
15
+ * info instead, distinguishably, so support can still see how a session ended.
16
+ */
17
+ export type SessionState = 'running' | 'backgrounded' | 'closed';
18
+ export interface SessionRecord {
19
+ sessionId: string;
20
+ startedAt: string;
21
+ state: SessionState;
22
+ /** When `state` last changed: the last moment the session is known alive. */
23
+ updatedAt: string;
24
+ /** Set through `Logger.setLastCrashReportId` (e.g. a Sentry event id). */
25
+ lastCrashReportId?: string;
26
+ }
27
+ export interface PreviousSession {
28
+ record: SessionRecord | null;
29
+ /** The file existed but did not parse. */
30
+ unreadable: boolean;
31
+ }
32
+ /** Not the FileTransport's `logs-*.txt` shape, so its cleanup and export skip it. */
33
+ export declare const SESSION_MARKER_FILE = "session-marker.json";
34
+ export declare class SessionMarker {
35
+ private readonly fs;
36
+ private readonly directory;
37
+ private readonly path;
38
+ private readonly log;
39
+ private readonly writeFailures;
40
+ private record;
41
+ private queue;
42
+ /** Throws when expo-file-system is missing; the logger reports that once. */
43
+ constructor(sessionId: string, directory: string | undefined, logger?: InternalLogger);
44
+ /**
45
+ * Reads what the previous session left, then marks this one `running`.
46
+ * Never rejects: a failure is reported and the previous session is unknown.
47
+ */
48
+ start(): Promise<PreviousSession>;
49
+ /** Records the state change; resolves once it is on disk (or failed). */
50
+ mark(state: SessionState): Promise<void>;
51
+ setLastCrashReportId(id: string): Promise<void>;
52
+ private write;
53
+ private failed;
54
+ }
55
+ //# sourceMappingURL=session-marker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-marker.d.ts","sourceRoot":"","sources":["../src/session-marker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAA;AAEhE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,YAAY,CAAA;IACnB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,0CAA0C;IAC1C,UAAU,EAAE,OAAO,CAAA;CACpB;AAkCD,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AAExD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,KAAK,CAAmC;IAEhD,6EAA6E;gBACjE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,cAAc;IASrF;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAuBvC,yEAAyE;IACzE,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxC,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,MAAM;CAIf"}
@@ -0,0 +1,99 @@
1
+ import { devConsoleLogger, FailureGate } from './internal-log';
2
+ function loadFileSystem() {
3
+ try {
4
+ return require('expo-file-system/legacy');
5
+ }
6
+ catch {
7
+ try {
8
+ return require('expo-file-system');
9
+ }
10
+ catch {
11
+ throw new Error('@mongrov/core sessionMarker requires expo-file-system as a peer dependency');
12
+ }
13
+ }
14
+ }
15
+ function isRecord(value) {
16
+ if (value === null || typeof value !== 'object')
17
+ return false;
18
+ const r = value;
19
+ return typeof r.sessionId === 'string'
20
+ && typeof r.startedAt === 'string'
21
+ && (r.state === 'running' || r.state === 'backgrounded' || r.state === 'closed');
22
+ }
23
+ /** Not the FileTransport's `logs-*.txt` shape, so its cleanup and export skip it. */
24
+ export const SESSION_MARKER_FILE = 'session-marker.json';
25
+ export class SessionMarker {
26
+ /** Throws when expo-file-system is missing; the logger reports that once. */
27
+ constructor(sessionId, directory, logger) {
28
+ this.writeFailures = new FailureGate();
29
+ // Writes run one after another, in call order, so a fast background →
30
+ // active flip can never land on disk as `backgrounded`.
31
+ this.queue = Promise.resolve();
32
+ this.fs = loadFileSystem();
33
+ this.directory = directory ?? `${this.fs.documentDirectory ?? ''}logs/`;
34
+ this.path = `${this.directory}${SESSION_MARKER_FILE}`;
35
+ this.log = logger ?? devConsoleLogger();
36
+ const now = new Date().toISOString();
37
+ this.record = { sessionId, startedAt: now, state: 'running', updatedAt: now };
38
+ }
39
+ /**
40
+ * Reads what the previous session left, then marks this one `running`.
41
+ * Never rejects: a failure is reported and the previous session is unknown.
42
+ */
43
+ async start() {
44
+ let previous = { record: null, unreadable: false };
45
+ try {
46
+ const info = await this.fs.getInfoAsync(this.path);
47
+ if (info.exists) {
48
+ const text = await this.fs.readAsStringAsync(this.path);
49
+ let parsed;
50
+ try {
51
+ parsed = JSON.parse(text);
52
+ }
53
+ catch {
54
+ parsed = null;
55
+ }
56
+ previous = isRecord(parsed) ? { record: parsed, unreadable: false } : { record: null, unreadable: true };
57
+ }
58
+ }
59
+ catch (error) {
60
+ this.failed('read', error);
61
+ }
62
+ await this.write();
63
+ return previous;
64
+ }
65
+ /** Records the state change; resolves once it is on disk (or failed). */
66
+ mark(state) {
67
+ if (this.record.state === state)
68
+ return this.queue;
69
+ this.record = { ...this.record, state, updatedAt: new Date().toISOString() };
70
+ return this.write();
71
+ }
72
+ setLastCrashReportId(id) {
73
+ this.record = { ...this.record, lastCrashReportId: id };
74
+ return this.write();
75
+ }
76
+ write() {
77
+ const snapshot = JSON.stringify(this.record);
78
+ this.queue = this.queue.then(async () => {
79
+ try {
80
+ const dir = await this.fs.getInfoAsync(this.directory);
81
+ if (!dir.exists)
82
+ await this.fs.makeDirectoryAsync(this.directory, { intermediates: true });
83
+ await this.fs.writeAsStringAsync(this.path, snapshot);
84
+ const failed = this.writeFailures.recover();
85
+ if (failed > 0)
86
+ this.log.info('[Logger] session marker recovered', { failedWrites: failed });
87
+ }
88
+ catch (error) {
89
+ this.failed('write', error);
90
+ }
91
+ });
92
+ return this.queue;
93
+ }
94
+ failed(op, error) {
95
+ if (this.writeFailures.fail())
96
+ this.log.error('[Logger] session marker failed', { op, error: String(error) });
97
+ }
98
+ }
99
+ //# sourceMappingURL=session-marker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-marker.js","sourceRoot":"","sources":["../src/session-marker.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -60,5 +60,14 @@ export interface LoggerConfig {
60
60
  * to add app rules, or pass `false` to log verbatim.
61
61
  */
62
62
  redact?: ((entry: LogEntry) => LogEntry) | false;
63
+ /**
64
+ * Record whether the previous session ended cleanly (needs
65
+ * expo-file-system). At start a previous session still marked `running`
66
+ * (the process died in the foreground) is logged once at warn as
67
+ * `logger.session.unclean-exit`; one that ended in the background is
68
+ * logged at info. The marker lives next to the file logs (`file.directory`
69
+ * when set). Default off: no file IO.
70
+ */
71
+ sessionMarker?: boolean;
63
72
  }
64
73
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAA;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAA;IACvC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACvE;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC,GAAG,KAAK,CAAA;CACjD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAA;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAA;IACvC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACvE;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC,GAAG,KAAK,CAAA;IAChD;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mongrov/core",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Structured logging for React Native / Expo — ring buffer, file, and webhook transports with offline queue. Includes dev-tools UI components.",
5
5
  "license": "MIT",
6
6
  "repository": {