@zssz-soft/firebase-functions-shared 1.2.15 → 1.3.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/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/modules/booking/booking-email.templates.d.ts.map +1 -1
- package/lib/modules/booking/booking-email.templates.js.map +1 -1
- package/lib/modules/booking/booking-email.triggers.d.ts.map +1 -1
- package/lib/modules/booking/booking-email.triggers.js +22 -5
- package/lib/modules/booking/booking-email.triggers.js.map +1 -1
- package/lib/modules/email/email.d.ts.map +1 -1
- package/lib/modules/email/email.js +11 -2
- package/lib/modules/email/email.js.map +1 -1
- package/lib/modules/error-reporting/error-reporter.d.ts +97 -0
- package/lib/modules/error-reporting/error-reporter.d.ts.map +1 -0
- package/lib/modules/error-reporting/error-reporter.js +156 -0
- package/lib/modules/error-reporting/error-reporter.js.map +1 -0
- package/lib/modules/error-reporting/index.d.ts +7 -0
- package/lib/modules/error-reporting/index.d.ts.map +1 -0
- package/lib/modules/error-reporting/index.js +23 -0
- package/lib/modules/error-reporting/index.js.map +1 -0
- package/lib/modules/health/health-check.d.ts +33 -0
- package/lib/modules/health/health-check.d.ts.map +1 -0
- package/lib/modules/health/health-check.js +142 -0
- package/lib/modules/health/health-check.js.map +1 -0
- package/lib/modules/health/index.d.ts +7 -0
- package/lib/modules/health/index.d.ts.map +1 -0
- package/lib/modules/health/index.js +23 -0
- package/lib/modules/health/index.js.map +1 -0
- package/lib/modules/user/user-auth.triggers.d.ts.map +1 -1
- package/lib/modules/user/user-auth.triggers.js +1 -11
- package/lib/modules/user/user-auth.triggers.js.map +1 -1
- package/lib/modules/user/user-management.d.ts +8 -17
- package/lib/modules/user/user-management.d.ts.map +1 -1
- package/lib/modules/user/user-management.js +17 -24
- package/lib/modules/user/user-management.js.map +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -28,4 +28,6 @@ __exportStar(require("./modules/user"), exports);
|
|
|
28
28
|
__exportStar(require("./modules/security"), exports);
|
|
29
29
|
__exportStar(require("./modules/e2e"), exports);
|
|
30
30
|
__exportStar(require("./modules/booking"), exports);
|
|
31
|
+
__exportStar(require("./modules/error-reporting"), exports);
|
|
32
|
+
__exportStar(require("./modules/health"), exports);
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,4DAA0C;AAC1C,mDAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking-email.templates.d.ts","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"booking-email.templates.d.ts","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA2L1D;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAmHA;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAkJA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking-email.templates.js","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.templates.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"booking-email.templates.js","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking-email.triggers.d.ts","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.triggers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"booking-email.triggers.d.ts","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.triggers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAEL,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAqDhC;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAK/E;;;OAGG;;;;EA6GN"}
|
|
@@ -11,6 +11,7 @@ const firebase_functions_1 = require("firebase-functions");
|
|
|
11
11
|
const firestore_1 = require("firebase-functions/v2/firestore");
|
|
12
12
|
const email_service_1 = require("../email/email.service");
|
|
13
13
|
const email_validator_1 = require("../email/email.validator");
|
|
14
|
+
const error_reporting_1 = require("../error-reporting");
|
|
14
15
|
const booking_email_models_1 = require("./booking-email.models");
|
|
15
16
|
const booking_email_templates_1 = require("./booking-email.templates");
|
|
16
17
|
/**
|
|
@@ -65,6 +66,7 @@ function getAdminEmail(booking, cfg) {
|
|
|
65
66
|
*/
|
|
66
67
|
function createBookingEmailTriggers(config = {}) {
|
|
67
68
|
const cfg = Object.assign(Object.assign({}, booking_email_models_1.DEFAULT_BOOKING_EMAIL_CONFIG), config);
|
|
69
|
+
const errorReporter = (0, error_reporting_1.createErrorReporter)('onBookingCreated');
|
|
68
70
|
return {
|
|
69
71
|
/**
|
|
70
72
|
* Trigger when a new booking is created
|
|
@@ -93,7 +95,10 @@ function createBookingEmailTriggers(config = {}) {
|
|
|
93
95
|
// Validate booking data
|
|
94
96
|
const validationError = validateBookingForEmail(bookingData);
|
|
95
97
|
if (validationError) {
|
|
96
|
-
|
|
98
|
+
errorReporter.report(new Error(validationError), {
|
|
99
|
+
requestId: bookingId,
|
|
100
|
+
metadata: { type: 'validation_error' },
|
|
101
|
+
});
|
|
97
102
|
return;
|
|
98
103
|
}
|
|
99
104
|
// Add booking ID to data for reference
|
|
@@ -111,11 +116,17 @@ function createBookingEmailTriggers(config = {}) {
|
|
|
111
116
|
firebase_functions_1.logger.info(`[BookingEmail] Guest confirmation sent to ${booking.guest.email} for booking ${bookingId}`);
|
|
112
117
|
}
|
|
113
118
|
else {
|
|
114
|
-
|
|
119
|
+
errorReporter.report(new Error(`Failed to send guest email: ${guestResult.error}`), {
|
|
120
|
+
requestId: bookingId,
|
|
121
|
+
metadata: { type: 'guest_email_failed', guestEmail: booking.guest.email },
|
|
122
|
+
});
|
|
115
123
|
}
|
|
116
124
|
}
|
|
117
125
|
catch (error) {
|
|
118
|
-
|
|
126
|
+
errorReporter.report(error, {
|
|
127
|
+
requestId: bookingId,
|
|
128
|
+
metadata: { type: 'guest_email_error', guestEmail: booking.guest.email },
|
|
129
|
+
});
|
|
119
130
|
}
|
|
120
131
|
// Send admin/owner notification email
|
|
121
132
|
if (cfg.adminNotificationEnabled) {
|
|
@@ -133,11 +144,17 @@ function createBookingEmailTriggers(config = {}) {
|
|
|
133
144
|
firebase_functions_1.logger.info(`[BookingEmail] Admin notification sent to ${adminEmail} for booking ${bookingId}`);
|
|
134
145
|
}
|
|
135
146
|
else {
|
|
136
|
-
|
|
147
|
+
errorReporter.report(new Error(`Failed to send admin email: ${adminResult.error}`), {
|
|
148
|
+
requestId: bookingId,
|
|
149
|
+
metadata: { type: 'admin_email_failed', adminEmail },
|
|
150
|
+
});
|
|
137
151
|
}
|
|
138
152
|
}
|
|
139
153
|
catch (error) {
|
|
140
|
-
|
|
154
|
+
errorReporter.report(error, {
|
|
155
|
+
requestId: bookingId,
|
|
156
|
+
metadata: { type: 'admin_email_error', adminEmail },
|
|
157
|
+
});
|
|
141
158
|
}
|
|
142
159
|
}
|
|
143
160
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking-email.triggers.js","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.triggers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"booking-email.triggers.js","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.triggers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":"AASA,wBAAgB,uBAAuB;;;aAmGtC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B;;;aAuD7C;AAED;;;GAGG;AACH,wBAAgB,oCAAoC;;;aAgEnD"}
|
|
@@ -39,11 +39,14 @@ exports.createSendPasswordResetEmailFunction = createSendPasswordResetEmailFunct
|
|
|
39
39
|
const logger = __importStar(require("firebase-functions/logger"));
|
|
40
40
|
const https_1 = require("firebase-functions/v2/https");
|
|
41
41
|
const config_1 = require("../../config");
|
|
42
|
+
const error_reporting_1 = require("../error-reporting");
|
|
42
43
|
const email_service_1 = require("./email.service");
|
|
43
44
|
const email_validator_1 = require("./email.validator");
|
|
44
45
|
function createSendEmailFunction() {
|
|
45
46
|
const config = (0, config_1.getConfig)();
|
|
47
|
+
const errorReporter = (0, error_reporting_1.createErrorReporter)('sendEmail');
|
|
46
48
|
return (0, https_1.onCall)({ region: config.region, enforceAppCheck: config.enforceAppCheck }, async (request) => {
|
|
49
|
+
var _a, _b;
|
|
47
50
|
if (!request.auth) {
|
|
48
51
|
throw new https_1.HttpsError('unauthenticated', 'A felhasználónak be kell jelentkeznie az email küldéséhez.');
|
|
49
52
|
}
|
|
@@ -86,7 +89,10 @@ function createSendEmailFunction() {
|
|
|
86
89
|
break;
|
|
87
90
|
}
|
|
88
91
|
if (!result.success) {
|
|
89
|
-
|
|
92
|
+
errorReporter.report(new Error(`Email sending failed: ${result.error}`), {
|
|
93
|
+
userId: (_a = request.auth) === null || _a === void 0 ? void 0 : _a.uid,
|
|
94
|
+
metadata: { type: data.type, to: data.to },
|
|
95
|
+
});
|
|
90
96
|
throw new https_1.HttpsError('internal', `Email küldése sikertelen: ${result.error}`);
|
|
91
97
|
}
|
|
92
98
|
logger.info('Email sent successfully:', result.messageId);
|
|
@@ -96,10 +102,13 @@ function createSendEmailFunction() {
|
|
|
96
102
|
};
|
|
97
103
|
}
|
|
98
104
|
catch (error) {
|
|
99
|
-
logger.error('Error sending email:', error);
|
|
100
105
|
if (error instanceof https_1.HttpsError) {
|
|
101
106
|
throw error;
|
|
102
107
|
}
|
|
108
|
+
errorReporter.report(error, {
|
|
109
|
+
userId: (_b = request.auth) === null || _b === void 0 ? void 0 : _b.uid,
|
|
110
|
+
metadata: { type: data.type, to: data.to },
|
|
111
|
+
});
|
|
103
112
|
throw new https_1.HttpsError('internal', 'Hiba történt az email küldése során.');
|
|
104
113
|
}
|
|
105
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Reporter for Google Cloud Error Reporting
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error reporting that integrates with GCP Error Reporting.
|
|
5
|
+
* This module ensures errors are properly formatted and grouped in the Error Reporting console.
|
|
6
|
+
*
|
|
7
|
+
* GCP Error Reporting automatically captures:
|
|
8
|
+
* - Unhandled exceptions in Cloud Functions
|
|
9
|
+
* - Errors logged with proper Error objects and stack traces
|
|
10
|
+
*
|
|
11
|
+
* This module adds:
|
|
12
|
+
* - Explicit error reporting with context
|
|
13
|
+
* - Function name and request metadata
|
|
14
|
+
* - Structured error grouping
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Error context for better grouping and debugging
|
|
18
|
+
*/
|
|
19
|
+
export interface ErrorContext {
|
|
20
|
+
/** Cloud Function name */
|
|
21
|
+
functionName: string;
|
|
22
|
+
/** User ID if available */
|
|
23
|
+
userId?: string;
|
|
24
|
+
/** Request/document ID for tracing */
|
|
25
|
+
requestId?: string;
|
|
26
|
+
/** Additional metadata */
|
|
27
|
+
metadata?: Record<string, unknown>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Severity levels for error reporting
|
|
31
|
+
*/
|
|
32
|
+
export type ErrorSeverity = 'warning' | 'error' | 'critical';
|
|
33
|
+
/**
|
|
34
|
+
* ErrorReporter class for structured error reporting
|
|
35
|
+
*
|
|
36
|
+
* Usage:
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const reporter = new ErrorReporter({ functionName: 'sendEmail' });
|
|
39
|
+
* try {
|
|
40
|
+
* // ... operation
|
|
41
|
+
* } catch (error) {
|
|
42
|
+
* reporter.report(error, { userId: 'user-123' });
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare class ErrorReporter {
|
|
47
|
+
private context;
|
|
48
|
+
constructor(context: ErrorContext);
|
|
49
|
+
/**
|
|
50
|
+
* Report an error to Cloud Error Reporting
|
|
51
|
+
*
|
|
52
|
+
* @param error - The error to report (Error object or string)
|
|
53
|
+
* @param additionalContext - Additional context to merge with base context
|
|
54
|
+
* @param severity - Error severity level
|
|
55
|
+
*/
|
|
56
|
+
report(error: Error | string | unknown, additionalContext?: Partial<ErrorContext>, severity?: ErrorSeverity): void;
|
|
57
|
+
/**
|
|
58
|
+
* Report a critical error (highest severity)
|
|
59
|
+
*/
|
|
60
|
+
critical(error: Error | string | unknown, additionalContext?: Partial<ErrorContext>): void;
|
|
61
|
+
/**
|
|
62
|
+
* Report a warning (non-critical issue)
|
|
63
|
+
*/
|
|
64
|
+
warn(error: Error | string | unknown, additionalContext?: Partial<ErrorContext>): void;
|
|
65
|
+
/**
|
|
66
|
+
* Normalize error input to Error object
|
|
67
|
+
*/
|
|
68
|
+
private normalizeError;
|
|
69
|
+
/**
|
|
70
|
+
* Format error message with context for better grouping
|
|
71
|
+
*/
|
|
72
|
+
private formatErrorMessage;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create an ErrorReporter for a specific function
|
|
76
|
+
*
|
|
77
|
+
* @param functionName - Name of the Cloud Function
|
|
78
|
+
* @returns ErrorReporter instance
|
|
79
|
+
*/
|
|
80
|
+
export declare function createErrorReporter(functionName: string): ErrorReporter;
|
|
81
|
+
/**
|
|
82
|
+
* Standalone function to report an error without creating a reporter instance
|
|
83
|
+
*
|
|
84
|
+
* @param functionName - Name of the Cloud Function
|
|
85
|
+
* @param error - The error to report
|
|
86
|
+
* @param context - Additional context
|
|
87
|
+
*/
|
|
88
|
+
export declare function reportError(functionName: string, error: Error | string | unknown, context?: Omit<ErrorContext, 'functionName'>): void;
|
|
89
|
+
/**
|
|
90
|
+
* Wrap an async function with error reporting
|
|
91
|
+
*
|
|
92
|
+
* @param functionName - Name of the Cloud Function
|
|
93
|
+
* @param fn - The async function to wrap
|
|
94
|
+
* @returns Wrapped function with automatic error reporting
|
|
95
|
+
*/
|
|
96
|
+
export declare function withErrorReporting<T extends (...args: unknown[]) => Promise<unknown>>(functionName: string, fn: T): T;
|
|
97
|
+
//# sourceMappingURL=error-reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-reporter.d.ts","sourceRoot":"","sources":["../../../src/modules/error-reporting/error-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,YAAY;IAIjC;;;;;;OAMG;IACH,MAAM,CACJ,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EACzC,QAAQ,GAAE,aAAuB,GAChC,IAAI;IA8CP;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAI1F;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAItF;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAa3B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAEvE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAC/B,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GAC3C,IAAI,CAGN;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EACnF,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,CAAC,GACJ,CAAC,CAWH"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Error Reporter for Google Cloud Error Reporting
|
|
4
|
+
*
|
|
5
|
+
* Provides structured error reporting that integrates with GCP Error Reporting.
|
|
6
|
+
* This module ensures errors are properly formatted and grouped in the Error Reporting console.
|
|
7
|
+
*
|
|
8
|
+
* GCP Error Reporting automatically captures:
|
|
9
|
+
* - Unhandled exceptions in Cloud Functions
|
|
10
|
+
* - Errors logged with proper Error objects and stack traces
|
|
11
|
+
*
|
|
12
|
+
* This module adds:
|
|
13
|
+
* - Explicit error reporting with context
|
|
14
|
+
* - Function name and request metadata
|
|
15
|
+
* - Structured error grouping
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ErrorReporter = void 0;
|
|
19
|
+
exports.createErrorReporter = createErrorReporter;
|
|
20
|
+
exports.reportError = reportError;
|
|
21
|
+
exports.withErrorReporting = withErrorReporting;
|
|
22
|
+
const firebase_functions_1 = require("firebase-functions");
|
|
23
|
+
/**
|
|
24
|
+
* ErrorReporter class for structured error reporting
|
|
25
|
+
*
|
|
26
|
+
* Usage:
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const reporter = new ErrorReporter({ functionName: 'sendEmail' });
|
|
29
|
+
* try {
|
|
30
|
+
* // ... operation
|
|
31
|
+
* } catch (error) {
|
|
32
|
+
* reporter.report(error, { userId: 'user-123' });
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
class ErrorReporter {
|
|
37
|
+
constructor(context) {
|
|
38
|
+
this.context = context;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Report an error to Cloud Error Reporting
|
|
42
|
+
*
|
|
43
|
+
* @param error - The error to report (Error object or string)
|
|
44
|
+
* @param additionalContext - Additional context to merge with base context
|
|
45
|
+
* @param severity - Error severity level
|
|
46
|
+
*/
|
|
47
|
+
report(error, additionalContext, severity = 'error') {
|
|
48
|
+
const mergedContext = Object.assign(Object.assign({}, this.context), additionalContext);
|
|
49
|
+
const errorObj = this.normalizeError(error);
|
|
50
|
+
// Create structured log entry for Error Reporting
|
|
51
|
+
// GCP Error Reporting recognizes this format
|
|
52
|
+
const logEntry = {
|
|
53
|
+
'@type': 'type.googleapis.com/google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent',
|
|
54
|
+
message: this.formatErrorMessage(errorObj, mergedContext),
|
|
55
|
+
context: {
|
|
56
|
+
reportLocation: {
|
|
57
|
+
functionName: mergedContext.functionName,
|
|
58
|
+
},
|
|
59
|
+
user: mergedContext.userId,
|
|
60
|
+
},
|
|
61
|
+
serviceContext: {
|
|
62
|
+
service: 'firebase-functions',
|
|
63
|
+
version: process.env.K_REVISION || 'unknown',
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
// Log based on severity
|
|
67
|
+
switch (severity) {
|
|
68
|
+
case 'critical':
|
|
69
|
+
firebase_functions_1.logger.error('[CRITICAL]', logEntry, Object.assign(Object.assign({}, mergedContext.metadata), { severity: 'CRITICAL', stack: errorObj.stack }));
|
|
70
|
+
break;
|
|
71
|
+
case 'warning':
|
|
72
|
+
firebase_functions_1.logger.warn('[WARNING]', logEntry, Object.assign(Object.assign({}, mergedContext.metadata), { severity: 'WARNING', stack: errorObj.stack }));
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
firebase_functions_1.logger.error('[ERROR]', logEntry, Object.assign(Object.assign({}, mergedContext.metadata), { severity: 'ERROR', stack: errorObj.stack }));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Report a critical error (highest severity)
|
|
80
|
+
*/
|
|
81
|
+
critical(error, additionalContext) {
|
|
82
|
+
this.report(error, additionalContext, 'critical');
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Report a warning (non-critical issue)
|
|
86
|
+
*/
|
|
87
|
+
warn(error, additionalContext) {
|
|
88
|
+
this.report(error, additionalContext, 'warning');
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Normalize error input to Error object
|
|
92
|
+
*/
|
|
93
|
+
normalizeError(error) {
|
|
94
|
+
if (error instanceof Error) {
|
|
95
|
+
return error;
|
|
96
|
+
}
|
|
97
|
+
if (typeof error === 'string') {
|
|
98
|
+
return new Error(error);
|
|
99
|
+
}
|
|
100
|
+
return new Error(JSON.stringify(error));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Format error message with context for better grouping
|
|
104
|
+
*/
|
|
105
|
+
formatErrorMessage(error, context) {
|
|
106
|
+
const parts = [`[${context.functionName}]`, error.message];
|
|
107
|
+
if (context.requestId) {
|
|
108
|
+
parts.push(`(requestId: ${context.requestId})`);
|
|
109
|
+
}
|
|
110
|
+
if (error.stack) {
|
|
111
|
+
parts.push('\n' + error.stack);
|
|
112
|
+
}
|
|
113
|
+
return parts.join(' ');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.ErrorReporter = ErrorReporter;
|
|
117
|
+
/**
|
|
118
|
+
* Create an ErrorReporter for a specific function
|
|
119
|
+
*
|
|
120
|
+
* @param functionName - Name of the Cloud Function
|
|
121
|
+
* @returns ErrorReporter instance
|
|
122
|
+
*/
|
|
123
|
+
function createErrorReporter(functionName) {
|
|
124
|
+
return new ErrorReporter({ functionName });
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Standalone function to report an error without creating a reporter instance
|
|
128
|
+
*
|
|
129
|
+
* @param functionName - Name of the Cloud Function
|
|
130
|
+
* @param error - The error to report
|
|
131
|
+
* @param context - Additional context
|
|
132
|
+
*/
|
|
133
|
+
function reportError(functionName, error, context) {
|
|
134
|
+
const reporter = createErrorReporter(functionName);
|
|
135
|
+
reporter.report(error, context);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Wrap an async function with error reporting
|
|
139
|
+
*
|
|
140
|
+
* @param functionName - Name of the Cloud Function
|
|
141
|
+
* @param fn - The async function to wrap
|
|
142
|
+
* @returns Wrapped function with automatic error reporting
|
|
143
|
+
*/
|
|
144
|
+
function withErrorReporting(functionName, fn) {
|
|
145
|
+
const reporter = createErrorReporter(functionName);
|
|
146
|
+
return (async (...args) => {
|
|
147
|
+
try {
|
|
148
|
+
return await fn(...args);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
reporter.report(error);
|
|
152
|
+
throw error; // Re-throw to let the function handle it
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=error-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-reporter.js","sourceRoot":"","sources":["../../../src/modules/error-reporting/error-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/error-reporting/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Error Reporting Module
|
|
4
|
+
*
|
|
5
|
+
* Provides structured error reporting for Google Cloud Error Reporting.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
__exportStar(require("./error-reporter"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/error-reporting/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,mDAAiC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health Check Functions
|
|
3
|
+
*
|
|
4
|
+
* Provides endpoints to verify Firebase Functions availability.
|
|
5
|
+
* Used with Cloud Monitoring Uptime Checks for alerting.
|
|
6
|
+
*/
|
|
7
|
+
export interface HealthCheckResponse {
|
|
8
|
+
status: 'ok' | 'degraded' | 'error';
|
|
9
|
+
timestamp: string;
|
|
10
|
+
region: string;
|
|
11
|
+
version: string;
|
|
12
|
+
checks?: {
|
|
13
|
+
name: string;
|
|
14
|
+
status: 'ok' | 'error';
|
|
15
|
+
latencyMs?: number;
|
|
16
|
+
error?: string;
|
|
17
|
+
}[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create a simple health check endpoint
|
|
21
|
+
*
|
|
22
|
+
* This is a lightweight HTTP function that Cloud Monitoring can ping.
|
|
23
|
+
* Returns 200 if functions are running, which triggers alerts if unreachable.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createHealthCheckFunction(): import("firebase-functions/v2/https").HttpsFunction;
|
|
26
|
+
/**
|
|
27
|
+
* Create a detailed health check with dependency checks
|
|
28
|
+
*
|
|
29
|
+
* Checks Firestore connectivity and other dependencies.
|
|
30
|
+
* Useful for debugging but more expensive to run.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createDetailedHealthCheckFunction(): import("firebase-functions/v2/https").HttpsFunction;
|
|
33
|
+
//# sourceMappingURL=health-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../../../src/modules/health/health-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;CACL;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,wDAwBxC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,wDAyEhD"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Health Check Functions
|
|
4
|
+
*
|
|
5
|
+
* Provides endpoints to verify Firebase Functions availability.
|
|
6
|
+
* Used with Cloud Monitoring Uptime Checks for alerting.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.createHealthCheckFunction = createHealthCheckFunction;
|
|
43
|
+
exports.createDetailedHealthCheckFunction = createDetailedHealthCheckFunction;
|
|
44
|
+
const https_1 = require("firebase-functions/v2/https");
|
|
45
|
+
const config_1 = require("../../config");
|
|
46
|
+
/**
|
|
47
|
+
* Create a simple health check endpoint
|
|
48
|
+
*
|
|
49
|
+
* This is a lightweight HTTP function that Cloud Monitoring can ping.
|
|
50
|
+
* Returns 200 if functions are running, which triggers alerts if unreachable.
|
|
51
|
+
*/
|
|
52
|
+
function createHealthCheckFunction() {
|
|
53
|
+
const config = (0, config_1.getConfig)();
|
|
54
|
+
return (0, https_1.onRequest)({
|
|
55
|
+
region: config.region,
|
|
56
|
+
// No auth required - this is a public health endpoint
|
|
57
|
+
invoker: 'public',
|
|
58
|
+
// Minimal resources
|
|
59
|
+
memory: '128MiB',
|
|
60
|
+
timeoutSeconds: 10,
|
|
61
|
+
maxInstances: 2,
|
|
62
|
+
}, async (req, res) => {
|
|
63
|
+
const response = {
|
|
64
|
+
status: 'ok',
|
|
65
|
+
timestamp: new Date().toISOString(),
|
|
66
|
+
region: config.region,
|
|
67
|
+
version: process.env.K_REVISION || 'unknown',
|
|
68
|
+
};
|
|
69
|
+
res.status(200).json(response);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create a detailed health check with dependency checks
|
|
74
|
+
*
|
|
75
|
+
* Checks Firestore connectivity and other dependencies.
|
|
76
|
+
* Useful for debugging but more expensive to run.
|
|
77
|
+
*/
|
|
78
|
+
function createDetailedHealthCheckFunction() {
|
|
79
|
+
const config = (0, config_1.getConfig)();
|
|
80
|
+
return (0, https_1.onRequest)({
|
|
81
|
+
region: config.region,
|
|
82
|
+
invoker: 'public',
|
|
83
|
+
memory: '256MiB',
|
|
84
|
+
timeoutSeconds: 30,
|
|
85
|
+
maxInstances: 2,
|
|
86
|
+
}, async (req, res) => {
|
|
87
|
+
const checks = [];
|
|
88
|
+
let overallStatus = 'ok';
|
|
89
|
+
// Check Firestore connectivity
|
|
90
|
+
try {
|
|
91
|
+
const start = Date.now();
|
|
92
|
+
const { getFirestore } = await Promise.resolve().then(() => __importStar(require('firebase-admin/firestore')));
|
|
93
|
+
const db = getFirestore();
|
|
94
|
+
// Simple read to verify connectivity
|
|
95
|
+
await db.collection('_health').doc('check').get();
|
|
96
|
+
checks.push({
|
|
97
|
+
name: 'firestore',
|
|
98
|
+
status: 'ok',
|
|
99
|
+
latencyMs: Date.now() - start,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
overallStatus = 'degraded';
|
|
104
|
+
checks.push({
|
|
105
|
+
name: 'firestore',
|
|
106
|
+
status: 'error',
|
|
107
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
// Check Auth service
|
|
111
|
+
try {
|
|
112
|
+
const start = Date.now();
|
|
113
|
+
const { getAuth } = await Promise.resolve().then(() => __importStar(require('firebase-admin/auth')));
|
|
114
|
+
const auth = getAuth();
|
|
115
|
+
// Verify auth is initialized (doesn't make external call)
|
|
116
|
+
auth.tenantManager();
|
|
117
|
+
checks.push({
|
|
118
|
+
name: 'auth',
|
|
119
|
+
status: 'ok',
|
|
120
|
+
latencyMs: Date.now() - start,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
overallStatus = 'degraded';
|
|
125
|
+
checks.push({
|
|
126
|
+
name: 'auth',
|
|
127
|
+
status: 'error',
|
|
128
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
const response = {
|
|
132
|
+
status: overallStatus,
|
|
133
|
+
timestamp: new Date().toISOString(),
|
|
134
|
+
region: config.region,
|
|
135
|
+
version: process.env.K_REVISION || 'unknown',
|
|
136
|
+
checks,
|
|
137
|
+
};
|
|
138
|
+
const statusCode = overallStatus === 'ok' ? 200 : overallStatus === 'degraded' ? 200 : 503;
|
|
139
|
+
res.status(statusCode).json(response);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=health-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../../src/modules/health/health-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/health/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Health Check Module
|
|
4
|
+
*
|
|
5
|
+
* Provides health check endpoints for monitoring Firebase Functions availability.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
__exportStar(require("./health-check"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/health/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,iDAA+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-auth.triggers.d.ts","sourceRoot":"","sources":["../../../src/modules/user/user-auth.triggers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAE/B,iBAAiB,EAAE,GAAG,CAAC;CACxB;AAiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,qBAA0B,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"user-auth.triggers.d.ts","sourceRoot":"","sources":["../../../src/modules/user/user-auth.triggers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAE/B,iBAAiB,EAAE,GAAG,CAAC;CACxB;AAiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,qBAA0B,GAAG,gBAAgB,CAyE3F"}
|
|
@@ -108,17 +108,7 @@ function createUserAuthTriggers(config = {}) {
|
|
|
108
108
|
const nameParts = displayName.split(' ');
|
|
109
109
|
const firstName = nameParts[0] || '';
|
|
110
110
|
const lastName = nameParts.slice(1).join(' ') || '';
|
|
111
|
-
const userDocument = (0, user_management_1.buildBaseUserDocument)({
|
|
112
|
-
uid,
|
|
113
|
-
email,
|
|
114
|
-
displayName,
|
|
115
|
-
firstName,
|
|
116
|
-
lastName,
|
|
117
|
-
roleIds: [cfg.defaultRoleId],
|
|
118
|
-
createdBy: 'auth-trigger',
|
|
119
|
-
phoneNumber: user.phoneNumber || undefined,
|
|
120
|
-
photoURL: user.photoURL || undefined,
|
|
121
|
-
});
|
|
111
|
+
const userDocument = (0, user_management_1.buildBaseUserDocument)(uid, email, displayName, firstName, lastName, [cfg.defaultRoleId], 'auth-trigger', { phone: user.phoneNumber || undefined, photoURL: user.photoURL || undefined });
|
|
122
112
|
await userDocRef.set(userDocument);
|
|
123
113
|
logger.info(`User document created successfully for ${uid}`);
|
|
124
114
|
// The beforeUserCreated trigger can return custom claims or session claims
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-auth.triggers.js","sourceRoot":"","sources":["../../../src/modules/user/user-auth.triggers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DH,
|
|
1
|
+
{"version":3,"file":"user-auth.triggers.js","sourceRoot":"","sources":["../../../src/modules/user/user-auth.triggers.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,25 +32,11 @@ export declare function validateCreateUserData(data: CreateUserData): void;
|
|
|
32
32
|
* Get password to use (provided or default)
|
|
33
33
|
*/
|
|
34
34
|
export declare function getUserPassword(providedPassword: string | undefined, defaultPassword: string): string;
|
|
35
|
-
/**
|
|
36
|
-
* Input for building a base user document
|
|
37
|
-
*/
|
|
38
|
-
export interface BuildUserDocumentInput {
|
|
39
|
-
uid: string;
|
|
40
|
-
email: string;
|
|
41
|
-
displayName: string;
|
|
42
|
-
firstName: string;
|
|
43
|
-
lastName: string;
|
|
44
|
-
roleIds: string[];
|
|
45
|
-
createdBy: string;
|
|
46
|
-
phoneNumber?: string;
|
|
47
|
-
photoURL?: string;
|
|
48
|
-
}
|
|
49
35
|
/**
|
|
50
36
|
* User document structure for Firestore
|
|
51
37
|
*/
|
|
52
38
|
export interface FirestoreUserDocument {
|
|
53
|
-
|
|
39
|
+
uid: string;
|
|
54
40
|
email: string;
|
|
55
41
|
displayName: string;
|
|
56
42
|
firstName: string;
|
|
@@ -62,14 +48,19 @@ export interface FirestoreUserDocument {
|
|
|
62
48
|
createdBy: string;
|
|
63
49
|
updatedBy: string;
|
|
64
50
|
};
|
|
65
|
-
|
|
51
|
+
phone?: string;
|
|
52
|
+
language?: string;
|
|
66
53
|
photoURL?: string;
|
|
67
54
|
}
|
|
68
55
|
/**
|
|
69
56
|
* Build base user document for Firestore
|
|
70
57
|
* Reusable function for creating user documents from different contexts
|
|
71
58
|
*/
|
|
72
|
-
export declare function buildBaseUserDocument(
|
|
59
|
+
export declare function buildBaseUserDocument(uid: string, email: string, displayName: string, firstName: string, lastName: string, roleIds: string[], createdBy: string, options?: {
|
|
60
|
+
phone?: string;
|
|
61
|
+
language?: string;
|
|
62
|
+
photoURL?: string;
|
|
63
|
+
}): FirestoreUserDocument;
|
|
73
64
|
/**
|
|
74
65
|
* Build user document for Firestore (admin context)
|
|
75
66
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-management.d.ts","sourceRoot":"","sources":["../../../src/modules/user/user-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAgB,MAAM,0BAA0B,CAAC;AAInE,OAAO,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAgB,MAAM,wBAAwB,CAAC;AAIpE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAOjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,GACtB,MAAM,CAER;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"user-management.d.ts","sourceRoot":"","sources":["../../../src/modules/user/user-management.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,27 +69,30 @@ function getUserPassword(providedPassword, defaultPassword) {
|
|
|
69
69
|
* Build base user document for Firestore
|
|
70
70
|
* Reusable function for creating user documents from different contexts
|
|
71
71
|
*/
|
|
72
|
-
function buildBaseUserDocument(
|
|
72
|
+
function buildBaseUserDocument(uid, email, displayName, firstName, lastName, roleIds, createdBy, options) {
|
|
73
73
|
const now = new Date().toISOString();
|
|
74
74
|
const doc = {
|
|
75
|
-
|
|
76
|
-
email
|
|
77
|
-
displayName
|
|
78
|
-
firstName
|
|
79
|
-
lastName
|
|
80
|
-
roleIds
|
|
75
|
+
uid,
|
|
76
|
+
email,
|
|
77
|
+
displayName,
|
|
78
|
+
firstName,
|
|
79
|
+
lastName,
|
|
80
|
+
roleIds,
|
|
81
81
|
meta: {
|
|
82
82
|
createdAt: now,
|
|
83
83
|
updatedAt: now,
|
|
84
|
-
createdBy
|
|
85
|
-
updatedBy:
|
|
84
|
+
createdBy,
|
|
85
|
+
updatedBy: createdBy,
|
|
86
86
|
},
|
|
87
87
|
};
|
|
88
|
-
if (
|
|
89
|
-
doc.
|
|
88
|
+
if (options === null || options === void 0 ? void 0 : options.phone) {
|
|
89
|
+
doc.phone = options.phone;
|
|
90
90
|
}
|
|
91
|
-
if (
|
|
92
|
-
doc.
|
|
91
|
+
if (options === null || options === void 0 ? void 0 : options.language) {
|
|
92
|
+
doc.language = options.language;
|
|
93
|
+
}
|
|
94
|
+
if (options === null || options === void 0 ? void 0 : options.photoURL) {
|
|
95
|
+
doc.photoURL = options.photoURL;
|
|
93
96
|
}
|
|
94
97
|
return doc;
|
|
95
98
|
}
|
|
@@ -97,17 +100,7 @@ function buildBaseUserDocument(input) {
|
|
|
97
100
|
* Build user document for Firestore (admin context)
|
|
98
101
|
*/
|
|
99
102
|
function buildUserDocument(userRecord, data, defaultRoleId) {
|
|
100
|
-
return buildBaseUserDocument({
|
|
101
|
-
uid: userRecord.uid,
|
|
102
|
-
email: data.email,
|
|
103
|
-
displayName: userRecord.displayName || `${data.firstName} ${data.lastName}`,
|
|
104
|
-
firstName: data.firstName,
|
|
105
|
-
lastName: data.lastName,
|
|
106
|
-
roleIds: data.roleIds || [defaultRoleId],
|
|
107
|
-
createdBy: 'system-bootstrap',
|
|
108
|
-
phoneNumber: data.phoneNumber,
|
|
109
|
-
photoURL: data.photoURL,
|
|
110
|
-
});
|
|
103
|
+
return buildBaseUserDocument(userRecord.uid, data.email, userRecord.displayName || `${data.firstName} ${data.lastName}`, data.firstName, data.lastName, data.roleIds || [defaultRoleId], 'system-bootstrap', { phone: data.phoneNumber, photoURL: data.photoURL });
|
|
111
104
|
}
|
|
112
105
|
/**
|
|
113
106
|
* Send welcome email to user
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-management.js","sourceRoot":"","sources":["../../../src/modules/user/user-management.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,wDAOC;AAKD,0CAKC;
|
|
1
|
+
{"version":3,"file":"user-management.js","sourceRoot":"","sources":["../../../src/modules/user/user-management.ts"],"names":[],"mappings":"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"}
|