@mongrov/core 0.5.1 → 0.6.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/dist/context/logging-provider.d.ts.map +1 -1
- package/dist/context/logging-provider.js +27 -6
- package/dist/context/logging-provider.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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 +228 -28
- 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/transports/file.d.ts +22 -2
- package/dist/transports/file.d.ts.map +1 -1
- package/dist/transports/file.js +101 -20
- 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/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging-provider.d.ts","sourceRoot":"","sources":["../../src/context/logging-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"logging-provider.d.ts","sourceRoot":"","sources":["../../src/context/logging-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,UAAU,oBAAoB;IAC5B,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CA2DzE;AAED,wBAAgB,SAAS,IAAI,MAAM,CAMlC"}
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext, useEffect,
|
|
2
|
+
import { createContext, useContext, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { createLogger } from '../logger';
|
|
4
|
+
import { setNetworkStateLogger } from '../network-state';
|
|
4
5
|
const LoggerContext = createContext(null);
|
|
5
6
|
export function LoggingProvider({ config, children }) {
|
|
6
|
-
//
|
|
7
|
+
// The config is read when a logger is created; later changes to it are not
|
|
8
|
+
// applied to a live logger.
|
|
7
9
|
const configRef = useRef(config);
|
|
8
10
|
configRef.current = config;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
const [logger, setLogger] = useState(() => createLogger(config));
|
|
12
|
+
// Set by the effect cleanup. A cleanup is not always a real unmount: Strict
|
|
13
|
+
// Mode and Fast Refresh run cleanup then the effect again on the SAME
|
|
14
|
+
// component, which used to keep handing out a destroyed logger (webhook
|
|
15
|
+
// timer stopped, offline queue gone). A re-run that finds the logger
|
|
16
|
+
// destroyed replaces it.
|
|
17
|
+
const destroyedRef = useRef(false);
|
|
11
18
|
useEffect(() => {
|
|
19
|
+
if (destroyedRef.current) {
|
|
20
|
+
destroyedRef.current = false;
|
|
21
|
+
// eslint-disable-next-line react-hooks-extra/no-direct-set-state-in-use-effect -- replacing a destroyed logger is the point of this branch
|
|
22
|
+
setLogger(createLogger(configRef.current));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Connectivity changes and polling failures land in this logger.
|
|
26
|
+
setNetworkStateLogger(logger);
|
|
12
27
|
// Try to track screen via expo-router
|
|
13
28
|
let unsubscribe;
|
|
14
29
|
try {
|
|
@@ -23,11 +38,17 @@ export function LoggingProvider({ config, children }) {
|
|
|
23
38
|
}
|
|
24
39
|
}
|
|
25
40
|
catch {
|
|
26
|
-
// expo-router not available — screen tracking disabled
|
|
41
|
+
// expected: expo-router not available — screen tracking disabled
|
|
27
42
|
}
|
|
28
43
|
return () => {
|
|
29
44
|
unsubscribe?.();
|
|
30
|
-
|
|
45
|
+
destroyedRef.current = true;
|
|
46
|
+
setNetworkStateLogger(null);
|
|
47
|
+
logger.destroy().catch((error) => {
|
|
48
|
+
// The logger is going away; its last batch may not reach the webhook.
|
|
49
|
+
if (__DEV__)
|
|
50
|
+
console.warn('[Logger] destroy failed', String(error));
|
|
51
|
+
});
|
|
31
52
|
};
|
|
32
53
|
}, [logger]);
|
|
33
54
|
return (_jsx(LoggerContext.Provider, { value: logger, children: children }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging-provider.js","sourceRoot":"","sources":["../../src/context/logging-provider.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"logging-provider.js","sourceRoot":"","sources":["../../src/context/logging-provider.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,MAAM,aAAa,GAAG,aAAa,CAAgB,IAAI,CAAC,CAAA;AAOxD,MAAM,UAAU,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAwB;IACxE,2EAA2E;IAC3E,4BAA4B;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;IAE1B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;IAChE,4EAA4E;IAC5E,sEAAsE;IACtE,wEAAwE;IACxE,qEAAqE;IACrE,yBAAyB;IACzB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;YAC5B,2IAA2I;YAC3I,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YAC1C,OAAM;QACR,CAAC;QAED,iEAAiE;QACjE,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAE7B,sCAAsC;QACtC,IAAI,WAAqC,CAAA;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;YACzC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBACrD,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAA2C,EAAE,EAAE;oBAC7E,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;wBAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;wBAC1D,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;oBACrC,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,MAAM,CAAC;YACL,iEAAiE;QACnE,CAAC;QAED,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,EAAE,CAAA;YACf,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;YAC3B,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAC3B,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxC,sEAAsE;gBACtE,IAAI,OAAO;oBACT,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1D,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO,CACL,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAClC,QAAQ,GACc,CAC1B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { LoggingProvider, useLogger } from './context/logging-provider';
|
|
2
|
+
export type { InternalLogger } from './internal-log';
|
|
2
3
|
export { createLogger } from './logger';
|
|
3
4
|
export type { Logger } from './logger';
|
|
4
|
-
export { addNetworkStateListener, getNetworkState, useNetworkState } from './network-state';
|
|
5
|
+
export { addNetworkStateListener, getNetworkState, setNetworkStateLogger, useNetworkState } from './network-state';
|
|
5
6
|
export { OfflineQueue } from './offline-queue';
|
|
6
7
|
export { FileTransport } from './transports/file';
|
|
7
8
|
export { RingBufferTransport } from './transports/ring-buffer';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGtC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,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;AAGtC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAElH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,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
CHANGED
|
@@ -3,7 +3,7 @@ export { LoggingProvider, useLogger } from './context/logging-provider';
|
|
|
3
3
|
// Logger
|
|
4
4
|
export { createLogger } from './logger';
|
|
5
5
|
// Network (used internally, exported for convenience)
|
|
6
|
-
export { addNetworkStateListener, getNetworkState, useNetworkState } from './network-state';
|
|
6
|
+
export { addNetworkStateListener, getNetworkState, setNetworkStateLogger, useNetworkState } from './network-state';
|
|
7
7
|
// Offline queue (exported for advanced usage)
|
|
8
8
|
export { OfflineQueue } from './offline-queue';
|
|
9
9
|
export { FileTransport } from './transports/file';
|
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;
|
|
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;AAIvC,sDAAsD;AACtD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClH,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How core's own parts (transports, offline queue, network state) report
|
|
3
|
+
* their failures. `createLogger` hands each part a logger that writes to every
|
|
4
|
+
* transport EXCEPT the one reporting — so a failing file write lands in the
|
|
5
|
+
* ring buffer instead of failing again and reporting again.
|
|
6
|
+
*/
|
|
7
|
+
export interface InternalLogger {
|
|
8
|
+
debug: (message: string, data?: Record<string, unknown>) => void;
|
|
9
|
+
info: (message: string, data?: Record<string, unknown>) => void;
|
|
10
|
+
warn: (message: string, data?: Record<string, unknown>) => void;
|
|
11
|
+
error: (message: string, data?: Record<string, unknown>) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Fallback for a part used on its own, outside `createLogger`: failures to
|
|
15
|
+
* the dev console only (release has no reader for console output).
|
|
16
|
+
*/
|
|
17
|
+
export declare function devConsoleLogger(): InternalLogger;
|
|
18
|
+
/**
|
|
19
|
+
* Collapses a run of identical failures into one report at its start and one
|
|
20
|
+
* at its end. A dead disk or a webhook answering 401 fails on every batch;
|
|
21
|
+
* reporting each would flood the ring buffer with the same line.
|
|
22
|
+
*/
|
|
23
|
+
export declare class FailureGate {
|
|
24
|
+
private failures;
|
|
25
|
+
/** True on the first failure of a run — the one worth reporting. */
|
|
26
|
+
fail(): boolean;
|
|
27
|
+
/** Failures in the run that just ended (0 if none). */
|
|
28
|
+
recover(): number;
|
|
29
|
+
get failing(): boolean;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=internal-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-log.d.ts","sourceRoot":"","sources":["../src/internal-log.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,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;CACjE;AAWD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAajD;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAI;IAEpB,oEAAoE;IACpE,IAAI,IAAI,OAAO;IAKf,uDAAuD;IACvD,OAAO,IAAI,MAAM;IAMjB,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
function isDev() {
|
|
2
|
+
try {
|
|
3
|
+
return typeof __DEV__ !== 'undefined' ? __DEV__ : false;
|
|
4
|
+
}
|
|
5
|
+
catch {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Fallback for a part used on its own, outside `createLogger`: failures to
|
|
11
|
+
* the dev console only (release has no reader for console output).
|
|
12
|
+
*/
|
|
13
|
+
export function devConsoleLogger() {
|
|
14
|
+
const out = (fn) => (message, data) => {
|
|
15
|
+
if (isDev())
|
|
16
|
+
fn(message, data ?? '');
|
|
17
|
+
};
|
|
18
|
+
const none = () => { };
|
|
19
|
+
return {
|
|
20
|
+
debug: none,
|
|
21
|
+
info: none,
|
|
22
|
+
warn: out(console.warn),
|
|
23
|
+
error: out(console.error),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Collapses a run of identical failures into one report at its start and one
|
|
28
|
+
* at its end. A dead disk or a webhook answering 401 fails on every batch;
|
|
29
|
+
* reporting each would flood the ring buffer with the same line.
|
|
30
|
+
*/
|
|
31
|
+
export class FailureGate {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.failures = 0;
|
|
34
|
+
}
|
|
35
|
+
/** True on the first failure of a run — the one worth reporting. */
|
|
36
|
+
fail() {
|
|
37
|
+
this.failures++;
|
|
38
|
+
return this.failures === 1;
|
|
39
|
+
}
|
|
40
|
+
/** Failures in the run that just ended (0 if none). */
|
|
41
|
+
recover() {
|
|
42
|
+
const n = this.failures;
|
|
43
|
+
this.failures = 0;
|
|
44
|
+
return n;
|
|
45
|
+
}
|
|
46
|
+
get failing() {
|
|
47
|
+
return this.failures > 0;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=internal-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-log.js","sourceRoot":"","sources":["../src/internal-log.ts"],"names":[],"mappings":"AAaA,SAAS,KAAK;IACZ,IAAI,CAAC;QACH,OAAO,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IACzD,CAAC;IACD,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,CAAC,EAAgC,EAAE,EAAE,CAC/C,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE;QAClD,IAAI,KAAK,EAAE;YACT,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IAC3B,CAAC,CAAA;IACH,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IACrB,OAAO;QACL,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QACvB,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;KAC1B,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAW;IAAxB;QACU,aAAQ,GAAG,CAAC,CAAA;IAkBtB,CAAC;IAhBC,oEAAoE;IACpE,IAAI;QACF,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,OAAO,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,uDAAuD;IACvD,OAAO;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;QACjB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC1B,CAAC;CACF"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import type { LogEntry, LogFilter, LoggerConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* A JSON-safe snapshot of `data`, taken when the line is logged.
|
|
4
|
+
*
|
|
5
|
+
* Entries used to hold the caller's object by reference, so the export showed
|
|
6
|
+
* whatever it had been mutated into later; an `Error` exported as `{}` (its
|
|
7
|
+
* fields are non-enumerable); and one circular reference or BigInt made
|
|
8
|
+
* `exportLogs` throw, which emptied the whole export.
|
|
9
|
+
*/
|
|
10
|
+
export declare function sanitizeLogData(data?: Record<string, unknown>): Record<string, unknown> | undefined;
|
|
2
11
|
export interface Logger {
|
|
3
12
|
debug: (message: string, data?: Record<string, unknown>) => void;
|
|
4
13
|
info: (message: string, data?: Record<string, unknown>) => void;
|
|
@@ -10,6 +19,12 @@ export interface Logger {
|
|
|
10
19
|
setContext: (key: string, value: string) => void;
|
|
11
20
|
getLogs: (filter?: LogFilter) => LogEntry[];
|
|
12
21
|
exportLogs: (filter?: LogFilter) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Every line the file transport has kept (all retained days, oldest first,
|
|
24
|
+
* one JSON entry per line). Survives restarts and crashes, unlike the ring
|
|
25
|
+
* buffer. Rejects when the file transport is not configured.
|
|
26
|
+
*/
|
|
27
|
+
exportFileLogs: () => Promise<string>;
|
|
13
28
|
flush: () => Promise<void>;
|
|
14
29
|
destroy: () => Promise<void>;
|
|
15
30
|
}
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
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;AAiGhB;;;;;;;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,CAoOzD"}
|
package/dist/logger.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FailureGate } from './internal-log';
|
|
1
2
|
import { FileTransport } from './transports/file';
|
|
2
3
|
import { RingBufferTransport } from './transports/ring-buffer';
|
|
3
4
|
import { WebhookTransport } from './transports/webhook';
|
|
@@ -7,6 +8,129 @@ const LEVEL_ORDER = {
|
|
|
7
8
|
warn: 2,
|
|
8
9
|
error: 3,
|
|
9
10
|
};
|
|
11
|
+
function isLogLevel(value) {
|
|
12
|
+
return typeof value === 'string' && value in LEVEL_ORDER;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `minLevel` arrives from env in practice (`EXPO_PUBLIC_LOG_LEVEL`), where
|
|
16
|
+
* `'INFO'` or a typo is easy. An unknown level used to index LEVEL_ORDER to
|
|
17
|
+
* `undefined`, every comparison came out false, and nothing was filtered.
|
|
18
|
+
*/
|
|
19
|
+
function resolveMinLevel(configured, fallback) {
|
|
20
|
+
if (configured == null || configured === '')
|
|
21
|
+
return fallback;
|
|
22
|
+
const normalized = typeof configured === 'string' ? configured.trim().toLowerCase() : configured;
|
|
23
|
+
if (isLogLevel(normalized))
|
|
24
|
+
return normalized;
|
|
25
|
+
if (isDev())
|
|
26
|
+
console.warn(`[Logger] unknown minLevel ${JSON.stringify(configured)}; using '${fallback}'`);
|
|
27
|
+
return fallback;
|
|
28
|
+
}
|
|
29
|
+
const MAX_DEPTH = 6;
|
|
30
|
+
const MAX_CAUSE_DEPTH = 3;
|
|
31
|
+
function serializeError(error, seen, depth, causeDepth) {
|
|
32
|
+
const out = { name: error.name, message: error.message };
|
|
33
|
+
if (error.stack)
|
|
34
|
+
out.stack = error.stack;
|
|
35
|
+
// Own enumerable fields (`code`, `status`, ...) carry the useful detail on
|
|
36
|
+
// native and DB errors.
|
|
37
|
+
for (const [key, value] of Object.entries(error)) {
|
|
38
|
+
if (!(key in out))
|
|
39
|
+
out[key] = sanitizeValue(value, seen, depth + 1);
|
|
40
|
+
}
|
|
41
|
+
const cause = error.cause;
|
|
42
|
+
if (cause !== undefined) {
|
|
43
|
+
out.cause = causeDepth >= MAX_CAUSE_DEPTH
|
|
44
|
+
? '[Cause depth exceeded]'
|
|
45
|
+
: cause instanceof Error
|
|
46
|
+
? serializeError(cause, seen, depth + 1, causeDepth + 1)
|
|
47
|
+
: sanitizeValue(cause, seen, depth + 1);
|
|
48
|
+
}
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
function sanitizeValue(value, seen, depth) {
|
|
52
|
+
if (value === null || value === undefined)
|
|
53
|
+
return value;
|
|
54
|
+
switch (typeof value) {
|
|
55
|
+
case 'string':
|
|
56
|
+
case 'number':
|
|
57
|
+
case 'boolean':
|
|
58
|
+
return value;
|
|
59
|
+
case 'bigint':
|
|
60
|
+
return value.toString();
|
|
61
|
+
case 'function':
|
|
62
|
+
return `[Function ${value.name || 'anonymous'}]`;
|
|
63
|
+
case 'symbol':
|
|
64
|
+
return value.toString();
|
|
65
|
+
}
|
|
66
|
+
const obj = value;
|
|
67
|
+
if (seen.has(obj))
|
|
68
|
+
return '[Circular]';
|
|
69
|
+
if (depth >= MAX_DEPTH)
|
|
70
|
+
return '[Depth exceeded]';
|
|
71
|
+
seen.add(obj);
|
|
72
|
+
try {
|
|
73
|
+
if (obj instanceof Error)
|
|
74
|
+
return serializeError(obj, seen, depth, 0);
|
|
75
|
+
if (obj instanceof Date)
|
|
76
|
+
return Number.isNaN(obj.getTime()) ? 'Invalid Date' : obj.toISOString();
|
|
77
|
+
if (Array.isArray(obj))
|
|
78
|
+
return obj.map(item => sanitizeValue(item, seen, depth + 1));
|
|
79
|
+
const out = {};
|
|
80
|
+
for (const [key, item] of Object.entries(obj))
|
|
81
|
+
out[key] = sanitizeValue(item, seen, depth + 1);
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
// Only ancestors count as circular; the same object twice side by side
|
|
86
|
+
// is a repeat, not a cycle.
|
|
87
|
+
seen.delete(obj);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A JSON-safe snapshot of `data`, taken when the line is logged.
|
|
92
|
+
*
|
|
93
|
+
* Entries used to hold the caller's object by reference, so the export showed
|
|
94
|
+
* whatever it had been mutated into later; an `Error` exported as `{}` (its
|
|
95
|
+
* fields are non-enumerable); and one circular reference or BigInt made
|
|
96
|
+
* `exportLogs` throw, which emptied the whole export.
|
|
97
|
+
*/
|
|
98
|
+
export function sanitizeLogData(data) {
|
|
99
|
+
if (data === undefined || data === null)
|
|
100
|
+
return undefined;
|
|
101
|
+
try {
|
|
102
|
+
const out = sanitizeValue(data, new WeakSet(), 0);
|
|
103
|
+
return out !== null && typeof out === 'object' && !Array.isArray(out)
|
|
104
|
+
? out
|
|
105
|
+
: { value: out };
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return { unserializable: String(error) };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function stringifyEntries(entries) {
|
|
112
|
+
try {
|
|
113
|
+
return JSON.stringify(entries, null, 2);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Per entry, so one bad line cannot empty the export.
|
|
117
|
+
const parts = entries.map((entry) => {
|
|
118
|
+
try {
|
|
119
|
+
return JSON.stringify(entry, null, 2);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
return JSON.stringify({
|
|
123
|
+
id: entry.id,
|
|
124
|
+
timestamp: entry.timestamp,
|
|
125
|
+
level: entry.level,
|
|
126
|
+
message: entry.message,
|
|
127
|
+
data: { unserializable: String(error) },
|
|
128
|
+
}, null, 2);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return `[\n${parts.join(',\n')}\n]`;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
10
134
|
let counter = 0;
|
|
11
135
|
function generateId() {
|
|
12
136
|
return `${Date.now()}-${++counter}`;
|
|
@@ -33,7 +157,7 @@ function isDev() {
|
|
|
33
157
|
}
|
|
34
158
|
export function createLogger(config) {
|
|
35
159
|
const dev = isDev();
|
|
36
|
-
const minLevel = config.minLevel
|
|
160
|
+
const minLevel = resolveMinLevel(config.minLevel, dev ? 'debug' : 'info');
|
|
37
161
|
const minLevelNum = LEVEL_ORDER[minLevel];
|
|
38
162
|
const sessionId = generateSessionId();
|
|
39
163
|
const platform = getPlatform();
|
|
@@ -45,10 +169,19 @@ export function createLogger(config) {
|
|
|
45
169
|
platform,
|
|
46
170
|
};
|
|
47
171
|
const extraContext = {};
|
|
172
|
+
// Per-transport failure runs, so a transport that rejects every entry
|
|
173
|
+
// reports once rather than once per line.
|
|
174
|
+
const sendFailures = new Map();
|
|
175
|
+
// Set while a core part's report is being routed. A report raised from
|
|
176
|
+
// inside another report is dropped: core must never log about logging in
|
|
177
|
+
// a loop.
|
|
178
|
+
let reporting = false;
|
|
48
179
|
// Initialize transports
|
|
49
180
|
const transports = [];
|
|
50
181
|
let ringBuffer = null;
|
|
182
|
+
let fileTransport = null;
|
|
51
183
|
let webhookTransport = null;
|
|
184
|
+
let fileUnavailable = null;
|
|
52
185
|
// Ring buffer
|
|
53
186
|
if (config.ringBuffer) {
|
|
54
187
|
const rbConfig = typeof config.ringBuffer === 'boolean' ? {} : config.ringBuffer;
|
|
@@ -58,62 +191,123 @@ export function createLogger(config) {
|
|
|
58
191
|
// File transport
|
|
59
192
|
if (config.file) {
|
|
60
193
|
const fileConfig = typeof config.file === 'boolean' ? {} : config.file;
|
|
61
|
-
|
|
194
|
+
try {
|
|
195
|
+
fileTransport = new FileTransport(fileConfig, internalLogger('file'));
|
|
196
|
+
transports.push(fileTransport);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
// expo-file-system missing: logging still works without the file.
|
|
200
|
+
// Reported once the other transports exist (below).
|
|
201
|
+
fileUnavailable = String(error);
|
|
202
|
+
}
|
|
62
203
|
}
|
|
63
204
|
// Webhook transport
|
|
64
205
|
if (config.webhook) {
|
|
65
|
-
webhookTransport = new WebhookTransport(config.webhook);
|
|
206
|
+
webhookTransport = new WebhookTransport(config.webhook, internalLogger('webhook'));
|
|
66
207
|
transports.push(webhookTransport);
|
|
67
208
|
}
|
|
68
209
|
// Custom transports
|
|
69
210
|
if (config.transports) {
|
|
70
211
|
transports.push(...config.transports);
|
|
71
212
|
}
|
|
213
|
+
if (fileUnavailable !== null)
|
|
214
|
+
log('warn', '[Logger] file transport unavailable; file log disabled', { error: fileUnavailable });
|
|
72
215
|
function buildEntry(level, message, data) {
|
|
73
216
|
return {
|
|
74
217
|
id: generateId(),
|
|
75
218
|
timestamp: new Date().toISOString(),
|
|
76
219
|
level,
|
|
77
220
|
message,
|
|
78
|
-
data,
|
|
221
|
+
data: sanitizeLogData(data),
|
|
79
222
|
context: { ...ctx, ...extraContext },
|
|
80
223
|
};
|
|
81
224
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
225
|
+
function route(entry, skip) {
|
|
226
|
+
for (const transport of transports) {
|
|
227
|
+
if (transport.name === skip)
|
|
228
|
+
continue;
|
|
229
|
+
transport.send([entry]).then(() => {
|
|
230
|
+
const failed = sendFailures.get(transport.name)?.recover() ?? 0;
|
|
231
|
+
if (failed > 0)
|
|
232
|
+
report(transport.name, 'info', '[Logger] transport recovered', { transport: transport.name, failedSends: failed });
|
|
233
|
+
}, (error) => {
|
|
234
|
+
let gate = sendFailures.get(transport.name);
|
|
235
|
+
if (!gate) {
|
|
236
|
+
gate = new FailureGate();
|
|
237
|
+
sendFailures.set(transport.name, gate);
|
|
238
|
+
}
|
|
239
|
+
if (gate.fail())
|
|
240
|
+
report(transport.name, 'error', '[Logger] transport send failed', { transport: transport.name, error: String(error) });
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function toConsole(level, message, data) {
|
|
245
|
+
const consoleFn = level === 'error'
|
|
246
|
+
? console.error
|
|
247
|
+
: level === 'warn'
|
|
248
|
+
? console.warn
|
|
249
|
+
: level === 'debug'
|
|
250
|
+
? console.debug
|
|
251
|
+
: console.log;
|
|
252
|
+
consoleFn(`[${level.toUpperCase()}] ${message}`, data ?? '');
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* `force` skips the `minLevel` filter. `error` is never filtered either:
|
|
256
|
+
* it is the top level, and stays recorded whatever the config says.
|
|
257
|
+
*/
|
|
258
|
+
function log(level, message, data, force = false) {
|
|
259
|
+
if (!force && level !== 'error' && LEVEL_ORDER[level] < minLevelNum)
|
|
84
260
|
return;
|
|
85
261
|
const entry = buildEntry(level, message, data);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
262
|
+
if (dev)
|
|
263
|
+
toConsole(level, message, data);
|
|
264
|
+
route(entry);
|
|
265
|
+
}
|
|
266
|
+
/** A report from core's own `source` transport: routed everywhere else. */
|
|
267
|
+
function report(source, level, message, data) {
|
|
268
|
+
if (reporting || LEVEL_ORDER[level] < minLevelNum)
|
|
269
|
+
return;
|
|
270
|
+
reporting = true;
|
|
271
|
+
try {
|
|
272
|
+
const entry = buildEntry(level, message, data);
|
|
273
|
+
if (dev)
|
|
274
|
+
toConsole(level, message, data);
|
|
275
|
+
route(entry, source);
|
|
96
276
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
transport.send([entry]).catch(() => {
|
|
100
|
-
// Transport errors are non-fatal
|
|
101
|
-
});
|
|
277
|
+
finally {
|
|
278
|
+
reporting = false;
|
|
102
279
|
}
|
|
103
280
|
}
|
|
281
|
+
function internalLogger(source) {
|
|
282
|
+
return {
|
|
283
|
+
debug: (message, data) => report(source, 'debug', message, data),
|
|
284
|
+
info: (message, data) => report(source, 'info', message, data),
|
|
285
|
+
warn: (message, data) => report(source, 'warn', message, data),
|
|
286
|
+
error: (message, data) => report(source, 'error', message, data),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
104
289
|
const logger = {
|
|
105
290
|
debug: (message, data) => log('debug', message, data),
|
|
106
291
|
info: (message, data) => log('info', message, data),
|
|
107
292
|
warn: (message, data) => log('warn', message, data),
|
|
108
293
|
error: (message, data) => log('error', message, data),
|
|
109
294
|
captureException(error, context) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
295
|
+
// JS callers hand over whatever was thrown; a non-Error must not turn
|
|
296
|
+
// into an `undefined` message.
|
|
297
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
298
|
+
// Recorded whatever `minLevel` says.
|
|
299
|
+
log('error', err.message, {
|
|
300
|
+
stack: err.stack,
|
|
301
|
+
name: err.name,
|
|
113
302
|
...context,
|
|
114
|
-
});
|
|
303
|
+
}, true);
|
|
115
304
|
if (config.onException) {
|
|
116
|
-
|
|
305
|
+
try {
|
|
306
|
+
config.onException(err, context);
|
|
307
|
+
}
|
|
308
|
+
catch (hookError) {
|
|
309
|
+
log('error', '[Logger] onException hook threw', { error: String(hookError) }, true);
|
|
310
|
+
}
|
|
117
311
|
}
|
|
118
312
|
},
|
|
119
313
|
setUser(userId) {
|
|
@@ -136,10 +330,16 @@ export function createLogger(config) {
|
|
|
136
330
|
if (!ringBuffer) {
|
|
137
331
|
throw new Error('Ring buffer not configured. Enable ringBuffer in LoggerConfig.');
|
|
138
332
|
}
|
|
139
|
-
|
|
140
|
-
|
|
333
|
+
return stringifyEntries(ringBuffer.getEntries(filter));
|
|
334
|
+
},
|
|
335
|
+
async exportFileLogs() {
|
|
336
|
+
if (!fileTransport) {
|
|
337
|
+
throw new Error('File transport not configured. Enable file in LoggerConfig.');
|
|
338
|
+
}
|
|
339
|
+
return fileTransport.readAll();
|
|
141
340
|
},
|
|
142
341
|
async flush() {
|
|
342
|
+
await fileTransport?.flush();
|
|
143
343
|
if (webhookTransport) {
|
|
144
344
|
await webhookTransport.flush();
|
|
145
345
|
}
|
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"}
|