@dasasian/firebase-structured-logger 0.2.0 → 0.4.0-beta.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/client/errorHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/client/errorHandler.ts"],"names":[],"mappings":"AAqBA,wBAAgB,uBAAuB,IAAI,IAAI,CA8B9C;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,GACpC,IAAI,CAMN"}
|
|
@@ -3,14 +3,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.setupGlobalErrorHandler = setupGlobalErrorHandler;
|
|
4
4
|
exports.handleReactError = handleReactError;
|
|
5
5
|
const logger_1 = require("./logger");
|
|
6
|
+
/**
|
|
7
|
+
* A script loaded cross-origin without CORS has its error withheld by the
|
|
8
|
+
* browser: the event fires with `error === null` and only `message`
|
|
9
|
+
* (classically `"Script error."`), `filename`, `lineno` and `colno` are set.
|
|
10
|
+
*
|
|
11
|
+
* Passing that null straight to the logger produced an entry whose message was
|
|
12
|
+
* the literal string "null" — less information than the event carried, and
|
|
13
|
+
* identical for every such error, so they were indistinguishable in Cloud
|
|
14
|
+
* Logging and collapsed into a single signature that duplicate suppression
|
|
15
|
+
* then swallowed. The locator is folded into the message so the entries stay
|
|
16
|
+
* distinct as well as readable.
|
|
17
|
+
*/
|
|
18
|
+
function errorFromEvent(event) {
|
|
19
|
+
const where = event.filename
|
|
20
|
+
? ` (${event.filename}:${event.lineno ?? 0}:${event.colno ?? 0})`
|
|
21
|
+
: '';
|
|
22
|
+
return new Error(`${event.message || 'Cross-origin script error'}${where}`);
|
|
23
|
+
}
|
|
6
24
|
function setupGlobalErrorHandler() {
|
|
7
25
|
window.addEventListener('error', (event) => {
|
|
8
|
-
|
|
9
|
-
|
|
26
|
+
if (event.error != null) {
|
|
27
|
+
console.error('[fsl] Uncaught error:', event.error);
|
|
28
|
+
(0, logger_1.getClientLogger)().error(event.error, {
|
|
29
|
+
errorCategory: 'crash',
|
|
30
|
+
errorType: 'UncaughtError',
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
console.error('[fsl] Cross-origin script error:', event.message);
|
|
35
|
+
(0, logger_1.getClientLogger)().error(errorFromEvent(event), { errorCategory: 'crash', errorType: 'CrossOriginError' }, { filename: event.filename, lineno: event.lineno, colno: event.colno });
|
|
10
36
|
});
|
|
11
37
|
window.addEventListener('unhandledrejection', (event) => {
|
|
12
38
|
console.error('[fsl] Unhandled rejection:', event.reason);
|
|
13
|
-
|
|
39
|
+
// A rejection can carry any value, including none at all. `toError` would
|
|
40
|
+
// turn that into Error("undefined"), which says nothing.
|
|
41
|
+
const reason = event.reason ?? new Error('Unhandled promise rejection with no reason');
|
|
42
|
+
(0, logger_1.getClientLogger)().error(reason, {
|
|
43
|
+
errorCategory: 'crash',
|
|
44
|
+
errorType: 'UnhandledRejection',
|
|
45
|
+
});
|
|
14
46
|
});
|
|
15
47
|
}
|
|
16
48
|
function handleReactError(error, errorInfo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/client/errorHandler.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/client/errorHandler.ts"],"names":[],"mappings":";;AAqBA,0DA8BC;AAED,4CASC;AA9DD,qCAA0C;AAE1C;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CAAC,KAAiB;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ;QAC1B,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG;QACjE,CAAC,CAAC,EAAE,CAAA;IACN,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,2BAA2B,GAAG,KAAK,EAAE,CAAC,CAAA;AAC7E,CAAC;AAED,SAAgB,uBAAuB;IACrC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACnD,IAAA,wBAAe,GAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;gBACnC,aAAa,EAAE,OAAO;gBACtB,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAChE,IAAA,wBAAe,GAAE,CAAC,KAAK,CACrB,cAAc,CAAC,KAAK,CAAC,EACrB,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,EACzD,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CACvE,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;QACtD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACzD,0EAA0E;QAC1E,yDAAyD;QACzD,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QACzE,IAAA,wBAAe,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE;YAC9B,aAAa,EAAE,OAAO;YACtB,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAC9B,KAAY,EACZ,SAAqC;IAErC,IAAA,wBAAe,GAAE,CAAC,KAAK,CACrB,KAAK,EACL,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,EACnD,EAAE,cAAc,EAAE,SAAS,CAAC,cAAc,EAAE,CAC7C,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM/D,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAQ9D;AAkED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClE,IAAI,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM/D,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAQ9D;AAkED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClE,IAAI,CAwEN;AAaD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;eAuBrC,OAAO,WACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAC5C,IAAI;oBAWI,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAC5C,IAAI;uBAEI,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAC5C,IAAI;qBAEI,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAC5C,IAAI;EAEV;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAG3D,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/functions/logger.js
CHANGED
|
@@ -182,10 +182,17 @@ function writeLog(payload) {
|
|
|
182
182
|
// Production: use firebase-functions/logger write() directly, bypassing entryFromArgs.
|
|
183
183
|
// This avoids server-side stack injection and jsonPayload nesting, while preserving
|
|
184
184
|
// automatic trace context injection for request correlation in Cloud Logging.
|
|
185
|
+
//
|
|
186
|
+
// Labels MUST be emitted under "logging.googleapis.com/labels". ffWrite does no
|
|
187
|
+
// mapping — it JSON-stringifies the object straight to stdout — and Cloud Logging
|
|
188
|
+
// only promotes specifically-named fields to the LogEntry. A plain `labels` key is
|
|
189
|
+
// not one of them, so it lands in jsonPayload.labels and `labels.appId="..."`
|
|
190
|
+
// filters match nothing. Verified live: the smoke run's entry labels contained only
|
|
191
|
+
// Cloud Functions' own platform labels until this changed.
|
|
185
192
|
(0, logger_1.write)({
|
|
186
193
|
severity: payload.severity,
|
|
187
194
|
message: payload.message,
|
|
188
|
-
labels: labels,
|
|
195
|
+
"logging.googleapis.com/labels": labels,
|
|
189
196
|
...payload.jsonPayload,
|
|
190
197
|
});
|
|
191
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,gCAQC;AAqED,kCAWC;AAKD,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dasasian/firebase-structured-logger",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Structured logging for Firebase apps
|
|
3
|
+
"version": "0.4.0-beta.0",
|
|
4
|
+
"description": "Structured logging for Firebase apps \u2014 client, functions, and tools",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Dasasian",
|
|
7
7
|
"keywords": [
|
|
@@ -65,8 +65,10 @@
|
|
|
65
65
|
"build:watch": "tsc --watch",
|
|
66
66
|
"clean": "rm -rf dist",
|
|
67
67
|
"typecheck": "tsc --noEmit",
|
|
68
|
-
"test": "tsx tests/logger.ts && tsx tests/breadcrumbs.ts && tsx tests/rateLimiter.ts && tsx tests/errorHandler.ts && FUNCTIONS_EMULATOR=true tsx tests/errorPayload.ts && FUNCTIONS_EMULATOR=true tsx tests/requestLogger.ts && FUNCTIONS_EMULATOR=true tsx tests/handler.ts && FUNCTIONS_EMULATOR=true tsx tests/symbolication.ts && FUNCTIONS_EMULATOR=true tsx tests/publicApi.ts && FUNCTIONS_EMULATOR=true tsx tests/configureTwice.ts",
|
|
69
|
-
"prepublishOnly": "npm run build"
|
|
68
|
+
"test": "tsx tests/logger.ts && tsx tests/breadcrumbs.ts && tsx tests/rateLimiter.ts && tsx tests/errorHandler.ts && tsx tests/attachments.ts && FUNCTIONS_EMULATOR=true tsx tests/errorPayload.ts && FUNCTIONS_EMULATOR=true tsx tests/requestLogger.ts && FUNCTIONS_EMULATOR=true tsx tests/handler.ts && FUNCTIONS_EMULATOR=true tsx tests/symbolication.ts && FUNCTIONS_EMULATOR=true tsx tests/publicApi.ts && FUNCTIONS_EMULATOR=true tsx tests/configureTwice.ts && tsx tests/productionOutput.ts && tsx tests/handlerSymbolication.ts",
|
|
69
|
+
"prepublishOnly": "npm run build",
|
|
70
|
+
"smoke:deploy": "cd smoke/functions && npm install && npm run build && cd .. && firebase deploy --only functions --project $(grep '^FSL_SMOKE_PROJECT=' .env.local | cut -d= -f2)",
|
|
71
|
+
"smoke": "tsx smoke/run.ts"
|
|
70
72
|
},
|
|
71
73
|
"dependencies": {
|
|
72
74
|
"@google-cloud/storage": "^7.0.0",
|
|
@@ -90,14 +92,17 @@
|
|
|
90
92
|
}
|
|
91
93
|
},
|
|
92
94
|
"devDependencies": {
|
|
95
|
+
"@google-cloud/logging": "^11.4.0",
|
|
96
|
+
"@types/jsdom": "^30.0.0",
|
|
93
97
|
"@types/node": "^26.2.0",
|
|
94
98
|
"firebase": "^12.0.0",
|
|
95
99
|
"firebase-admin": "^14.2.0",
|
|
96
100
|
"firebase-functions": "^7.0.0",
|
|
101
|
+
"jsdom": "^27.0.1",
|
|
97
102
|
"tsx": "^4.19.0",
|
|
98
103
|
"typescript": "~5.9.3"
|
|
99
104
|
},
|
|
100
105
|
"engines": {
|
|
101
|
-
"node": ">=
|
|
106
|
+
"node": ">=22"
|
|
102
107
|
}
|
|
103
108
|
}
|