@dasasian/firebase-structured-logger 0.1.0 → 0.2.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.
Files changed (46) hide show
  1. package/README.md +6 -4
  2. package/dist/client/breadcrumbs.d.ts.map +1 -1
  3. package/dist/client/breadcrumbs.js +8 -3
  4. package/dist/client/breadcrumbs.js.map +1 -1
  5. package/dist/client/errorHandler.js.map +1 -1
  6. package/dist/client/index.d.ts +2 -2
  7. package/dist/client/index.d.ts.map +1 -1
  8. package/dist/client/index.js +1 -2
  9. package/dist/client/index.js.map +1 -1
  10. package/dist/client/logger.d.ts +5 -5
  11. package/dist/client/logger.d.ts.map +1 -1
  12. package/dist/client/logger.js +40 -54
  13. package/dist/client/logger.js.map +1 -1
  14. package/dist/client/rateLimiter.d.ts +26 -4
  15. package/dist/client/rateLimiter.d.ts.map +1 -1
  16. package/dist/client/rateLimiter.js +36 -31
  17. package/dist/client/rateLimiter.js.map +1 -1
  18. package/dist/functions/logHandler.d.ts.map +1 -1
  19. package/dist/functions/logHandler.js +9 -38
  20. package/dist/functions/logHandler.js.map +1 -1
  21. package/dist/functions/logger.d.ts +8 -3
  22. package/dist/functions/logger.d.ts.map +1 -1
  23. package/dist/functions/logger.js +46 -68
  24. package/dist/functions/logger.js.map +1 -1
  25. package/dist/functions/requestLogger.d.ts.map +1 -1
  26. package/dist/functions/requestLogger.js +2 -5
  27. package/dist/functions/requestLogger.js.map +1 -1
  28. package/dist/functions/sourceMapCache.d.ts +10 -2
  29. package/dist/functions/sourceMapCache.d.ts.map +1 -1
  30. package/dist/functions/sourceMapCache.js +37 -14
  31. package/dist/functions/sourceMapCache.js.map +1 -1
  32. package/dist/functions/symbolicate.d.ts +6 -2
  33. package/dist/functions/symbolicate.d.ts.map +1 -1
  34. package/dist/functions/symbolicate.js +23 -5
  35. package/dist/functions/symbolicate.js.map +1 -1
  36. package/dist/shared/error.d.ts +6 -0
  37. package/dist/shared/error.d.ts.map +1 -0
  38. package/dist/shared/error.js +18 -0
  39. package/dist/shared/error.js.map +1 -0
  40. package/dist/shared/severity.d.ts +9 -0
  41. package/dist/shared/severity.d.ts.map +1 -0
  42. package/dist/shared/severity.js +16 -0
  43. package/dist/shared/severity.js.map +1 -0
  44. package/dist/shared/types.d.ts +7 -6
  45. package/dist/shared/types.d.ts.map +1 -1
  46. package/package.json +6 -6
@@ -1,4 +1,5 @@
1
1
  import type { LogSeverity, LogPayload } from "../shared/types";
