@dasasian/firebase-structured-logger 0.7.0 → 0.8.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 +76 -6
- package/dist/client/logger.d.ts.map +1 -1
- package/dist/client/logger.js +16 -2
- package/dist/client/logger.js.map +1 -1
- package/dist/functions/httpHandler.d.ts.map +1 -1
- package/dist/functions/httpHandler.js +3 -0
- package/dist/functions/httpHandler.js.map +1 -1
- package/dist/functions/logHandler.d.ts +2 -1
- package/dist/functions/logHandler.d.ts.map +1 -1
- package/dist/functions/logHandler.js +15 -3
- package/dist/functions/logHandler.js.map +1 -1
- package/dist/functions/logger.d.ts +13 -0
- package/dist/functions/logger.d.ts.map +1 -1
- package/dist/functions/logger.js +77 -14
- package/dist/functions/logger.js.map +1 -1
- package/dist/functions/sourceMapCache.d.ts +14 -4
- package/dist/functions/sourceMapCache.d.ts.map +1 -1
- package/dist/functions/sourceMapCache.js +95 -6
- package/dist/functions/sourceMapCache.js.map +1 -1
- package/dist/functions/traceContext.d.ts +21 -7
- package/dist/functions/traceContext.d.ts.map +1 -1
- package/dist/functions/traceContext.js +60 -12
- package/dist/functions/traceContext.js.map +1 -1
- package/package.json +11 -5
package/README.md
CHANGED
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
|
|
16
16
|
Your web app crashed at `app-4f2a.js:1:98432`. This tells you it was `Checkout.tsx:42` — in your own Google Cloud project, next to your backend logs. Nothing leaves.
|
|
17
17
|
|
|
18
|
-
Ships a
|
|
18
|
+
Ships a browser logger, a server logger, and the `fsl` CLI. Built for Firebase, but
|
|
19
|
+
Firebase is optional: the browser half has no Firebase dependency, and the server half
|
|
20
|
+
runs on Cloud Functions, Cloud Run, or any Node server. What it needs is a Google Cloud
|
|
21
|
+
project — that is where the logs live.
|
|
19
22
|
|
|
20
23
|
## One query, both halves
|
|
21
24
|
|
|
@@ -62,9 +65,12 @@ npm install @dasasian/firebase-structured-logger
|
|
|
62
65
|
|
|
63
66
|
# Cloud Functions
|
|
64
67
|
cd functions && npm install @dasasian/firebase-structured-logger
|
|
68
|
+
|
|
69
|
+
# Cloud Run, or any Node server
|
|
70
|
+
npm install @dasasian/firebase-structured-logger
|
|
65
71
|
```
|
|
66
72
|
|
|
67
|
-
Ships ESM with three entry points — `/client`, `/functions`, `/tools` — plus the `fsl` CLI. `firebase`, `firebase-admin`, and `firebase-functions` are optional peer dependencies (bring your own versions).
|
|
73
|
+
Ships ESM with three entry points — `/client`, `/functions`, `/tools` — plus the `fsl` CLI. `firebase`, `firebase-admin`, and `firebase-functions` are optional peer dependencies (bring your own versions). None of them is needed to load the package; each only switches on the part that uses it — see [Without Firebase](#without-firebase).
|
|
68
74
|
|
|
69
75
|
## Setup
|
|
70
76
|
|
|
@@ -218,6 +224,37 @@ app.post('/log', createHttpLogHandler({
|
|
|
218
224
|
}))
|
|
219
225
|
```
|
|
220
226
|
|
|
227
|
+
The handler reads Node's request and response shapes. A framework that wraps them, like
|
|
228
|
+
Hono, needs a few lines of adapter:
|
|
229
|
+
|
|
230
|
+
```ts
|
|
231
|
+
import { Hono } from 'hono'
|
|
232
|
+
import { createHttpLogHandler } from '@dasasian/firebase-structured-logger/functions'
|
|
233
|
+
|
|
234
|
+
const app = new Hono()
|
|
235
|
+
const logHandler = createHttpLogHandler({ authorize })
|
|
236
|
+
|
|
237
|
+
app.on(['POST', 'OPTIONS'], '/log', async (c) => {
|
|
238
|
+
const headers: Record<string, string> = {}
|
|
239
|
+
let status = 200
|
|
240
|
+
let body: string | undefined
|
|
241
|
+
await logHandler(
|
|
242
|
+
{
|
|
243
|
+
method: c.req.method,
|
|
244
|
+
headers: Object.fromEntries(c.req.raw.headers),
|
|
245
|
+
body: await c.req.json().catch(() => null),
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
get statusCode() { return status },
|
|
249
|
+
set statusCode(v: number) { status = v },
|
|
250
|
+
setHeader: (name, value) => { headers[name] = value },
|
|
251
|
+
end: (b) => { body = b },
|
|
252
|
+
},
|
|
253
|
+
)
|
|
254
|
+
return new Response(body ?? null, { status, headers })
|
|
255
|
+
})
|
|
256
|
+
```
|
|
257
|
+
|
|
221
258
|
**Point the client at it.** `logFunction` is any async function, so a `fetch` works:
|
|
222
259
|
|
|
223
260
|
```ts
|
|
@@ -238,6 +275,22 @@ initLogger({
|
|
|
238
275
|
})
|
|
239
276
|
```
|
|
240
277
|
|
|
278
|
+
#### Without Firebase
|
|
279
|
+
|
|
280
|
+
Nothing here needs a Firebase project — only a Google Cloud one. What changes:
|
|
281
|
+
|
|
282
|
+
- **The browser** needs no `firebase` package. `logFunction` is the `fetch` above; send
|
|
283
|
+
whatever credential your app already uses.
|
|
284
|
+
- **`authorize`** checks your own session instead of a Firebase ID token — for example
|
|
285
|
+
`authorize: (req) => sessions.isValid(req.headers.cookie)`.
|
|
286
|
+
- **Storage** has no Firebase default bucket to fall back to. Name one with `bucketName`
|
|
287
|
+
(it holds source maps and attachments), and give the service's account access to it.
|
|
288
|
+
Or name none: embedded maps still resolve the current release, older releases stay
|
|
289
|
+
minified, and attachments are dropped — the log says so once.
|
|
290
|
+
- **`fsl upload-sourcemaps --bucket`** works with any Cloud Storage bucket.
|
|
291
|
+
- **`withLogging` and `createClientLogFunction`** are Cloud Functions tools. Outside
|
|
292
|
+
them, `logInfo` / `logError` and friends still write the same entries.
|
|
293
|
+
|
|
241
294
|
#### `authorize` is required, and that is deliberate
|
|
242
295
|
|
|
243
296
|
A callable gets Firebase's token check for free. An HTTP endpoint gets nothing, and an
|
|
@@ -262,14 +315,24 @@ A gate that throws counts as a rejection, not an opening.
|
|
|
262
315
|
before the handler. Raise its limit if you send attachments.
|
|
263
316
|
- **CORS** defaults to `*`, matching `cors: true` on the callable. Pass `allowOrigin` to
|
|
264
317
|
name your origin — a browser cannot send cookies to a wildcard.
|
|
265
|
-
- **
|
|
266
|
-
|
|
267
|
-
|
|
318
|
+
- **No `firebase-functions`? Not needed.** The entry point loads without it. Each entry is
|
|
319
|
+
written as one line of JSON, which Cloud Run's log agent parses into the same Cloud
|
|
320
|
+
Logging fields a function's would.
|
|
321
|
+
- **Trace correlation works**, and needs nothing from you on Cloud Run. The handler reads
|
|
322
|
+
`X-Cloud-Trace-Context` or `traceparent` off the request, and asks the metadata server
|
|
323
|
+
for the project id once, so a request's entries group with Cloud Run's own request log
|
|
324
|
+
in Cloud Logging. Somewhere else — GKE, a VM — set `GOOGLE_CLOUD_PROJECT`; without it
|
|
325
|
+
the trace id is still written, but does not join the platform's request log.
|
|
326
|
+
- **No `firebase-admin`? Also optional.** Storage is only needed for older releases'
|
|
327
|
+
source maps and for attachments. With `firebase-admin` installed, its Storage and
|
|
328
|
+
default bucket are used. Without it, name the bucket — `bucketName` on the handler, or
|
|
329
|
+
`configureAttachments({ bucket })` — and the service's own credentials are used.
|
|
268
330
|
- **No Storage bucket?** You do not need one. `fsl upload-sourcemaps --embed-sourcemaps`
|
|
269
331
|
without `--bucket` embeds the current release's maps into your deploy and uploads
|
|
270
332
|
nothing. The catch: only the **deployed** release can be symbolicated, because older
|
|
271
333
|
ones live in a bucket there isn't one of. Errors from a previous release come back
|
|
272
|
-
minified.
|
|
334
|
+
minified, and attachments are dropped — the entry is still written. With neither
|
|
335
|
+
`firebase-admin` nor a bucket name, the log says so once at the first lookup.
|
|
273
336
|
- **Response codes:** `204` written, `400` malformed payload, `401` gate refused, `405`
|
|
274
337
|
not a POST, `500` something else. The client treats a non-2xx as a throw.
|
|
275
338
|
|
|
@@ -586,6 +649,13 @@ Two errors count as duplicates when the **message and the screen both match**, s
|
|
|
586
649
|
error on two different screens is not collapsed into one. The budget lives in
|
|
587
650
|
`sessionStorage` and resets with the session.
|
|
588
651
|
|
|
652
|
+
The client's production default comes from `process.env.NODE_ENV`, which Vite replaces at
|
|
653
|
+
build time. A `define: { 'process.env': {} }` in `vite.config` — common, to quiet a library
|
|
654
|
+
that expects Node — replaces the whole object instead, `NODE_ENV` reads as undefined, and
|
|
655
|
+
the floor is silently `DEBUG` in production. If your config has that line, pass
|
|
656
|
+
`minLogLevel` explicitly. Stating it is the safe habit either way: it is the one default
|
|
657
|
+
here whose failure mode is a bill rather than a missing log.
|
|
658
|
+
|
|
589
659
|
### What a dropped log looks like
|
|
590
660
|
|
|
591
661
|
The two rate limits say so in the browser console:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/client/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAWxF,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,eAAe,CAAA;AAEtB,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAEzD,MAAM,WAAW,eAAe,CAC9B,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzF,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,CAAA;IAClD,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,gBAAgB,CAC/B,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzF,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,gBAAgB,CAAC,EAAE,eAAe,CAAA;CACnC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/client/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/client/logger.js
CHANGED
|
@@ -9,9 +9,23 @@ const severity_1 = require("../shared/severity");
|
|
|
9
9
|
const error_1 = require("../shared/error");
|
|
10
10
|
const breadcrumbs_1 = require("./breadcrumbs");
|
|
11
11
|
const rateLimiter_1 = require("./rateLimiter");
|
|
12
|
+
/**
|
|
13
|
+
* No `typeof process` guard, on purpose. Every bundler folds `process.env.NODE_ENV` to a
|
|
14
|
+
* string literal at build time, so the comparison is safe in a browser — but `process`
|
|
15
|
+
* itself does not exist there, and guarding on it meant the folded branch was never
|
|
16
|
+
* reached: every browser build defaulted to DEBUG in production, and the README's
|
|
17
|
+
* "WARNING in production" was true only under Node. Seen in a real Vite bundle as
|
|
18
|
+
* `typeof process<"u"?"WARNING":"DEBUG"`. A runtime with neither the fold nor
|
|
19
|
+
* `process` throws on the read, and that is the case the catch is for.
|
|
20
|
+
*/
|
|
12
21
|
function defaultMinLevel() {
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
try {
|
|
23
|
+
if (process.env.NODE_ENV === 'production')
|
|
24
|
+
return 'WARNING';
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Not Node and not folded: development.
|
|
28
|
+
}
|
|
15
29
|
return 'DEBUG';
|
|
16
30
|
}
|
|
17
31
|
// Order matters — first match wins.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/client/logger.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/client/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpHandler.d.ts","sourceRoot":"","sources":["../../src/functions/httpHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA0C,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAIlG,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACtD,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAA;IAExF;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAiBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,GAC3B,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"httpHandler.d.ts","sourceRoot":"","sources":["../../src/functions/httpHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA0C,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAIlG,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACtD,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAA;IAExF;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAiBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,GAC3B,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CA+D9D"}
|
|
@@ -96,6 +96,9 @@ function createHttpLogHandler(config) {
|
|
|
96
96
|
// only attaches one inside its own wrapper, so out here we read the
|
|
97
97
|
// headers ourselves — otherwise the logs arrive uncorrelated and nothing
|
|
98
98
|
// says why.
|
|
99
|
+
// Once per process, and a no-op off Cloud Run: the trace needs the project
|
|
100
|
+
// id, which Cloud Run does not put in the environment.
|
|
101
|
+
await (0, traceContext_1.resolveTraceProject)();
|
|
99
102
|
await (0, traceContext_1.runWithTrace)((0, traceContext_1.traceIdFromHeaders)(req.headers), () => handler({ data: req.body }));
|
|
100
103
|
return send(res, 204);
|
|
101
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpHandler.js","sourceRoot":"","sources":["../../src/functions/httpHandler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAgGH,
|
|
1
|
+
{"version":3,"file":"httpHandler.js","sourceRoot":"","sources":["../../src/functions/httpHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type * as FirebaseHttps from 'firebase-functions/v2/https';
|
|
1
2
|
import type { LogPayload } from '../shared/types';
|
|
2
3
|
export interface ClientLogHandlerConfig {
|
|
3
4
|
/**
|
|
@@ -74,5 +75,5 @@ export declare function createClientLogHandler(config: ClientLogHandlerConfig):
|
|
|
74
75
|
export declare function createClientLogFunction(config: ClientLogHandlerConfig & {
|
|
75
76
|
cors?: boolean | string | string[];
|
|
76
77
|
maxInstances?: number;
|
|
77
|
-
}):
|
|
78
|
+
}): FirebaseHttps.CallableFunction<LogPayload, Promise<void>, unknown>;
|
|
78
79
|
//# sourceMappingURL=logHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logHandler.d.ts","sourceRoot":"","sources":["../../src/functions/logHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logHandler.d.ts","sourceRoot":"","sources":["../../src/functions/logHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,aAAa,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,iBAAiB,CAAA;AAuB/D,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAClD;AAID;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,UAAU;gBAArC,IAAI,EAAE,kBAAkB,GAAG,UAAU,EAC9C,OAAO,EAAE,MAAM;CAKlB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAA;CACjB;AA6DD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,IAGrD,SAAS,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAAC,CAqCxD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,sBAAsB,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,sEAiB/F"}
|
|
@@ -3,11 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ClientLogError = void 0;
|
|
4
4
|
exports.createClientLogHandler = createClientLogHandler;
|
|
5
5
|
exports.createClientLogFunction = createClientLogFunction;
|
|
6
|
-
const https_1 = require("firebase-functions/v2/https");
|
|
7
6
|
const severity_1 = require("../shared/severity");
|
|
8
7
|
const logger_1 = require("./logger");
|
|
9
8
|
const sourceMapCache_1 = require("./sourceMapCache");
|
|
10
9
|
const symbolicate_1 = require("./symbolicate");
|
|
10
|
+
/**
|
|
11
|
+
* OPTIONAL PEER — firebase-functions is loaded lazily, on purpose.
|
|
12
|
+
*
|
|
13
|
+
* Only createClientLogFunction needs it, and that only runs on Cloud Functions, where
|
|
14
|
+
* it is always installed. A top-level import made the whole `/functions` entry point
|
|
15
|
+
* fail on `require` on a backend that wants createHttpLogHandler and nothing else
|
|
16
|
+
* (#39). `require` rather than `await import`: createClientLogFunction must return
|
|
17
|
+
* the function synchronously, because `firebase deploy` reads the export at load.
|
|
18
|
+
*/
|
|
19
|
+
function loadFirebaseHttps() {
|
|
20
|
+
return require('firebase-functions/v2/https');
|
|
21
|
+
}
|
|
11
22
|
const VALID_SEVERITIES = new Set(severity_1.SEVERITIES);
|
|
12
23
|
/**
|
|
13
24
|
* What the bare handler throws.
|
|
@@ -123,7 +134,8 @@ function createClientLogHandler(config) {
|
|
|
123
134
|
*/
|
|
124
135
|
function createClientLogFunction(config) {
|
|
125
136
|
const handler = createClientLogHandler(config);
|
|
126
|
-
|
|
137
|
+
const { onCall, HttpsError } = loadFirebaseHttps();
|
|
138
|
+
return onCall({ cors: config.cors ?? true, maxInstances: config.maxInstances ?? 1 }, async (request) => {
|
|
127
139
|
try {
|
|
128
140
|
await handler(request);
|
|
129
141
|
}
|
|
@@ -131,7 +143,7 @@ function createClientLogFunction(config) {
|
|
|
131
143
|
// Convert back at the Firebase boundary, so a callable client sees the
|
|
132
144
|
// same error it always did.
|
|
133
145
|
if (err instanceof ClientLogError)
|
|
134
|
-
throw new
|
|
146
|
+
throw new HttpsError(err.code, err.message);
|
|
135
147
|
throw err;
|
|
136
148
|
}
|
|
137
149
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logHandler.js","sourceRoot":"","sources":["../../src/functions/logHandler.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"logHandler.js","sourceRoot":"","sources":["../../src/functions/logHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
+
import type { write as FirebaseWrite } from "firebase-functions/logger";
|
|
1
2
|
import type { LogSeverity, LogPayload } from "../shared/types";
|
|
3
|
+
type EntryWriter = typeof FirebaseWrite;
|
|
4
|
+
/**
|
|
5
|
+
* What firebase-functions' `write()` does, minus the trace id: one JSON line, WARNING
|
|
6
|
+
* and above to stderr and the rest to stdout (its console mapping), and a
|
|
7
|
+
* self-referencing object written as "[Circular]" rather than throwing. Cloud Run's log
|
|
8
|
+
* agent promotes `severity`, `message` and the `logging.googleapis.com/*` keys exactly
|
|
9
|
+
* as Cloud Functions does.
|
|
10
|
+
*
|
|
11
|
+
* Writes to the streams, not `console`: firebase-functions' compat module patches
|
|
12
|
+
* `console`, and a patched `console.error` would wrap this line a second time.
|
|
13
|
+
*/
|
|
14
|
+
export declare function writeJsonLine(entry: Parameters<EntryWriter>[0]): void;
|
|
2
15
|
export declare const LOG_FILENAME = "dev.jsonl";
|
|
3
16
|
interface FunctionsLoggerConfig {
|
|
4
17
|
appId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ/D,KAAK,WAAW,GAAG,OAAO,aAAa,CAAC;AAgCxC;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAWrE;AAGD,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;AAoFD;;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,CAkKN;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
|
@@ -34,19 +34,70 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.LOG_FILENAME = void 0;
|
|
37
|
+
exports.writeJsonLine = writeJsonLine;
|
|
37
38
|
exports.initLogger = initLogger;
|
|
38
39
|
exports.cleanLabels = cleanLabels;
|
|
39
40
|
exports.writeLog = writeLog;
|
|
40
41
|
exports.createLogWriter = createLogWriter;
|
|
41
42
|
const fs = __importStar(require("fs"));
|
|
42
43
|
const path = __importStar(require("path"));
|
|
43
|
-
const logger_1 = require("firebase-functions/logger");
|
|
44
44
|
const ulid_1 = require("ulid");
|
|
45
45
|
const severity_1 = require("../shared/severity");
|
|
46
46
|
const error_1 = require("../shared/error");
|
|
47
47
|
const sourceMapCache_1 = require("./sourceMapCache");
|
|
48
48
|
const paths_js_1 = require("../shared/paths.js");
|
|
49
49
|
const traceContext_1 = require("./traceContext");
|
|
50
|
+
/**
|
|
51
|
+
* OPTIONAL PEER — firebase-functions is loaded lazily, on purpose.
|
|
52
|
+
*
|
|
53
|
+
* On Cloud Functions it is always installed, and its `write()` is the only way to
|
|
54
|
+
* attach the trace id of the current invocation: every v2 trigger (HTTP, callable,
|
|
55
|
+
* Firestore, Pub/Sub, scheduler…) reads it from the incoming request and keeps it in
|
|
56
|
+
* a store the package does not export. So where it exists, we use it.
|
|
57
|
+
*
|
|
58
|
+
* On Cloud Run, or any Node server behind `createHttpLogHandler`, it is not installed,
|
|
59
|
+
* and a top-level import made this whole entry point fail on `require` there (#39).
|
|
60
|
+
* Without it, `writeJsonLine` does the same job and traceContext supplies the trace.
|
|
61
|
+
*
|
|
62
|
+
* `require` rather than `await import`: `writeLog` is synchronous, and in this
|
|
63
|
+
* CommonJS build a dynamic import compiles to `require` anyway.
|
|
64
|
+
*/
|
|
65
|
+
function loadFirebaseWrite() {
|
|
66
|
+
try {
|
|
67
|
+
return require("firebase-functions/logger").write;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
let entryWriter;
|
|
74
|
+
function writeEntry(entry) {
|
|
75
|
+
entryWriter ??= loadFirebaseWrite() ?? writeJsonLine;
|
|
76
|
+
entryWriter(entry);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* What firebase-functions' `write()` does, minus the trace id: one JSON line, WARNING
|
|
80
|
+
* and above to stderr and the rest to stdout (its console mapping), and a
|
|
81
|
+
* self-referencing object written as "[Circular]" rather than throwing. Cloud Run's log
|
|
82
|
+
* agent promotes `severity`, `message` and the `logging.googleapis.com/*` keys exactly
|
|
83
|
+
* as Cloud Functions does.
|
|
84
|
+
*
|
|
85
|
+
* Writes to the streams, not `console`: firebase-functions' compat module patches
|
|
86
|
+
* `console`, and a patched `console.error` would wrap this line a second time.
|
|
87
|
+
*/
|
|
88
|
+
function writeJsonLine(entry) {
|
|
89
|
+
const seen = new WeakSet();
|
|
90
|
+
const line = JSON.stringify(entry, (_key, value) => {
|
|
91
|
+
if (typeof value !== "object" || value === null)
|
|
92
|
+
return value;
|
|
93
|
+
if (seen.has(value))
|
|
94
|
+
return "[Circular]";
|
|
95
|
+
seen.add(value);
|
|
96
|
+
return value;
|
|
97
|
+
});
|
|
98
|
+
const toStderr = (0, severity_1.isLogSeverity)(entry.severity) && severity_1.SEVERITY_ORDER[entry.severity] <= severity_1.SEVERITY_ORDER.WARNING;
|
|
99
|
+
(toStderr ? process.stderr : process.stdout).write(line + "\n");
|
|
100
|
+
}
|
|
50
101
|
const IS_EMULATOR = process.env.FUNCTIONS_EMULATOR === "true";
|
|
51
102
|
exports.LOG_FILENAME = "dev.jsonl";
|
|
52
103
|
let globalConfig = null;
|
|
@@ -103,8 +154,7 @@ function rotateLogFile(logDir, maxRotatedFiles) {
|
|
|
103
154
|
console.warn("[fsl] Failed to rotate log file:", err);
|
|
104
155
|
}
|
|
105
156
|
}
|
|
106
|
-
async function uploadLogAttachments(logId, logAttachments) {
|
|
107
|
-
const bucket = (0, sourceMapCache_1.getAttachmentBucket)();
|
|
157
|
+
async function uploadLogAttachments(bucket, logId, logAttachments) {
|
|
108
158
|
await Promise.all(Object.entries(logAttachments).map(async ([name, data]) => {
|
|
109
159
|
const file = bucket.file((0, paths_js_1.attachmentPath)(logId, name, (0, sourceMapCache_1.getAttachmentPrefix)()));
|
|
110
160
|
await file.save(Buffer.from(data, "base64"));
|
|
@@ -151,7 +201,7 @@ function cleanLabels(labels) {
|
|
|
151
201
|
function writeLog(payload) {
|
|
152
202
|
// An unrecognised severity is not merely mislabelled — it is fatal. Both
|
|
153
203
|
// dispatches look the value up in a fixed table: CONSOLE_FN below, and
|
|
154
|
-
// firebase-functions' own CONSOLE_SEVERITY inside
|
|
204
|
+
// firebase-functions' own CONSOLE_SEVERITY inside its write(). A miss resolves to
|
|
155
205
|
// undefined and calling it throws, which Logger.send()'s catch then swallows,
|
|
156
206
|
// so the entry disappears with no useful diagnostic — and only in production,
|
|
157
207
|
// since the emulator takes the other branch.
|
|
@@ -175,14 +225,26 @@ function writeLog(payload) {
|
|
|
175
225
|
return;
|
|
176
226
|
}
|
|
177
227
|
const logId = (0, ulid_1.ulid)();
|
|
178
|
-
|
|
228
|
+
// Resolved before the labels, so `hasAttachments` is only claimed when there is
|
|
229
|
+
// somewhere to put them. With no Storage the attachments are dropped (warned once
|
|
230
|
+
// by getAttachmentBucket) and the entry is still written.
|
|
231
|
+
let attachmentBucket = null;
|
|
232
|
+
if (payload.attachments && Object.keys(payload.attachments).length > 0) {
|
|
233
|
+
try {
|
|
234
|
+
attachmentBucket = (0, sourceMapCache_1.getAttachmentBucket)();
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
console.warn("[fsl] Log attachment upload failed:", err);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
const hasAttachments = attachmentBucket !== null;
|
|
179
241
|
const labels = {
|
|
180
242
|
...payload.labels,
|
|
181
243
|
logId,
|
|
182
244
|
...(hasAttachments ? { hasAttachments: "true" } : {}),
|
|
183
245
|
};
|
|
184
|
-
if (
|
|
185
|
-
uploadLogAttachments(logId, payload.attachments).catch((err) => {
|
|
246
|
+
if (attachmentBucket) {
|
|
247
|
+
uploadLogAttachments(attachmentBucket, logId, payload.attachments).catch((err) => {
|
|
186
248
|
console.warn("[fsl] Log attachment upload failed:", err);
|
|
187
249
|
});
|
|
188
250
|
}
|
|
@@ -218,11 +280,12 @@ function writeLog(payload) {
|
|
|
218
280
|
CONSOLE_FN[severity](`[${severity}] ${payload.message}`, labels);
|
|
219
281
|
return;
|
|
220
282
|
}
|
|
221
|
-
// Production:
|
|
222
|
-
// This avoids server-side stack injection and
|
|
223
|
-
// automatic trace context injection for
|
|
283
|
+
// Production: firebase-functions' write() where it is installed, writeJsonLine
|
|
284
|
+
// where it is not (see loadFirebaseWrite) — bypassing entryFromArgs. This avoids server-side stack injection and
|
|
285
|
+
// jsonPayload nesting, while preserving automatic trace context injection for
|
|
286
|
+
// request correlation in Cloud Logging.
|
|
224
287
|
//
|
|
225
|
-
// Labels MUST be emitted under "logging.googleapis.com/labels".
|
|
288
|
+
// Labels MUST be emitted under "logging.googleapis.com/labels". write() does no
|
|
226
289
|
// mapping — it JSON-stringifies the object straight to stdout — and Cloud Logging
|
|
227
290
|
// only promotes specifically-named fields to the LogEntry. A plain `labels` key is
|
|
228
291
|
// not one of them, so it lands in jsonPayload.labels and `labels.appId="..."`
|
|
@@ -269,13 +332,13 @@ function writeLog(payload) {
|
|
|
269
332
|
return { ...rest, error: errorWithoutStack };
|
|
270
333
|
})()
|
|
271
334
|
: payload.jsonPayload;
|
|
272
|
-
// Set the trace ourselves when we have one.
|
|
335
|
+
// Set the trace ourselves when we have one. write() attaches this from
|
|
273
336
|
// firebase-functions' own store, which is only populated inside their request
|
|
274
337
|
// wrapper — empty on Cloud Run and anything behind createHttpLogHandler. When
|
|
275
338
|
// theirs IS populated it overwrites this, which is the right precedence: inside
|
|
276
339
|
// Cloud Functions their value is authoritative.
|
|
277
|
-
const trace = (0, traceContext_1.
|
|
278
|
-
(
|
|
340
|
+
const trace = (0, traceContext_1.traceField)();
|
|
341
|
+
writeEntry({
|
|
279
342
|
severity,
|
|
280
343
|
message: payload.message,
|
|
281
344
|
"logging.googleapis.com/labels": labels,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { Bucket } from '@google-cloud/storage';
|
|
2
2
|
import type { EncodedSourceMap } from '@jridgewell/trace-mapping';
|
|
3
|
+
/** Which step of the chain Storage resolves to. */
|
|
4
|
+
export type StorageSource = 'firebase-admin' | 'google-cloud-storage' | 'none';
|
|
5
|
+
/** Which step of the chain a lookup for `bucketName` would take. */
|
|
6
|
+
export declare function storageSource(bucketName?: string | undefined): StorageSource;
|
|
3
7
|
interface CacheEntry {
|
|
4
8
|
map: EncodedSourceMap | null;
|
|
5
9
|
bytes: number;
|
|
@@ -38,20 +42,26 @@ export declare function configureAttachments(options: {
|
|
|
38
42
|
bucket?: string;
|
|
39
43
|
prefix?: string;
|
|
40
44
|
}): void;
|
|
41
|
-
/**
|
|
42
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Bucket for attachments: explicit, then the source-map bucket, then the project
|
|
47
|
+
* default. Null when there is no Storage at all — see loadFirebaseAdminStorage.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getAttachmentBucket(): Bucket | null;
|
|
43
50
|
/** Prefix for attachments, defaulting to the documented one. */
|
|
44
51
|
export declare function getAttachmentPrefix(): string | undefined;
|
|
45
52
|
/** Reset attachment config. Tests only — production configures once at module load. */
|
|
46
53
|
export declare function resetAttachmentConfig(): void;
|
|
47
54
|
/**
|
|
48
|
-
* Resolve the configured Storage bucket, falling back to the project default
|
|
55
|
+
* Resolve the configured Storage bucket, falling back to the project default — or
|
|
56
|
+
* null when the chain ends with no Storage (see loadFirebaseAdminStorage).
|
|
49
57
|
*
|
|
50
58
|
* The return type is spelled out rather than inferred: without it the emitted
|
|
51
59
|
* `.d.ts` would need to name `Bucket` from a path inside `node_modules`, which
|
|
52
60
|
* TypeScript 7 rejects as non-portable (TS2883).
|
|
53
61
|
*/
|
|
54
|
-
export declare function getBucket(bucketName?: string | undefined): Bucket;
|
|
62
|
+
export declare function getBucket(bucketName?: string | undefined): Bucket | null;
|
|
63
|
+
/** Forget which Storage the chain resolved to, and the warning. Tests only. */
|
|
64
|
+
export declare function resetStorageResolution(): void;
|
|
55
65
|
/**
|
|
56
66
|
* Get source map — checks embedded first (instant), then Storage (for old releases).
|
|
57
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceMapCache.d.ts","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"sourceMapCache.d.ts","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAkCjE,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,MAAM,CAAA;AAY9E,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,UAAU,qBAAgB,GAAG,aAAa,CAGvE;AAkBD,UAAU,UAAU;IAClB,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;CACd;AAgCD;;;;GAIG;AACH,eAAO,MAAM,eAAe;eACf,MAAM;eACN,MAAM,OAAO,gBAAgB,GAAG,IAAI,SAAS,MAAM;;;;;;;CAG/D,CAAA;AAuBD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEnD;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,UAAU,qBAAgB,GAAG,MAAM,GAAG,IAAI,CASnE;AAmBD,+EAA+E;AAC/E,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAuFD;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkBlC;AA6CD,4CAA4C;AAC5C,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAiBD,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C"}
|
|
@@ -34,18 +34,64 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.__cacheForTests = void 0;
|
|
37
|
+
exports.storageSource = storageSource;
|
|
37
38
|
exports.configureSourceMapBucket = configureSourceMapBucket;
|
|
38
39
|
exports.configureAttachments = configureAttachments;
|
|
39
40
|
exports.getAttachmentBucket = getAttachmentBucket;
|
|
40
41
|
exports.getAttachmentPrefix = getAttachmentPrefix;
|
|
41
42
|
exports.resetAttachmentConfig = resetAttachmentConfig;
|
|
42
43
|
exports.getBucket = getBucket;
|
|
44
|
+
exports.resetStorageResolution = resetStorageResolution;
|
|
43
45
|
exports.getSourceMap = getSourceMap;
|
|
44
46
|
exports.resetSourceMapWarnings = resetSourceMapWarnings;
|
|
45
47
|
exports.clearSourceMapCache = clearSourceMapCache;
|
|
46
48
|
const fs = __importStar(require("fs"));
|
|
47
|
-
const storage_1 = require("firebase-admin/storage");
|
|
48
49
|
const paths_js_1 = require("../shared/paths.js");
|
|
50
|
+
/**
|
|
51
|
+
* OPTIONAL PEER — firebase-admin is loaded lazily, on purpose.
|
|
52
|
+
*
|
|
53
|
+
* Storage is needed for two things only: maps of releases older than the deployed one,
|
|
54
|
+
* and attachments. A top-level import made the whole `/functions` entry point fail on
|
|
55
|
+
* `require` on a backend without firebase-admin, even one that never touches Storage
|
|
56
|
+
* (#39). So Storage is resolved on first use, down a chain:
|
|
57
|
+
*
|
|
58
|
+
* 1. firebase-admin installed -> its Storage, and its default bucket (today's path)
|
|
59
|
+
* 2. not installed, a bucket named -> @google-cloud/storage with that bucket
|
|
60
|
+
* 3. neither -> no Storage; warned once, see warnNoStorage
|
|
61
|
+
*
|
|
62
|
+
* Step 2 needs the name because only firebase-admin knows the app's default bucket.
|
|
63
|
+
* @google-cloud/storage is a regular dependency (the `fsl` CLI uses it); it is loaded
|
|
64
|
+
* lazily too, because it is heavy and a Cloud Functions instance never needs it.
|
|
65
|
+
*
|
|
66
|
+
* `require` rather than `await import`: `getBucket` is synchronous, and in this
|
|
67
|
+
* CommonJS build a dynamic import compiles to `require` anyway.
|
|
68
|
+
*/
|
|
69
|
+
function loadFirebaseAdminStorage() {
|
|
70
|
+
try {
|
|
71
|
+
return require('firebase-admin/storage');
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function loadCloudStorage() {
|
|
78
|
+
return require('@google-cloud/storage');
|
|
79
|
+
}
|
|
80
|
+
// undefined = not yet resolved. Resolved once: a package is either installed or not
|
|
81
|
+
// for the life of the process, and this sits on the per-error path.
|
|
82
|
+
let adminStorage;
|
|
83
|
+
let cloudStorage;
|
|
84
|
+
function resolveAdminStorage() {
|
|
85
|
+
if (adminStorage === undefined)
|
|
86
|
+
adminStorage = loadFirebaseAdminStorage();
|
|
87
|
+
return adminStorage;
|
|
88
|
+
}
|
|
89
|
+
/** Which step of the chain a lookup for `bucketName` would take. */
|
|
90
|
+
function storageSource(bucketName = defaultBucket) {
|
|
91
|
+
if (resolveAdminStorage())
|
|
92
|
+
return 'firebase-admin';
|
|
93
|
+
return bucketName ? 'google-cloud-storage' : 'none';
|
|
94
|
+
}
|
|
49
95
|
/**
|
|
50
96
|
* Storage-map cache, bounded by approximate bytes with LRU eviction.
|
|
51
97
|
*
|
|
@@ -144,7 +190,10 @@ function configureAttachments(options) {
|
|
|
144
190
|
}
|
|
145
191
|
let attachmentBucket;
|
|
146
192
|
let attachmentPrefix;
|
|
147
|
-
/**
|
|
193
|
+
/**
|
|
194
|
+
* Bucket for attachments: explicit, then the source-map bucket, then the project
|
|
195
|
+
* default. Null when there is no Storage at all — see loadFirebaseAdminStorage.
|
|
196
|
+
*/
|
|
148
197
|
function getAttachmentBucket() {
|
|
149
198
|
return getBucket(attachmentBucket ?? defaultBucket);
|
|
150
199
|
}
|
|
@@ -158,14 +207,45 @@ function resetAttachmentConfig() {
|
|
|
158
207
|
attachmentPrefix = undefined;
|
|
159
208
|
}
|
|
160
209
|
/**
|
|
161
|
-
* Resolve the configured Storage bucket, falling back to the project default
|
|
210
|
+
* Resolve the configured Storage bucket, falling back to the project default — or
|
|
211
|
+
* null when the chain ends with no Storage (see loadFirebaseAdminStorage).
|
|
162
212
|
*
|
|
163
213
|
* The return type is spelled out rather than inferred: without it the emitted
|
|
164
214
|
* `.d.ts` would need to name `Bucket` from a path inside `node_modules`, which
|
|
165
215
|
* TypeScript 7 rejects as non-portable (TS2883).
|
|
166
216
|
*/
|
|
167
217
|
function getBucket(bucketName = defaultBucket) {
|
|
168
|
-
|
|
218
|
+
const admin = resolveAdminStorage();
|
|
219
|
+
if (admin)
|
|
220
|
+
return bucketName ? admin.getStorage().bucket(bucketName) : admin.getStorage().bucket();
|
|
221
|
+
if (bucketName) {
|
|
222
|
+
cloudStorage ??= new (loadCloudStorage().Storage)();
|
|
223
|
+
return cloudStorage.bucket(bucketName);
|
|
224
|
+
}
|
|
225
|
+
warnNoStorage();
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
let warnedNoStorage = false;
|
|
229
|
+
/**
|
|
230
|
+
* Say once that there is no Storage, and what that costs. Nothing fails without it —
|
|
231
|
+
* which is exactly why it has to be said: errors from older releases simply stay
|
|
232
|
+
* minified and attachments simply vanish.
|
|
233
|
+
*/
|
|
234
|
+
function warnNoStorage() {
|
|
235
|
+
if (warnedNoStorage)
|
|
236
|
+
return;
|
|
237
|
+
warnedNoStorage = true;
|
|
238
|
+
console.warn('[fsl] No Storage: firebase-admin is not installed and no bucket is named.');
|
|
239
|
+
console.warn("[fsl] Only the source maps embedded in this deploy resolve; errors from older");
|
|
240
|
+
console.warn('[fsl] releases stay minified, and attachments are dropped (the log entry is kept).');
|
|
241
|
+
console.warn('[fsl] Fix: name a bucket (createHttpLogHandler({ bucketName }) or');
|
|
242
|
+
console.warn('[fsl] configureAttachments({ bucket })), or install firebase-admin.');
|
|
243
|
+
}
|
|
244
|
+
/** Forget which Storage the chain resolved to, and the warning. Tests only. */
|
|
245
|
+
function resetStorageResolution() {
|
|
246
|
+
adminStorage = undefined;
|
|
247
|
+
cloudStorage = undefined;
|
|
248
|
+
warnedNoStorage = false;
|
|
169
249
|
}
|
|
170
250
|
/**
|
|
171
251
|
* Load source map from embedded current release directory (instant for current release).
|
|
@@ -221,7 +301,13 @@ async function loadStorageSourceMap(releaseId, fileName, bucketName, prefix) {
|
|
|
221
301
|
if (hit)
|
|
222
302
|
return hit.map;
|
|
223
303
|
try {
|
|
224
|
-
|
|
304
|
+
// Inside the try: firebase-admin throws here, synchronously, when there is no
|
|
305
|
+
// initialised app or no default bucket — a miss, not a crash.
|
|
306
|
+
const bucket = getBucket(bucketName);
|
|
307
|
+
// No Storage at all: not a miss to cache — warnNoStorage has already said why.
|
|
308
|
+
if (!bucket)
|
|
309
|
+
return null;
|
|
310
|
+
const file = bucket.file((0, paths_js_1.storageMapPath)(releaseId, fileName, prefix));
|
|
225
311
|
const [exists] = await file.exists();
|
|
226
312
|
if (!exists) {
|
|
227
313
|
cacheSet(cacheKey, null, 0);
|
|
@@ -298,9 +384,12 @@ function warnNothingResolved(releaseId, fileName, bucketName, prefix) {
|
|
|
298
384
|
return;
|
|
299
385
|
warnedMisses.add(key);
|
|
300
386
|
const bucket = bucketName ?? defaultBucket ?? '<project default>';
|
|
387
|
+
const storage = storageSource(bucketName) === 'none'
|
|
388
|
+
? 'not available (no firebase-admin, no bucket named)'
|
|
389
|
+
: `gs://${bucket}/${(0, paths_js_1.storageMapPath)(releaseId, fileName, prefix)} (not found)`;
|
|
301
390
|
console.warn(`[fsl] No source map for '${fileName}' at release '${releaseId}' — this stack stays minified.`);
|
|
302
391
|
console.warn(`[fsl] embedded: ${(0, paths_js_1.embeddedMapPath)(process.cwd(), fileName)} (not found)`);
|
|
303
|
-
console.warn(`[fsl] storage:
|
|
392
|
+
console.warn(`[fsl] storage: ${storage}`);
|
|
304
393
|
console.warn('[fsl] Check that the deploy runs `fsl upload-sourcemaps`, and that its --prefix');
|
|
305
394
|
console.warn('[fsl] and --bucket match createClientLogHandler({ sourceMaps }). Nothing verifies that for you.');
|
|
306
395
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceMapCache.js","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"sourceMapCache.js","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,13 +28,27 @@ export declare function runWithTrace<T>(traceId: string | undefined, fn: () => T
|
|
|
28
28
|
/** The current request's trace id, if one was parsed. */
|
|
29
29
|
export declare function currentTraceId(): string | undefined;
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* Find the project on a Google runtime that does not put it in the environment.
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* Why the resource name at all: Cloud Logging's LogEntry reference prefers the bare
|
|
34
|
+
* trace id, but stores whichever form it is given, and the console's "show entries
|
|
35
|
+
* for this trace" filters on the full `projects/<id>/traces/<trace>` — the form Cloud
|
|
36
|
+
* Run writes its own request log in. A bare id never meets that request log; the
|
|
37
|
+
* smoke run proved it. So the project has to be found.
|
|
38
|
+
*
|
|
39
|
+
* Asked of the metadata server, the way Google's own Cloud Run sample and its pino
|
|
40
|
+
* config do: once, cached, and only on Cloud Run (`K_SERVICE` is set) — anywhere
|
|
41
|
+
* else the lookup would only wait for a timeout. Async, so it is awaited where the
|
|
42
|
+
* request starts (createHttpLogHandler), not on the synchronous log path.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveTraceProject(): Promise<void>;
|
|
45
|
+
/** Forget the looked-up project. Tests only. */
|
|
46
|
+
export declare function resetTraceProject(): void;
|
|
47
|
+
/**
|
|
48
|
+
* The `logging.googleapis.com/trace` value: the full resource name when the project
|
|
49
|
+
* is known, and the bare id when it is not. The bare id is a valid LogEntry.trace —
|
|
50
|
+
* the entry still carries its trace — it only fails to meet the request log in the
|
|
51
|
+
* console, so it beats writing nothing.
|
|
36
52
|
*/
|
|
37
|
-
export declare function
|
|
38
|
-
/** The full `logging.googleapis.com/trace` value, or undefined if unavailable. */
|
|
39
|
-
export declare function traceResourceName(): string | undefined;
|
|
53
|
+
export declare function traceField(): string | undefined;
|
|
40
54
|
//# sourceMappingURL=traceContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceContext.d.ts","sourceRoot":"","sources":["../../src/functions/traceContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0BH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,MAAM,GAAG,SAAS,CAepB;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3E;AAED,yDAAyD;AACzD,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;
|
|
1
|
+
{"version":3,"file":"traceContext.d.ts","sourceRoot":"","sources":["../../src/functions/traceContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0BH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,MAAM,GAAG,SAAS,CAepB;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3E;AAED,yDAAyD;AACzD,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AAmBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBnD;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAK/C"}
|
|
@@ -19,8 +19,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
exports.traceIdFromHeaders = traceIdFromHeaders;
|
|
20
20
|
exports.runWithTrace = runWithTrace;
|
|
21
21
|
exports.currentTraceId = currentTraceId;
|
|
22
|
-
exports.
|
|
23
|
-
exports.
|
|
22
|
+
exports.resolveTraceProject = resolveTraceProject;
|
|
23
|
+
exports.resetTraceProject = resetTraceProject;
|
|
24
|
+
exports.traceField = traceField;
|
|
24
25
|
const async_hooks_1 = require("async_hooks");
|
|
25
26
|
const traceStore = new async_hooks_1.AsyncLocalStorage();
|
|
26
27
|
/**
|
|
@@ -73,21 +74,68 @@ function currentTraceId() {
|
|
|
73
74
|
return traceStore.getStore();
|
|
74
75
|
}
|
|
75
76
|
/**
|
|
76
|
-
* The project a trace resource name belongs to.
|
|
77
|
+
* The project a trace resource name belongs to, from the environment.
|
|
77
78
|
*
|
|
78
|
-
* Cloud Functions sets `GCLOUD_PROJECT
|
|
79
|
-
*
|
|
80
|
-
*
|
|
79
|
+
* Cloud Functions sets `GCLOUD_PROJECT`. Cloud Run sets NEITHER variable — 0.7.0
|
|
80
|
+
* assumed it set `GOOGLE_CLOUD_PROJECT`, so on the backend createHttpLogHandler
|
|
81
|
+
* exists for, the trace was silently never written (#39). See resolveTraceProject.
|
|
81
82
|
*/
|
|
82
|
-
function
|
|
83
|
+
function envProject() {
|
|
83
84
|
return process.env.GCLOUD_PROJECT || process.env.GOOGLE_CLOUD_PROJECT || undefined;
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
const METADATA_PROJECT_URL = 'http://metadata.google.internal/computeMetadata/v1/project/project-id';
|
|
87
|
+
// undefined = not looked up; null = looked up and not found.
|
|
88
|
+
let metadataProject;
|
|
89
|
+
let metadataLookup;
|
|
90
|
+
/**
|
|
91
|
+
* Find the project on a Google runtime that does not put it in the environment.
|
|
92
|
+
*
|
|
93
|
+
* Why the resource name at all: Cloud Logging's LogEntry reference prefers the bare
|
|
94
|
+
* trace id, but stores whichever form it is given, and the console's "show entries
|
|
95
|
+
* for this trace" filters on the full `projects/<id>/traces/<trace>` — the form Cloud
|
|
96
|
+
* Run writes its own request log in. A bare id never meets that request log; the
|
|
97
|
+
* smoke run proved it. So the project has to be found.
|
|
98
|
+
*
|
|
99
|
+
* Asked of the metadata server, the way Google's own Cloud Run sample and its pino
|
|
100
|
+
* config do: once, cached, and only on Cloud Run (`K_SERVICE` is set) — anywhere
|
|
101
|
+
* else the lookup would only wait for a timeout. Async, so it is awaited where the
|
|
102
|
+
* request starts (createHttpLogHandler), not on the synchronous log path.
|
|
103
|
+
*/
|
|
104
|
+
function resolveTraceProject() {
|
|
105
|
+
if (envProject() || metadataProject !== undefined)
|
|
106
|
+
return Promise.resolve();
|
|
107
|
+
if (!process.env.K_SERVICE) {
|
|
108
|
+
metadataProject = null;
|
|
109
|
+
return Promise.resolve();
|
|
110
|
+
}
|
|
111
|
+
metadataLookup ??= fetch(METADATA_PROJECT_URL, {
|
|
112
|
+
headers: { 'Metadata-Flavor': 'Google' },
|
|
113
|
+
signal: AbortSignal.timeout(1_000),
|
|
114
|
+
})
|
|
115
|
+
.then(async (res) => {
|
|
116
|
+
metadataProject = res.ok ? (await res.text()).trim() || null : null;
|
|
117
|
+
})
|
|
118
|
+
.catch(() => {
|
|
119
|
+
metadataProject = null;
|
|
120
|
+
});
|
|
121
|
+
return metadataLookup;
|
|
122
|
+
}
|
|
123
|
+
/** Forget the looked-up project. Tests only. */
|
|
124
|
+
function resetTraceProject() {
|
|
125
|
+
metadataProject = undefined;
|
|
126
|
+
metadataLookup = undefined;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The `logging.googleapis.com/trace` value: the full resource name when the project
|
|
130
|
+
* is known, and the bare id when it is not. The bare id is a valid LogEntry.trace —
|
|
131
|
+
* the entry still carries its trace — it only fails to meet the request log in the
|
|
132
|
+
* console, so it beats writing nothing.
|
|
133
|
+
*/
|
|
134
|
+
function traceField() {
|
|
87
135
|
const traceId = currentTraceId();
|
|
88
|
-
|
|
89
|
-
if (!traceId || !project)
|
|
136
|
+
if (!traceId)
|
|
90
137
|
return undefined;
|
|
91
|
-
|
|
138
|
+
const project = envProject() ?? metadataProject ?? undefined;
|
|
139
|
+
return project ? `projects/${project}/traces/${traceId}` : traceId;
|
|
92
140
|
}
|
|
93
141
|
//# sourceMappingURL=traceContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceContext.js","sourceRoot":"","sources":["../../src/functions/traceContext.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAkCH,gDAiBC;AAGD,oCAEC;AAGD,wCAEC;
|
|
1
|
+
{"version":3,"file":"traceContext.js","sourceRoot":"","sources":["../../src/functions/traceContext.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.8.0",
|
|
4
|
+
"description": "Structured logging for Firebase and Google Cloud web apps — browser, backend, and tools",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Dasasian",
|
|
7
7
|
"keywords": [
|
|
@@ -13,7 +13,10 @@
|
|
|
13
13
|
"source-maps",
|
|
14
14
|
"symbolication",
|
|
15
15
|
"observability",
|
|
16
|
-
"typescript"
|
|
16
|
+
"typescript",
|
|
17
|
+
"google-cloud",
|
|
18
|
+
"cloud-run",
|
|
19
|
+
"error-reporting"
|
|
17
20
|
],
|
|
18
21
|
"homepage": "https://dasasian.com/firebase-structured-logger",
|
|
19
22
|
"repository": {
|
|
@@ -65,10 +68,12 @@
|
|
|
65
68
|
"build:watch": "tsc --watch",
|
|
66
69
|
"clean": "rm -rf dist",
|
|
67
70
|
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.check.json",
|
|
68
|
-
"test": "tsx tests/logger.ts && tsx tests/breadcrumbs.ts && tsx tests/rateLimiter.ts && tsx tests/errorHandler.ts && tsx tests/attachments.ts && tsx tests/feedback.ts && tsx tests/paths.ts && tsx tests/sourceMapStripping.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/httpHandler.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 && tsx tests/releaseResolution.ts && tsx tests/sourceMapCacheBounds.ts",
|
|
71
|
+
"test": "tsx tests/logger.ts && tsx tests/browserBundle.ts && tsx tests/breadcrumbs.ts && tsx tests/rateLimiter.ts && tsx tests/errorHandler.ts && tsx tests/attachments.ts && tsx tests/feedback.ts && tsx tests/paths.ts && tsx tests/loadsWithoutOptionalPeers.ts && tsx tests/sourceMapStripping.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/httpHandler.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/storageChain.ts && tsx tests/handlerSymbolication.ts && tsx tests/releaseResolution.ts && tsx tests/sourceMapCacheBounds.ts",
|
|
69
72
|
"prepublishOnly": "npm run clean && npm run build",
|
|
70
73
|
"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": "
|
|
74
|
+
"smoke:deploy:run": "bash smoke/cloudrun/deploy.sh",
|
|
75
|
+
"smoke": "tsx smoke/run.ts",
|
|
76
|
+
"smoke:install": "tsx smoke/install.ts"
|
|
72
77
|
},
|
|
73
78
|
"dependencies": {
|
|
74
79
|
"@google-cloud/storage": "^7.0.0",
|
|
@@ -95,6 +100,7 @@
|
|
|
95
100
|
"@google-cloud/logging": "^11.4.0",
|
|
96
101
|
"@types/jsdom": "^30.0.0",
|
|
97
102
|
"@types/node": "^26.2.0",
|
|
103
|
+
"esbuild": "^0.28.2",
|
|
98
104
|
"firebase": "^12.0.0",
|
|
99
105
|
"firebase-admin": "^14.2.0",
|
|
100
106
|
"firebase-functions": "^7.0.0",
|