@mongrov/core 0.5.1 → 0.7.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 +10 -3
- package/dist/context/logging-provider.d.ts.map +1 -1
- package/dist/context/logging-provider.js +42 -6
- package/dist/context/logging-provider.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internal-log.d.ts +31 -0
- package/dist/internal-log.d.ts.map +1 -0
- package/dist/internal-log.js +50 -0
- package/dist/internal-log.js.map +1 -0
- package/dist/logger.d.ts +15 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +256 -30
- package/dist/logger.js.map +1 -1
- package/dist/network-state.d.ts +6 -0
- package/dist/network-state.d.ts.map +1 -1
- package/dist/network-state.js +43 -5
- package/dist/network-state.js.map +1 -1
- package/dist/offline-queue.d.ts +6 -0
- package/dist/offline-queue.d.ts.map +1 -1
- package/dist/offline-queue.js +50 -9
- package/dist/offline-queue.js.map +1 -1
- package/dist/redact.d.ts +13 -0
- package/dist/redact.d.ts.map +1 -0
- package/dist/redact.js +43 -0
- package/dist/redact.js.map +1 -0
- package/dist/transports/file.d.ts +49 -2
- package/dist/transports/file.d.ts.map +1 -1
- package/dist/transports/file.js +228 -55
- package/dist/transports/file.js.map +1 -1
- package/dist/transports/webhook.d.ts +11 -1
- package/dist/transports/webhook.d.ts.map +1 -1
- package/dist/transports/webhook.js +44 -8
- package/dist/transports/webhook.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/logger.js.map
CHANGED
|
@@ -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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"}
|
package/dist/network-state.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import type { InternalLogger } from './internal-log';
|
|
1
2
|
export interface NetworkState {
|
|
2
3
|
isConnected: boolean;
|
|
3
4
|
type: string | null;
|
|
4
5
|
isInternetReachable: boolean | null;
|
|
5
6
|
}
|
|
6
7
|
type NetworkStateListener = (state: NetworkState) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Where connectivity changes and polling failures are reported. Called by
|
|
10
|
+
* `LoggingProvider`; `null` restores the dev-console fallback.
|
|
11
|
+
*/
|
|
12
|
+
export declare function setNetworkStateLogger(logger: InternalLogger | null): void;
|
|
7
13
|
export declare function getNetworkState(): Promise<NetworkState>;
|
|
8
14
|
export declare function addNetworkStateListener(callback: NetworkStateListener): {
|
|
9
15
|
remove: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-state.d.ts","sourceRoot":"","sources":["../src/network-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAA;CACpC;AAED,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"network-state.d.ts","sourceRoot":"","sources":["../src/network-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAA;CACpC;AAED,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;AAezD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAEzE;AAkFD,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAG7D;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,oBAAoB,GAC7B;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAcxB;AAGD,wBAAgB,eAAe,IAAI,YAAY,CAkB9C"}
|
package/dist/network-state.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { devConsoleLogger, FailureGate } from './internal-log';
|
|
1
2
|
let cachedState = {
|
|
2
3
|
isConnected: true,
|
|
3
4
|
type: null,
|
|
@@ -5,6 +6,16 @@ let cachedState = {
|
|
|
5
6
|
};
|
|
6
7
|
const listeners = new Set();
|
|
7
8
|
let pollingInterval = null;
|
|
9
|
+
// Module state has no logger of its own; `LoggingProvider` sets the app's.
|
|
10
|
+
let log = devConsoleLogger();
|
|
11
|
+
const pollFailures = new FailureGate();
|
|
12
|
+
/**
|
|
13
|
+
* Where connectivity changes and polling failures are reported. Called by
|
|
14
|
+
* `LoggingProvider`; `null` restores the dev-console fallback.
|
|
15
|
+
*/
|
|
16
|
+
export function setNetworkStateLogger(logger) {
|
|
17
|
+
log = logger ?? devConsoleLogger();
|
|
18
|
+
}
|
|
8
19
|
function getExpoNetwork() {
|
|
9
20
|
try {
|
|
10
21
|
return require('expo-network');
|
|
@@ -28,19 +39,43 @@ async function pollAndNotify() {
|
|
|
28
39
|
const changed = newState.isConnected !== cachedState.isConnected
|
|
29
40
|
|| newState.type !== cachedState.type
|
|
30
41
|
|| newState.isInternetReachable !== cachedState.isInternetReachable;
|
|
42
|
+
const previous = cachedState;
|
|
31
43
|
cachedState = newState;
|
|
44
|
+
const failed = pollFailures.recover();
|
|
45
|
+
if (failed > 0)
|
|
46
|
+
log.info('[Network] state readable again', { failedPolls: failed });
|
|
32
47
|
if (changed) {
|
|
33
|
-
|
|
48
|
+
log.info('[Network] state changed', {
|
|
49
|
+
isConnected: newState.isConnected,
|
|
50
|
+
type: newState.type,
|
|
51
|
+
isInternetReachable: newState.isInternetReachable,
|
|
52
|
+
wasConnected: previous.isConnected,
|
|
53
|
+
});
|
|
54
|
+
notify(newState);
|
|
34
55
|
}
|
|
35
56
|
}
|
|
36
|
-
catch {
|
|
37
|
-
//
|
|
57
|
+
catch (error) {
|
|
58
|
+
// The cached state stays as it was; listeners hear nothing until a poll
|
|
59
|
+
// succeeds. Reported once per run of failures (polls every 15s).
|
|
60
|
+
if (pollFailures.fail())
|
|
61
|
+
log.warn('[Network] state poll failed; keeping last known state', { error: String(error) });
|
|
38
62
|
}
|
|
39
63
|
}
|
|
64
|
+
function notify(state) {
|
|
65
|
+
listeners.forEach((cb) => {
|
|
66
|
+
// One throwing listener must not starve the others.
|
|
67
|
+
try {
|
|
68
|
+
cb(state);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
log.error('[Network] listener threw', { error: String(error) });
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
40
75
|
function startPolling() {
|
|
41
76
|
if (pollingInterval)
|
|
42
77
|
return;
|
|
43
|
-
pollAndNotify();
|
|
78
|
+
void pollAndNotify(); // never rejects: failures are reported inside
|
|
44
79
|
pollingInterval = setInterval(pollAndNotify, 15000);
|
|
45
80
|
}
|
|
46
81
|
function stopPolling() {
|
|
@@ -74,7 +109,10 @@ export function useNetworkState() {
|
|
|
74
109
|
const { useState, useEffect } = React;
|
|
75
110
|
const [state, setState] = useState(cachedState);
|
|
76
111
|
useEffect(() => {
|
|
77
|
-
getNetworkState().then(setState)
|
|
112
|
+
getNetworkState().then(setState, (error) => {
|
|
113
|
+
// Keeps the cached state; the listener below picks up the next poll.
|
|
114
|
+
log.warn('[Network] initial state read failed', { error: String(error) });
|
|
115
|
+
});
|
|
78
116
|
const subscription = addNetworkStateListener(setState);
|
|
79
117
|
return () => subscription.remove();
|
|
80
118
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-state.js","sourceRoot":"","sources":["../src/network-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"network-state.js","sourceRoot":"","sources":["../src/network-state.ts"],"names":[],"mappings":"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"}
|
package/dist/offline-queue.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { InternalLogger } from './internal-log';
|
|
1
2
|
import type { LogEntry } from './types';
|
|
2
3
|
interface MMKVStorage {
|
|
3
4
|
getString: (key: string) => string | undefined;
|
|
@@ -12,10 +13,15 @@ export declare class OfflineQueue {
|
|
|
12
13
|
private storage;
|
|
13
14
|
private networkSubscription;
|
|
14
15
|
private flushing;
|
|
16
|
+
private readonly log;
|
|
17
|
+
private overflowDropped;
|
|
18
|
+
private readonly storageFailures;
|
|
15
19
|
constructor(sendFn: (entries: LogEntry[]) => Promise<void>, options?: {
|
|
16
20
|
maxSize?: number;
|
|
17
21
|
maxRetries?: number;
|
|
18
22
|
storage?: MMKVStorage;
|
|
23
|
+
/** Receives the queue's own failures; dev console when omitted. */
|
|
24
|
+
logger?: InternalLogger;
|
|
19
25
|
});
|
|
20
26
|
enqueue(entries: LogEntry[]): void;
|
|
21
27
|
flush(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offline-queue.d.ts","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"offline-queue.d.ts","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AASvC,UAAU,WAAW;IACnB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IAC9C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAcD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;gBAGlD,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EAC9C,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,OAAO,CAAC,EAAE,WAAW,CAAA;QACrB,mEAAmE;QACnE,MAAM,CAAC,EAAE,cAAc,CAAA;KACxB;IAWH,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI;IAgB5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8D5B,YAAY,IAAI,MAAM;IAItB,OAAO,IAAI,IAAI;YAOD,aAAa;IAmB3B,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,qBAAqB;CAS9B"}
|
package/dist/offline-queue.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { devConsoleLogger, FailureGate } from './internal-log';
|
|
1
2
|
import { addNetworkStateListener, getNetworkState } from './network-state';
|
|
2
3
|
const QUEUE_KEY = '@mongrov/log-queue';
|
|
3
4
|
const DEFAULT_MAX_SIZE = 500;
|
|
@@ -17,6 +18,10 @@ export class OfflineQueue {
|
|
|
17
18
|
this.queue = [];
|
|
18
19
|
this.networkSubscription = null;
|
|
19
20
|
this.flushing = false;
|
|
21
|
+
// Entries trimmed off the head since the last report.
|
|
22
|
+
this.overflowDropped = 0;
|
|
23
|
+
this.storageFailures = new FailureGate();
|
|
24
|
+
this.log = options?.logger ?? devConsoleLogger();
|
|
20
25
|
this.sendFn = sendFn;
|
|
21
26
|
this.maxSize = options?.maxSize ?? DEFAULT_MAX_SIZE;
|
|
22
27
|
this.maxRetries = options?.maxRetries ?? DEFAULT_MAX_RETRIES;
|
|
@@ -28,20 +33,34 @@ export class OfflineQueue {
|
|
|
28
33
|
this.queue.push(...entries);
|
|
29
34
|
// Drop oldest entries if over max size (FIFO)
|
|
30
35
|
if (this.queue.length > this.maxSize) {
|
|
31
|
-
|
|
36
|
+
const dropped = this.queue.length - this.maxSize;
|
|
37
|
+
this.queue = this.queue.slice(dropped);
|
|
38
|
+
// Once per overflow run; the total is reported when the queue drains.
|
|
39
|
+
if (this.overflowDropped === 0)
|
|
40
|
+
this.log.warn('[OfflineQueue] full; dropping oldest entries', { maxSize: this.maxSize });
|
|
41
|
+
this.overflowDropped += dropped;
|
|
32
42
|
}
|
|
33
43
|
this.saveToStorage();
|
|
34
44
|
}
|
|
35
45
|
async flush() {
|
|
36
46
|
if (this.flushing || this.queue.length === 0)
|
|
37
47
|
return;
|
|
38
|
-
|
|
48
|
+
let networkState;
|
|
49
|
+
try {
|
|
50
|
+
networkState = await getNetworkState();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
// No reading (expo-network missing or failing): keep the entries for
|
|
54
|
+
// the next attempt rather than throwing out of a background flush.
|
|
55
|
+
this.log.warn('[OfflineQueue] network state unavailable; flush skipped', { error: String(error) });
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
39
58
|
if (!networkState.isConnected)
|
|
40
59
|
return;
|
|
41
60
|
this.flushing = true;
|
|
61
|
+
const batch = [...this.queue];
|
|
62
|
+
const startedAt = Date.now();
|
|
42
63
|
try {
|
|
43
|
-
// Take a snapshot of entries to send
|
|
44
|
-
const batch = [...this.queue];
|
|
45
64
|
await this.sendWithRetry(batch);
|
|
46
65
|
// Remove the delivered entries BY ID, not by slicing off `batch.length`
|
|
47
66
|
// from the head.
|
|
@@ -59,9 +78,21 @@ export class OfflineQueue {
|
|
|
59
78
|
const deliveredIds = new Set(batch.map(entry => entry.id));
|
|
60
79
|
this.queue = this.queue.filter(entry => !deliveredIds.has(entry.id));
|
|
61
80
|
this.saveToStorage();
|
|
81
|
+
this.log.info('[OfflineQueue] flushed', {
|
|
82
|
+
sent: batch.length,
|
|
83
|
+
remaining: this.queue.length,
|
|
84
|
+
droppedOnOverflow: this.overflowDropped,
|
|
85
|
+
durationMs: Date.now() - startedAt,
|
|
86
|
+
});
|
|
87
|
+
this.overflowDropped = 0;
|
|
62
88
|
}
|
|
63
|
-
catch {
|
|
89
|
+
catch (error) {
|
|
64
90
|
// Retries exhausted — entries stay in queue for next flush attempt
|
|
91
|
+
this.log.warn('[OfflineQueue] flush failed; entries kept for next attempt', {
|
|
92
|
+
error: String(error),
|
|
93
|
+
attempts: this.maxRetries,
|
|
94
|
+
queued: this.queue.length,
|
|
95
|
+
});
|
|
65
96
|
this.saveToStorage();
|
|
66
97
|
}
|
|
67
98
|
finally {
|
|
@@ -105,7 +136,9 @@ export class OfflineQueue {
|
|
|
105
136
|
}
|
|
106
137
|
}
|
|
107
138
|
}
|
|
108
|
-
catch {
|
|
139
|
+
catch (error) {
|
|
140
|
+
// A corrupt saved queue is discarded: those entries are lost.
|
|
141
|
+
this.log.warn('[OfflineQueue] saved queue unreadable; discarded', { error: String(error) });
|
|
109
142
|
this.queue = [];
|
|
110
143
|
}
|
|
111
144
|
}
|
|
@@ -117,15 +150,23 @@ export class OfflineQueue {
|
|
|
117
150
|
else {
|
|
118
151
|
this.storage.set(QUEUE_KEY, JSON.stringify(this.queue));
|
|
119
152
|
}
|
|
153
|
+
const failed = this.storageFailures.recover();
|
|
154
|
+
if (failed > 0)
|
|
155
|
+
this.log.info('[OfflineQueue] storage writes recovered', { failedWrites: failed });
|
|
120
156
|
}
|
|
121
|
-
catch {
|
|
122
|
-
//
|
|
157
|
+
catch (error) {
|
|
158
|
+
// Non-critical while the app runs (the queue is in memory), but the
|
|
159
|
+
// queue will not survive a restart. Once per run of failures.
|
|
160
|
+
if (this.storageFailures.fail())
|
|
161
|
+
this.log.warn('[OfflineQueue] persist failed', { error: String(error) });
|
|
123
162
|
}
|
|
124
163
|
}
|
|
125
164
|
listenForConnectivity() {
|
|
126
165
|
this.networkSubscription = addNetworkStateListener((state) => {
|
|
127
166
|
if (state.isConnected) {
|
|
128
|
-
this.flush().catch(() => {
|
|
167
|
+
this.flush().catch((error) => {
|
|
168
|
+
this.log.error('[OfflineQueue] flush on reconnect threw', { error: String(error) });
|
|
169
|
+
});
|
|
129
170
|
}
|
|
130
171
|
});
|
|
131
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offline-queue.js","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"offline-queue.js","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"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"}
|
package/dist/redact.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LogEntry } from './types';
|
|
2
|
+
export declare const REDACTED = "[redacted]";
|
|
3
|
+
/**
|
|
4
|
+
* Core's default `LoggerConfig.redact`: masks the value of any secret-looking
|
|
5
|
+
* key and anything shaped like an email in the message and string values.
|
|
6
|
+
*
|
|
7
|
+
* Runs on the sanitized entry, before any transport sees it, so the ring
|
|
8
|
+
* buffer, the file, the webhook and Sentry all get the same redacted line.
|
|
9
|
+
* Packages pass raw `err.message` strings (server responses echo logins), so
|
|
10
|
+
* this is the one place that can catch them all.
|
|
11
|
+
*/
|
|
12
|
+
export declare function defaultRedact(entry: LogEntry): LogEntry;
|
|
13
|
+
//# sourceMappingURL=redact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAYvC,eAAO,MAAM,QAAQ,eAAe,CAAA;AAqBpC;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAMvD"}
|
package/dist/redact.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keys whose values never belong in a log line, wherever they sit in `data`.
|
|
3
|
+
* Matched case-insensitively against the whole key, so `authToken`,
|
|
4
|
+
* `refresh_token`, `Authorization` and `x-api-key` are all caught.
|
|
5
|
+
*/
|
|
6
|
+
const SECRET_KEY = /token|authorization|password|passwd|secret|cookie|api[-_]?key|e-?mail/i;
|
|
7
|
+
// Same shape auth's `describeError` redacts (`auth/src/log.ts`).
|
|
8
|
+
const EMAIL_PATTERN = /[^\s@]+@[^\s@]+\.[^\s@]+/g;
|
|
9
|
+
export const REDACTED = '[redacted]';
|
|
10
|
+
function redactString(text) {
|
|
11
|
+
return text.replace(EMAIL_PATTERN, '[email]');
|
|
12
|
+
}
|
|
13
|
+
function redactValue(value) {
|
|
14
|
+
if (typeof value === 'string')
|
|
15
|
+
return redactString(value);
|
|
16
|
+
if (Array.isArray(value))
|
|
17
|
+
return value.map(redactValue);
|
|
18
|
+
if (value !== null && typeof value === 'object') {
|
|
19
|
+
const out = {};
|
|
20
|
+
// Strings only: `tokenCount: 3` and `emailVerified: true` carry no secret.
|
|
21
|
+
for (const [key, item] of Object.entries(value))
|
|
22
|
+
out[key] = SECRET_KEY.test(key) && typeof item === 'string' ? REDACTED : redactValue(item);
|
|
23
|
+
return out;
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Core's default `LoggerConfig.redact`: masks the value of any secret-looking
|
|
29
|
+
* key and anything shaped like an email in the message and string values.
|
|
30
|
+
*
|
|
31
|
+
* Runs on the sanitized entry, before any transport sees it, so the ring
|
|
32
|
+
* buffer, the file, the webhook and Sentry all get the same redacted line.
|
|
33
|
+
* Packages pass raw `err.message` strings (server responses echo logins), so
|
|
34
|
+
* this is the one place that can catch them all.
|
|
35
|
+
*/
|
|
36
|
+
export function defaultRedact(entry) {
|
|
37
|
+
return {
|
|
38
|
+
...entry,
|
|
39
|
+
message: redactString(entry.message),
|
|
40
|
+
data: entry.data === undefined ? undefined : redactValue(entry.data),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=redact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,GAAG,wEAAwE,CAAA;AAE3F,iEAAiE;AACjE,MAAM,aAAa,GAAG,2BAA2B,CAAA;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAA;AAEpC,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,GAAG,GAA4B,EAAE,CAAA;QACvC,2EAA2E;QAC3E,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC5F,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,KAAe;IAC3C,OAAO;QACL,GAAG,KAAK;QACR,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAA4B;KAChG,CAAA;AACH,CAAC"}
|
|
@@ -1,19 +1,66 @@
|
|
|
1
|
+
import type { InternalLogger } from '../internal-log';
|
|
1
2
|
import type { FileConfig, LogEntry, LogTransport } from '../types';
|
|
3
|
+
/** Test seam: forget the probed API so the next write probes again. */
|
|
4
|
+
export declare function resetFileApiForTests(): void;
|
|
2
5
|
export declare class FileTransport implements LogTransport {
|
|
3
6
|
readonly name = "file";
|
|
4
7
|
private readonly directory;
|
|
5
8
|
private readonly maxSizeMB;
|
|
9
|
+
private readonly maxFileBytes;
|
|
6
10
|
private readonly retentionDays;
|
|
11
|
+
private readonly log;
|
|
12
|
+
private readonly writeFailures;
|
|
7
13
|
private initialized;
|
|
8
|
-
private
|
|
14
|
+
private fallbackReported;
|
|
15
|
+
private current;
|
|
16
|
+
private pending;
|
|
17
|
+
private pendingWaiters;
|
|
18
|
+
private writing;
|
|
9
19
|
private lastCleanup;
|
|
10
20
|
private readonly cleanupIntervalMs;
|
|
11
|
-
|
|
21
|
+
/**
|
|
22
|
+
* `logger` receives this transport's own failures. `createLogger` passes
|
|
23
|
+
* one that skips this transport; standalone use falls back to the dev
|
|
24
|
+
* console.
|
|
25
|
+
*/
|
|
26
|
+
constructor(config?: FileConfig, logger?: InternalLogger);
|
|
27
|
+
/** Resolves once these entries are on disk (or the write failed). */
|
|
12
28
|
send(entries: LogEntry[]): Promise<void>;
|
|
29
|
+
/** Resolves once everything sent so far has been written. */
|
|
30
|
+
flush(): Promise<void>;
|
|
31
|
+
private drain;
|
|
13
32
|
private doWrite;
|
|
33
|
+
/**
|
|
34
|
+
* The file this batch goes to. A new UTC hour starts a new file; so does a
|
|
35
|
+
* current file at or past `maxFileSizeKB`. On the first write of an hour
|
|
36
|
+
* (a relaunch, say) it continues the newest file already on disk for that
|
|
37
|
+
* hour, so a restart does not leave a run of near-empty files.
|
|
38
|
+
*/
|
|
39
|
+
private targetFile;
|
|
40
|
+
private resumeHour;
|
|
41
|
+
/**
|
|
42
|
+
* Appends at the end of the file and returns the bytes written. Never reads
|
|
43
|
+
* the file on the append path: a kill mid-write can at worst cut the last
|
|
44
|
+
* line, not the lines already on disk.
|
|
45
|
+
*/
|
|
46
|
+
private append;
|
|
47
|
+
/** Newest first. */
|
|
14
48
|
getLogFiles(): Promise<string[]>;
|
|
15
49
|
readFile(filename: string): Promise<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Every retained file, legacy day files and hourly files together, oldest
|
|
52
|
+
* first: one JSON entry per line, oldest line first. Unlike the ring buffer
|
|
53
|
+
* this survives an app restart or crash. Waits for pending writes first, so
|
|
54
|
+
* the result includes everything sent.
|
|
55
|
+
*/
|
|
56
|
+
readAll(): Promise<string>;
|
|
16
57
|
private ensureDirectory;
|
|
58
|
+
/**
|
|
59
|
+
* Deletes whole files only, never `current` (the file being written):
|
|
60
|
+
* first those older than `retentionDays`, then the oldest until the
|
|
61
|
+
* directory is under `maxSizeMB`. No file is ever cut, so every line left
|
|
62
|
+
* on disk is a line as it was written.
|
|
63
|
+
*/
|
|
17
64
|
private cleanupIfNeeded;
|
|
18
65
|
}
|
|
19
66
|
//# sourceMappingURL=file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/transports/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/transports/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAsElE,uEAAuE;AACvE,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA6CD,qBAAa,aAAc,YAAW,YAAY;IAChD,QAAQ,CAAC,IAAI,UAAS;IAEtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,OAAO,CAA2B;IAM1C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,OAAO,CAA6B;IAG5C,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAE3C;;;;OAIG;gBACS,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAUxD,qEAAqE;IACrE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,6DAA6D;IACvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAKd,KAAK;YAaL,OAAO;IA6BrB;;;;;OAKG;YACW,UAAU;YAWV,UAAU;IAexB;;;;OAIG;YACW,MAAM;IAmCpB,oBAAoB;IACd,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAYhC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjD;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;YAelB,eAAe;IAW7B;;;;;OAKG;YACW,eAAe;CA4C9B"}
|