2
+ export declare const LOG_FILENAME = "dev.jsonl";
2
3
  interface FunctionsLoggerConfig {
3
4
  appId: string;
4
5
  logLocalDir?: string;
@@ -11,6 +12,10 @@ interface FunctionsLoggerConfig {
11
12
  * Call once at module load (before any onCall handlers run).
12
13
  */
13
14
  export declare function initLogger(config: FunctionsLoggerConfig): void;
15
+ /**
16
+ * Strip null/undefined labels and convert all values to strings for Cloud Logging.
17
+ */
18
+ export declare function cleanLabels(labels: Record<string, unknown> | undefined): Record<string, string>;
14
19
  /**
15
20
  * Write a structured log entry. Transport depends on environment.
16
21
  */
@@ -23,9 +28,9 @@ export declare function writeLog(payload: LogPayload & {
23
28
  */
24
29
  export declare function createLogWriter(baseLabels: Record<string, string | undefined>): {
25
30
  error(raw: unknown, labels?: Record<string, string | undefined>, context?: Record<string, unknown>, attachments?: Record<string, string | Buffer>): void;
26
- info(message: string, labels?: Record<string, string | undefined>, context?: Record<string, unknown>, attachments?: Record<string, string | Buffer>): void;
27
- warning(message: string, labels?: Record<string, string | undefined>, context?: Record<string, unknown>, attachments?: Record<string, string | Buffer>): void;
28
- debug(message: string, labels?: Record<string, string | undefined>, context?: Record<string, unknown>, attachments?: Record<string, string | Buffer>): void;
31
+ info: (message: string, labels?: Record<string, string | undefined>, context?: Record<string, unknown>, attachments?: Record<string, string | Buffer>) => void;
32
+ warning: (message: string, labels?: Record<string, string | undefined>, context?: Record<string, unknown>, attachments?: Record<string, string | Buffer>) => void;
33
+ debug: (message: string, labels?: Record<string, string | undefined>, context?: Record<string, unknown>, attachments?: Record<string, string | Buffer>) => void;
29
34
  };
30
35
  export type LogWriter = ReturnType<typeof createLogWriter>;
31
36
  export type { LogSeverity };
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM/D,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;AAYD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAQ9D;AA2DD;;GAEG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClE,IAAI,CAuEN;AAaD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;eASrC,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;kBAsBI,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,GAC5C,IAAI;qBAUI,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,GAC5C,IAAI;mBAUI,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,GAC5C,IAAI;EAUV;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAG3D,YAAY,EAAE,WAAW,EAAE,CAAC"}
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,CAiEN;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"}
@@ -33,23 +33,20 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.LOG_FILENAME = void 0;
36
37
  exports.initLogger = initLogger;
38
+ exports.cleanLabels = cleanLabels;
37
39
  exports.writeLog = writeLog;
38
40
  exports.createLogWriter = createLogWriter;
39
41
  const fs = __importStar(require("fs"));
40
42
  const path = __importStar(require("path"));
41
43
  const logger_1 = require("firebase-functions/logger");
42
44
  const ulid_1 = require("ulid");
43
- const storage_1 = require("firebase-admin/storage");
45
+ const severity_1 = require("../shared/severity");
46
+ const error_1 = require("../shared/error");
44
47
  const sourceMapCache_1 = require("./sourceMapCache");
45
48
  const IS_EMULATOR = process.env.FUNCTIONS_EMULATOR === "true";
46
- const LOG_FILENAME = "dev.jsonl";
47
- const SEVERITY_ORDER = {
48
- ERROR: 0,
49
- WARNING: 1,
50
- INFO: 2,
51
- DEBUG: 3,
52
- };
49
+ exports.LOG_FILENAME = "dev.jsonl";
53
50
  let globalConfig = null;
54
51
  let currentRecordCount = 0;
55
52
  /**
@@ -68,7 +65,7 @@ function initLogger(config) {
68
65
  * Rotate the current log file to a timestamped backup, delete oldest files beyond limit.
69
66
  */
70
67
  function rotateLogFile(logDir, maxRotatedFiles) {
71
- const current = path.join(logDir, LOG_FILENAME);
68
+ const current = path.join(logDir, exports.LOG_FILENAME);
72
69
  try {
73
70
  // The functions emulator spawns multiple worker processes that each call
74
71
  // initLogger() on startup. existsSync + renameSync is a TOCTOU race:
@@ -105,21 +102,38 @@ function rotateLogFile(logDir, maxRotatedFiles) {
105
102
  }
106
103
  }
107
104
  async function uploadLogAttachments(logId, logAttachments) {
108
- const bucketName = (0, sourceMapCache_1.getConfiguredBucket)();
109
- const bucket = bucketName
110
- ? (0, storage_1.getStorage)().bucket(bucketName)
111
- : (0, storage_1.getStorage)().bucket();
105
+ const bucket = (0, sourceMapCache_1.getBucket)();
112
106
  await Promise.all(Object.entries(logAttachments).map(async ([name, data]) => {
113
107
  const file = bucket.file(`logAttachments/${logId}/${name}`);
114
108
  await file.save(Buffer.from(data, "base64"));
115
109
  }));
116
110
  }
111
+ const CONSOLE_FN = {
112
+ ERROR: console.error,
113
+ WARNING: console.warn,
114
+ DEBUG: console.debug,
115
+ INFO: console.log,
116
+ };
117
+ /**
118
+ * Strip null/undefined labels and convert all values to strings for Cloud Logging.
119
+ */
120
+ function cleanLabels(labels) {
121
+ if (!labels)
122
+ return {};
123
+ const cleaned = {};
124
+ for (const [key, value] of Object.entries(labels)) {
125
+ if (value !== null && value !== undefined) {
126
+ cleaned[key] = String(value);
127
+ }
128
+ }
129
+ return cleaned;
130
+ }
117
131
  /**
118
132
  * Write a structured log entry. Transport depends on environment.
119
133
  */
120
134
  function writeLog(payload) {
121
135
  const minSeverity = globalConfig?.minSeverity ?? (IS_EMULATOR ? "DEBUG" : "WARNING");
122
- if (SEVERITY_ORDER[payload.severity] > SEVERITY_ORDER[minSeverity])
136
+ if (severity_1.SEVERITY_ORDER[payload.severity] > severity_1.SEVERITY_ORDER[minSeverity])
123
137
  return;
124
138
  const logId = (0, ulid_1.ulid)();
125
139
  const hasAttachments = payload.attachments && Object.keys(payload.attachments).length > 0;
@@ -153,7 +167,7 @@ function writeLog(payload) {
153
167
  rotateLogFile(globalConfig.logLocalDir, maxRotated);
154
168
  currentRecordCount = 0;
155
169
  }
156
- const logFile = path.join(globalConfig.logLocalDir, LOG_FILENAME);
170
+ const logFile = path.join(globalConfig.logLocalDir, exports.LOG_FILENAME);
157
171
  fs.appendFileSync(logFile, JSON.stringify(entry) + "\n", "utf-8");
158
172
  currentRecordCount++;
159
173
  }
@@ -162,14 +176,7 @@ function writeLog(payload) {
162
176
  }
163
177
  }
164
178
  // Also write to console for immediate visibility
165
- const consoleFn = payload.severity === "ERROR"
166
- ? console.error
167
- : payload.severity === "WARNING"
168
- ? console.warn
169
- : payload.severity === "DEBUG"
170
- ? console.debug
171
- : console.log;
172
- consoleFn(`[${payload.severity}] ${payload.message}`, labels);
179
+ CONSOLE_FN[payload.severity](`[${payload.severity}] ${payload.message}`, labels);
173
180
  return;
174
181
  }
175
182
  // Production: use firebase-functions/logger write() directly, bypassing entryFromArgs.
@@ -195,59 +202,30 @@ function logAttachmentsToBase64(logAttachments) {
195
202
  * Convenience wrapper that builds a logger object for a given label set.
196
203
  */
197
204
  function createLogWriter(baseLabels) {
198
- const merge = (extra) => ({
199
- ...baseLabels,
200
- ...extra,
201
- });
205
+ const merge = (extra) => ({ ...baseLabels, ...extra });
206
+ const write = (severity, message, labels, context, attachments) => {
207
+ writeLog({
208
+ message,
209
+ severity,
210
+ labels: merge(labels),
211
+ jsonPayload: { context },
212
+ attachments: logAttachmentsToBase64(attachments),
213
+ });
214
+ };
202
215
  return {
203
216
  error(raw, labels, context, attachments) {
204
- const error = raw instanceof Error ? raw : new Error(String(raw));
217
+ const error = (0, error_1.toError)(raw);
205
218
  writeLog({
206
219
  message: error.message,
207
220
  severity: "ERROR",
208
- labels: merge({
209
- errorType: error.name,
210
- ...labels,
211
- }),
212
- jsonPayload: {
213
- context,
214
- error: {
215
- message: error.message,
216
- stack: error.stack,
217
- name: error.name,
218
- cause: error.cause !== undefined ? String(error.cause) : undefined,
219
- },
220
- },
221
- attachments: logAttachmentsToBase64(attachments),
222
- });
223
- },
224
- info(message, labels, context, attachments) {
225
- writeLog({
226
- message,
227
- severity: "INFO",
228
- labels: merge(labels),
229
- jsonPayload: { context },
230
- attachments: logAttachmentsToBase64(attachments),
231
- });
232
- },
233
- warning(message, labels, context, attachments) {
234
- writeLog({
235
- message,
236
- severity: "WARNING",
237
- labels: merge(labels),
238
- jsonPayload: { context },
239
- attachments: logAttachmentsToBase64(attachments),
240
- });
241
- },
242
- debug(message, labels, context, attachments) {
243
- writeLog({
244
- message,
245
- severity: "DEBUG",
246
- labels: merge(labels),
247
- jsonPayload: { context },
221
+ labels: merge({ errorType: error.name, ...labels }),
222
+ jsonPayload: { context, error: (0, error_1.toErrorPayload)(error) },
248
223
  attachments: logAttachmentsToBase64(attachments),
249
224
  });
250
225
  },
226
+ info: (message, labels, context, attachments) => write("INFO", message, labels, context, attachments),
227
+ warning: (message, labels, context, attachments) => write("WARNING", message, labels, context, attachments),
228
+ debug: (message, labels, context, attachments) => write("DEBUG", message, labels, context, attachments),
251
229
  };
252
230
  }
253
231
  //# sourceMappingURL=logger.js.map
@@ -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 +1 @@
1
- {"version":3,"file":"requestLogger.d.ts","sourceRoot":"","sources":["../../src/functions/requestLogger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAI1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAEzF,OAAO,EAAE,eAAe,EACxB,KAAK,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;CAAE,GAC7E,SAAS,CAgBX;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAErC"}
1
+ {"version":3,"file":"requestLogger.d.ts","sourceRoot":"","sources":["../../src/functions/requestLogger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAEzF,OAAO,EAAE,eAAe,EACxB,KAAK,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;CAAE,GAC7E,SAAS,CAWX;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAErC"}
@@ -22,15 +22,12 @@ const storage = new async_hooks_1.AsyncLocalStorage();
22
22
  * })
23
23
  */
24
24
  function initRequestLogger(request, extra) {
25
- const labels = {
25
+ const writer = (0, logger_1.createLogWriter)((0, logger_1.cleanLabels)({
26
26
  functionName: extra?.functionName,
27
27
  userId: request.auth?.uid,
28
28
  appId: extra?.appId,
29
29
  ...extra?.labels,
30
- };
31
- // Remove undefined values
32
- const cleanLabels = Object.fromEntries(Object.entries(labels).filter(([, v]) => v !== undefined));
33
- const writer = (0, logger_1.createLogWriter)(cleanLabels);
30
+ }));
34
31
  storage.enterWith(writer);
35
32
  return writer;
36
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"requestLogger.js","sourceRoot":"","sources":["../../src/functions/requestLogger.ts"],"names":[],"mappings":";;AAsBA,8CAqBC;AAOD,8BAEC;AApDD,6CAA+C;AAE/C,qCAA0D;AAE1D,MAAM,OAAO,GAAG,IAAI,+BAAiB,EAAa,CAAA;AAElD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,iBAAiB,CAG/B,OAAwB,EACxB,KAA8E;IAE9E,MAAM,MAAM,GAAuC;QACjD,YAAY,EAAE,KAAK,EAAE,YAAY;QACjC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG;QACzB,KAAK,EAAE,KAAK,EAAE,KAAK;QACnB,GAAG,KAAK,EAAE,MAAM;KACjB,CAAA;IAED,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAChC,CAAA;IAE3B,MAAM,MAAM,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;IAC3C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACzB,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAA,wBAAe,EAAC,EAAE,CAAC,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"requestLogger.js","sourceRoot":"","sources":["../../src/functions/requestLogger.ts"],"names":[],"mappings":";;AAsBA,8CAgBC;AAOD,8BAEC;AA/CD,6CAA+C;AAE/C,qCAAuE;AAEvE,MAAM,OAAO,GAAG,IAAI,+BAAiB,EAAa,CAAA;AAElD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,iBAAiB,CAG/B,OAAwB,EACxB,KAA8E;IAE9E,MAAM,MAAM,GAAG,IAAA,wBAAe,EAC5B,IAAA,oBAAW,EAAC;QACV,YAAY,EAAE,KAAK,EAAE,YAAY;QACjC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG;QACzB,KAAK,EAAE,KAAK,EAAE,KAAK;QACnB,GAAG,KAAK,EAAE,MAAM;KACjB,CAAC,CACH,CAAA;IACD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACzB,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAA,wBAAe,EAAC,EAAE,CAAC,CAAA;AAClD,CAAC"}
@@ -1,9 +1,17 @@
1
+ import type { Bucket } from '@google-cloud/storage';
1
2
  import type { EncodedSourceMap } from '@jridgewell/trace-mapping';
2
3
  export declare function configureSourceMapBucket(bucketName: string): void;
3
- export declare function getConfiguredBucket(): string | undefined;
4
+ /**
5
+ * Resolve the configured Storage bucket, falling back to the project default.
6
+ *
7
+ * The return type is spelled out rather than inferred: without it the emitted
8
+ * `.d.ts` would need to name `Bucket` from a path inside `node_modules`, which
9
+ * TypeScript 7 rejects as non-portable (TS2883).
10
+ */
11
+ export declare function getBucket(bucketName?: string | undefined): Bucket;
4
12
  /**
5
13
  * Get source map — checks embedded first (instant), then Storage (for old releases).
6
14
  */
7
- export declare function getSourceMap(releaseId: string, fileName: string): Promise<EncodedSourceMap | null>;
15
+ export declare function getSourceMap(releaseId: string, fileName: string, bucketName?: string): Promise<EncodedSourceMap | null>;
8
16
  export declare function clearSourceMapCache(): void;
9
17
  //# sourceMappingURL=sourceMapCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMapCache.d.ts","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAOjE,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAiDD;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAIlC;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"sourceMapCache.d.ts","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAcjE,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,UAAU,qBAAgB,GAAG,MAAM,CAE5D;AA4DD;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAIlC;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.configureSourceMapBucket = configureSourceMapBucket;
37
- exports.getConfiguredBucket = getConfiguredBucket;
37
+ exports.getBucket = getBucket;
38
38
  exports.getSourceMap = getSourceMap;
39
39
  exports.clearSourceMapCache = clearSourceMapCache;
40
40
  const fs = __importStar(require("fs"));
@@ -42,17 +42,40 @@ const path = __importStar(require("path"));
42
42
  const storage_1 = require("firebase-admin/storage");
43
43
  // In-memory cache: cacheKey → EncodedSourceMap | null (null = confirmed not found)
44
44
  const cache = new Map();
45
- let configuredBucket;
45
+ // Separate cache for the embedded (current release) maps, keyed by bundle filename.
46
+ const embeddedCache = new Map();
47
+ // Process-wide fallback bucket. Used by writeLog() for attachments, which has
48
+ // no per-handler config to draw on. Source-map lookups do NOT rely on this —
49
+ // they take the bucket explicitly, so two handlers configured with different
50
+ // buckets cannot silently resolve to whichever was constructed last.
51
+ let defaultBucket;
46
52
  function configureSourceMapBucket(bucketName) {
47
- configuredBucket = bucketName;
53
+ defaultBucket = bucketName;
48
54
  }
49
- function getConfiguredBucket() {
50
- return configuredBucket;
55
+ /**
56
+ * Resolve the configured Storage bucket, falling back to the project default.
57
+ *
58
+ * The return type is spelled out rather than inferred: without it the emitted
59
+ * `.d.ts` would need to name `Bucket` from a path inside `node_modules`, which
60
+ * TypeScript 7 rejects as non-portable (TS2883).
61
+ */
62
+ function getBucket(bucketName = defaultBucket) {
63
+ return bucketName ? (0, storage_1.getStorage)().bucket(bucketName) : (0, storage_1.getStorage)().bucket();
51
64
  }
52
65
  /**
53
66
  * Load source map from embedded current release directory (instant for current release).
67
+ * Result is memoised — this sits on the per-error hot path and the embedded maps
68
+ * cannot change while the instance is alive.
54
69
  */
55
70
  function loadEmbeddedSourceMap(fileName) {
71
+ const cached = embeddedCache.get(fileName);
72
+ if (cached !== undefined)
73
+ return cached;
74
+ const sourceMap = readEmbeddedSourceMap(fileName);
75
+ embeddedCache.set(fileName, sourceMap);
76
+ return sourceMap;
77
+ }
78
+ function readEmbeddedSourceMap(fileName) {
56
79
  try {
57
80
  // Looks for sourcemaps/current/{fileName}.map relative to the Cloud Function working directory
58
81
  const mapPath = path.join(process.cwd(), 'sourcemaps', 'current', `${fileName}.map`);
@@ -67,15 +90,14 @@ function loadEmbeddedSourceMap(fileName) {
67
90
  /**
68
91
  * Load source map from Firebase Storage (for older releases).
69
92
  */
70
- async function loadStorageSourceMap(releaseId, fileName) {
71
- const cacheKey = `${releaseId}/${fileName}`;
93
+ async function loadStorageSourceMap(releaseId, fileName, bucketName) {
94
+ // The bucket is part of the key: the same release/file in two buckets is two
95
+ // different maps, and caching them under one key would serve the wrong one.
96
+ const cacheKey = `${bucketName ?? defaultBucket ?? ''}/${releaseId}/${fileName}`;
72
97
  if (cache.has(cacheKey))
73
98
  return cache.get(cacheKey) ?? null;
74
99
  try {
75
- const bucket = configuredBucket
76
- ? (0, storage_1.getStorage)().bucket(configuredBucket)
77
- : (0, storage_1.getStorage)().bucket();
78
- const file = bucket.file(`sourcemaps/${releaseId}/${fileName}.map`);
100
+ const file = getBucket(bucketName).file(`sourcemaps/${releaseId}/${fileName}.map`);
79
101
  const [exists] = await file.exists();
80
102
  if (!exists) {
81
103
  cache.set(cacheKey, null);
@@ -88,20 +110,21 @@ async function loadStorageSourceMap(releaseId, fileName) {
88
110
  }
89
111
  catch (err) {
90
112
  console.warn(`[fsl] Failed to load Storage map for ${releaseId}/${fileName}:`, err);
91
- cache.set(`${releaseId}/${fileName}`, null);
113
+ cache.set(cacheKey, null);
92
114
  return null;
93
115
  }
94
116
  }
95
117
  /**
96
118
  * Get source map — checks embedded first (instant), then Storage (for old releases).
97
119
  */
98
- async function getSourceMap(releaseId, fileName) {
120
+ async function getSourceMap(releaseId, fileName, bucketName) {
99
121
  const embedded = loadEmbeddedSourceMap(fileName);
100
122
  if (embedded)
101
123
  return embedded;
102
- return loadStorageSourceMap(releaseId, fileName);
124
+ return loadStorageSourceMap(releaseId, fileName, bucketName);
103
125
  }
104
126
  function clearSourceMapCache() {
105
127
  cache.clear();
128
+ embeddedCache.clear();
106
129
  }
107
130
  //# sourceMappingURL=sourceMapCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMapCache.js","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4DAEC;AAED,kDAEC;AAoDD,oCAOC;AAED,kDAEC;AA/ED,uCAAwB;AACxB,2CAA4B;AAC5B,oDAAmD;AAGnD,mFAAmF;AACnF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAA;AAExD,IAAI,gBAAoC,CAAA;AAExC,SAAgB,wBAAwB,CAAC,UAAkB;IACzD,gBAAgB,GAAG,UAAU,CAAA;AAC/B,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,+FAA+F;QAC/F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAA;QACpF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAA;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAqB,CAAA;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,SAAiB,EACjB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAA;IAC3C,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;IAE3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB;YAC7B,CAAC,CAAC,IAAA,oBAAU,GAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACvC,CAAC,CAAC,IAAA,oBAAU,GAAE,CAAC,MAAM,EAAE,CAAA;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,IAAI,QAAQ,MAAM,CAAC,CAAA;QACnE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAqB,CAAA;QACpE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,wCAAwC,SAAS,IAAI,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAA;QACnF,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,OAAO,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAClD,CAAC;AAED,SAAgB,mBAAmB;IACjC,KAAK,CAAC,KAAK,EAAE,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"sourceMapCache.js","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,13 @@ export declare function symbolicate(sourceMap: EncodedSourceMap, generatedLine:
21
21
  name?: string;
22
22
  } | null;
23
23
  /**
24
- * Apply source map to all frames in a stack trace.
24
+ * Apply source maps to all frames in a stack trace.
25
+ *
26
+ * `resolve` picks the source map for a given frame, so a stack spanning several
27
+ * bundles is handled by the same code path as a single-bundle one. Pass
28
+ * `() => map` when one map covers the whole stack.
25
29
  */
26
- export declare function symbolicateStackTrace(frames: StackFrame[], sourceMap: EncodedSourceMap): StackFrame[];
30
+ export declare function symbolicateStackTrace(frames: StackFrame[], resolve: (frame: StackFrame) => EncodedSourceMap | null | undefined): StackFrame[];
27
31
  /**
28
32
  * Format symbolicated frames back to a stack trace string.
29
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"symbolicate.d.ts","sourceRoot":"","sources":["../../src/functions/symbolicate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEhG,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAkD3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAAE,EACpB,SAAS,EAAE,gBAAgB,GAC1B,UAAU,EAAE,CAgBd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAQ7D"}
1
+ {"version":3,"file":"symbolicate.d.ts","sourceRoot":"","sources":["../../src/functions/symbolicate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEhG,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAkD3D;AAeD;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgBxE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAClE,UAAU,EAAE,CAkBd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAQ7D"}
@@ -55,13 +55,26 @@ function parseStackTrace(stack) {
55
55
  }
56
56
  return frames;
57
57
  }
58
+ // Building a TraceMap decodes the whole mappings string, so keep one per source
59
+ // map instead of rebuilding it for every frame of every stack.
60
+ const tracers = new WeakMap();
61
+ function tracerFor(sourceMap) {
62
+ let tracer = tracers.get(sourceMap);
63
+ if (!tracer) {
64
+ tracer = new trace_mapping_1.TraceMap(sourceMap);
65
+ tracers.set(sourceMap, tracer);
66
+ }
67
+ return tracer;
68
+ }
58
69
  /**
59
70
  * Look up original source location for a generated line/column.
60
71
  */
61
72
  function symbolicate(sourceMap, generatedLine, generatedColumn) {
62
73
  try {
63
- const tracer = new trace_mapping_1.TraceMap(sourceMap);
64
- const result = (0, trace_mapping_1.originalPositionFor)(tracer, { line: generatedLine, column: generatedColumn });
74
+ const result = (0, trace_mapping_1.originalPositionFor)(tracerFor(sourceMap), {
75
+ line: generatedLine,
76
+ column: generatedColumn,
77
+ });
65
78
  if (!result.source)
66
79
  return null;
67
80
  return {
@@ -76,13 +89,18 @@ function symbolicate(sourceMap, generatedLine, generatedColumn) {
76
89
  }
77
90
  }
78
91
  /**
79
- * Apply source map to all frames in a stack trace.
92
+ * Apply source maps to all frames in a stack trace.
93
+ *
94
+ * `resolve` picks the source map for a given frame, so a stack spanning several
95
+ * bundles is handled by the same code path as a single-bundle one. Pass
96
+ * `() => map` when one map covers the whole stack.
80
97
  */
81
- function symbolicateStackTrace(frames, sourceMap) {
98
+ function symbolicateStackTrace(frames, resolve) {
82
99
  return frames.map((frame) => {
83
100
  if (!frame.lineNumber || !frame.columnNumber || !frame.fileName)
84
101
  return frame;
85
- if (!frame.fileName.includes('.js'))
102
+ const sourceMap = resolve(frame);
103
+ if (!sourceMap)
86
104
  return frame;
87
105
  const result = symbolicate(sourceMap, frame.lineNumber, frame.columnNumber);
88
106
  if (!result)
@@ -1 +1 @@
1
- {"version":3,"file":"symbolicate.js","sourceRoot":"","sources":["../../src/functions/symbolicate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbolicate.js","sourceRoot":"","sources":["../../src/functions/symbolicate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ErrorPayload } from './types';
2
+ /** Coerce an unknown thrown value into an Error. */
3
+ export declare function toError(raw: unknown): Error;
4
+ /** Build the wire-shape error payload logged under `jsonPayload.error`. */
5
+ export declare function toErrorPayload(error: Error): ErrorPayload;
6
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/shared/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,oDAAoD;AACpD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAE3C;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAOzD"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toError = toError;
4
+ exports.toErrorPayload = toErrorPayload;
5
+ /** Coerce an unknown thrown value into an Error. */
6
+ function toError(raw) {
7
+ return raw instanceof Error ? raw : new Error(String(raw));
8
+ }
9
+ /** Build the wire-shape error payload logged under `jsonPayload.error`. */
10
+ function toErrorPayload(error) {
11
+ return {
12
+ message: error.message,
13
+ stack: error.stack,
14
+ name: error.name,
15
+ cause: error.cause != null ? String(error.cause) : undefined,
16
+ };
17
+ }
18
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/shared/error.ts"],"names":[],"mappings":";;AAGA,0BAEC;AAGD,wCAOC;AAbD,oDAAoD;AACpD,SAAgB,OAAO,CAAC,GAAY;IAClC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,KAAY;IACzC,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC7D,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { LogSeverity } from './types';
2
+ /**
3
+ * Single source of truth for severity ranking. Lower number = more severe.
4
+ * Both the client and functions loggers filter against this, so a change here
5
+ * keeps min-level behaviour consistent on both sides of the wire.
6
+ */
7
+ export declare const SEVERITY_ORDER: Record<LogSeverity, number>;
8
+ export declare const SEVERITIES: LogSeverity[];
9
+ //# sourceMappingURL=severity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"severity.d.ts","sourceRoot":"","sources":["../../src/shared/severity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKtD,CAAA;AAED,eAAO,MAAM,UAAU,EAAkC,WAAW,EAAE,CAAA"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SEVERITIES = exports.SEVERITY_ORDER = void 0;
4
+ /**
5
+ * Single source of truth for severity ranking. Lower number = more severe.
6
+ * Both the client and functions loggers filter against this, so a change here
7
+ * keeps min-level behaviour consistent on both sides of the wire.
8
+ */
9
+ exports.SEVERITY_ORDER = {
10
+ ERROR: 0,
11
+ WARNING: 1,
12
+ INFO: 2,
13
+ DEBUG: 3,
14
+ };
15
+ exports.SEVERITIES = Object.keys(exports.SEVERITY_ORDER);
16
+ //# sourceMappingURL=severity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"severity.js","sourceRoot":"","sources":["../../src/shared/severity.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACU,QAAA,cAAc,GAAgC;IACzD,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAA;AAEY,QAAA,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAkB,CAAA"}
@@ -10,6 +10,12 @@ export interface BaseLabels {
10
10
  errorCategory?: string;
11
11
  activity?: string;
12
12
  }
13
+ export interface ErrorPayload {
14
+ message: string;
15
+ stack?: string;
16
+ name?: string;
17
+ cause?: string;
18
+ }
13
19
  export interface LogPayload {
14
20
  message: string;
15
21
  severity: LogSeverity;
@@ -17,12 +23,7 @@ export interface LogPayload {
17
23
  jsonPayload?: {
18
24
  breadcrumbs?: BreadcrumbEntry[];
19
25
  context?: Record<string, unknown>;
20
- error?: {
21
- message: string;
22
- stack?: string;
23
- name?: string;
24
- cause?: string;
25
- };
26
+ error?: ErrorPayload;
26
27
  };
27
28
  /** Base64-encoded attachments keyed by name. Uploaded to GCS, stripped before writing to Cloud Logging. */
28
29
  attachments?: Record<string, string>;