@zssz-soft/firebase-functions-shared 1.2.5 → 1.2.8
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 +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/modules/e2e/e2e-reset.d.ts +57 -0
- package/lib/modules/e2e/e2e-reset.d.ts.map +1 -0
- package/lib/modules/e2e/e2e-reset.js +234 -0
- package/lib/modules/e2e/e2e-reset.js.map +1 -0
- package/lib/modules/e2e/index.d.ts +8 -0
- package/lib/modules/e2e/index.d.ts.map +1 -0
- package/lib/modules/e2e/index.js +24 -0
- package/lib/modules/e2e/index.js.map +1 -0
- package/lib/modules/email/email.d.ts +16 -0
- package/lib/modules/email/email.d.ts.map +1 -1
- package/lib/modules/email/email.js +92 -0
- package/lib/modules/email/email.js.map +1 -1
- package/lib/modules/storage/thumbnail-functions.d.ts.map +1 -1
- package/lib/modules/storage/thumbnail-functions.js +10 -2
- package/lib/modules/storage/thumbnail-functions.js.map +1 -1
- package/lib/modules/user/user-auth.triggers.d.ts +25 -0
- package/lib/modules/user/user-auth.triggers.d.ts.map +1 -0
- package/lib/modules/user/user-auth.triggers.js +154 -0
- package/lib/modules/user/user-auth.triggers.js.map +1 -0
- package/lib/modules/user/user-management.d.ts +26 -0
- package/lib/modules/user/user-management.d.ts.map +1 -1
- package/lib/modules/user/user-management.js +91 -0
- package/lib/modules/user/user-management.js.map +1 -1
- package/package.json +3 -7
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"}
|
|
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"}
|
package/lib/index.js
CHANGED
|
@@ -26,4 +26,5 @@ __exportStar(require("./modules/email"), exports);
|
|
|
26
26
|
__exportStar(require("./modules/storage"), exports);
|
|
27
27
|
__exportStar(require("./modules/user"), exports);
|
|
28
28
|
__exportStar(require("./modules/security"), exports);
|
|
29
|
+
__exportStar(require("./modules/e2e"), exports);
|
|
29
30
|
//# 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"}
|
|
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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* E2E Reset Cloud Function
|
|
3
|
+
*
|
|
4
|
+
* Provides functionality to reset the Firebase environment for E2E testing.
|
|
5
|
+
* This function clears all Firestore collections and deletes all Firebase Auth users.
|
|
6
|
+
*
|
|
7
|
+
* SECURITY: This function is protected by a secret header and should only be
|
|
8
|
+
* deployed to test environments.
|
|
9
|
+
*/
|
|
10
|
+
import { Firestore } from 'firebase-admin/firestore';
|
|
11
|
+
import { AppConfig } from '../../config';
|
|
12
|
+
/**
|
|
13
|
+
* Collections to clear during E2E reset
|
|
14
|
+
* Based on domain models in projects/api/src/lib/domain/
|
|
15
|
+
*/
|
|
16
|
+
export declare const COLLECTIONS_TO_CLEAR: readonly ["user", "role", "booking", "apartment", "document", "equipment", "app-config", "article", "audit_logs", "security"];
|
|
17
|
+
/**
|
|
18
|
+
* Result of an E2E reset operation
|
|
19
|
+
*/
|
|
20
|
+
export interface E2EResetResult {
|
|
21
|
+
success: boolean;
|
|
22
|
+
message: string;
|
|
23
|
+
deletedDocuments: number;
|
|
24
|
+
deletedUsers: number;
|
|
25
|
+
deletedCollections: string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Delete all documents in a collection using batch operations
|
|
29
|
+
* Returns the number of deleted documents
|
|
30
|
+
*/
|
|
31
|
+
export declare function deleteCollection(firestore: Firestore, collectionPath: string, batchSize?: number): Promise<number>;
|
|
32
|
+
/**
|
|
33
|
+
* Delete all subcollections for documents in a collection
|
|
34
|
+
* This handles nested data like apartment/rules and booking/workflow_history
|
|
35
|
+
*/
|
|
36
|
+
export declare function deleteSubcollections(firestore: Firestore, parentCollection: string, subcollectionName: string, batchSize?: number): Promise<number>;
|
|
37
|
+
/**
|
|
38
|
+
* Delete the security/users subcollections (effective_permissions)
|
|
39
|
+
*/
|
|
40
|
+
export declare function deleteSecuritySubcollections(firestore: Firestore, batchSize?: number): Promise<number>;
|
|
41
|
+
/**
|
|
42
|
+
* Delete all Firebase Auth users
|
|
43
|
+
* Returns the number of deleted users
|
|
44
|
+
*/
|
|
45
|
+
export declare function deleteAllAuthUsers(): Promise<number>;
|
|
46
|
+
/**
|
|
47
|
+
* Core E2E reset logic - exported for testing
|
|
48
|
+
*/
|
|
49
|
+
export declare function executeE2EReset(config: AppConfig): Promise<E2EResetResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Factory function to create e2eReset HTTP function
|
|
52
|
+
*
|
|
53
|
+
* @param secretEnvVar - Environment variable name containing the reset secret
|
|
54
|
+
* Default: 'E2E_RESET_SECRET'
|
|
55
|
+
*/
|
|
56
|
+
export declare function createE2EResetFunction(secretEnvVar?: string): import("firebase-functions/https").HttpsFunction;
|
|
57
|
+
//# sourceMappingURL=e2e-reset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2e-reset.d.ts","sourceRoot":"","sources":["../../../src/modules/e2e/e2e-reset.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAgB,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAKnE,OAAO,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,+HAWvB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AASD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,SAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EACzB,SAAS,SAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,SAAS,EACpB,SAAS,SAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAiB1D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAiDhF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,SAAqB,oDA6CvE"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* E2E Reset Cloud Function
|
|
4
|
+
*
|
|
5
|
+
* Provides functionality to reset the Firebase environment for E2E testing.
|
|
6
|
+
* This function clears all Firestore collections and deletes all Firebase Auth users.
|
|
7
|
+
*
|
|
8
|
+
* SECURITY: This function is protected by a secret header and should only be
|
|
9
|
+
* deployed to test environments.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.COLLECTIONS_TO_CLEAR = void 0;
|
|
13
|
+
exports.deleteCollection = deleteCollection;
|
|
14
|
+
exports.deleteSubcollections = deleteSubcollections;
|
|
15
|
+
exports.deleteSecuritySubcollections = deleteSecuritySubcollections;
|
|
16
|
+
exports.deleteAllAuthUsers = deleteAllAuthUsers;
|
|
17
|
+
exports.executeE2EReset = executeE2EReset;
|
|
18
|
+
exports.createE2EResetFunction = createE2EResetFunction;
|
|
19
|
+
const firestore_1 = require("firebase-admin/firestore");
|
|
20
|
+
const auth_1 = require("firebase-admin/auth");
|
|
21
|
+
const firebase_functions_1 = require("firebase-functions");
|
|
22
|
+
const https_1 = require("firebase-functions/https");
|
|
23
|
+
const config_1 = require("../../config");
|
|
24
|
+
/**
|
|
25
|
+
* Collections to clear during E2E reset
|
|
26
|
+
* Based on domain models in projects/api/src/lib/domain/
|
|
27
|
+
*/
|
|
28
|
+
exports.COLLECTIONS_TO_CLEAR = [
|
|
29
|
+
'user',
|
|
30
|
+
'role',
|
|
31
|
+
'booking',
|
|
32
|
+
'apartment',
|
|
33
|
+
'document',
|
|
34
|
+
'equipment',
|
|
35
|
+
'app-config',
|
|
36
|
+
'article',
|
|
37
|
+
'audit_logs',
|
|
38
|
+
'security',
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* Get Firestore instance based on config
|
|
42
|
+
*/
|
|
43
|
+
function getFirestoreInstance(config) {
|
|
44
|
+
return config.firestoreDatabaseId ? (0, firestore_1.getFirestore)(config.firestoreDatabaseId) : (0, firestore_1.getFirestore)();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Delete all documents in a collection using batch operations
|
|
48
|
+
* Returns the number of deleted documents
|
|
49
|
+
*/
|
|
50
|
+
async function deleteCollection(firestore, collectionPath, batchSize = 100) {
|
|
51
|
+
const collectionRef = firestore.collection(collectionPath);
|
|
52
|
+
let deletedCount = 0;
|
|
53
|
+
while (true) {
|
|
54
|
+
const snapshot = await collectionRef.limit(batchSize).get();
|
|
55
|
+
if (snapshot.empty) {
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
const batch = firestore.batch();
|
|
59
|
+
snapshot.docs.forEach((doc) => {
|
|
60
|
+
batch.delete(doc.ref);
|
|
61
|
+
});
|
|
62
|
+
await batch.commit();
|
|
63
|
+
deletedCount += snapshot.size;
|
|
64
|
+
firebase_functions_1.logger.info(`Deleted ${snapshot.size} documents from ${collectionPath}`);
|
|
65
|
+
}
|
|
66
|
+
return deletedCount;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Delete all subcollections for documents in a collection
|
|
70
|
+
* This handles nested data like apartment/rules and booking/workflow_history
|
|
71
|
+
*/
|
|
72
|
+
async function deleteSubcollections(firestore, parentCollection, subcollectionName, batchSize = 100) {
|
|
73
|
+
const parentRef = firestore.collection(parentCollection);
|
|
74
|
+
const parentDocs = await parentRef.listDocuments();
|
|
75
|
+
let totalDeleted = 0;
|
|
76
|
+
for (const parentDoc of parentDocs) {
|
|
77
|
+
const subcollectionRef = parentDoc.collection(subcollectionName);
|
|
78
|
+
let deletedInSubcollection = 0;
|
|
79
|
+
while (true) {
|
|
80
|
+
const snapshot = await subcollectionRef.limit(batchSize).get();
|
|
81
|
+
if (snapshot.empty) {
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
const batch = firestore.batch();
|
|
85
|
+
snapshot.docs.forEach((doc) => {
|
|
86
|
+
batch.delete(doc.ref);
|
|
87
|
+
});
|
|
88
|
+
await batch.commit();
|
|
89
|
+
deletedInSubcollection += snapshot.size;
|
|
90
|
+
}
|
|
91
|
+
if (deletedInSubcollection > 0) {
|
|
92
|
+
firebase_functions_1.logger.info(`Deleted ${deletedInSubcollection} documents from ${parentCollection}/${parentDoc.id}/${subcollectionName}`);
|
|
93
|
+
totalDeleted += deletedInSubcollection;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return totalDeleted;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Delete the security/users subcollections (effective_permissions)
|
|
100
|
+
*/
|
|
101
|
+
async function deleteSecuritySubcollections(firestore, batchSize = 100) {
|
|
102
|
+
const securityUsersRef = firestore.collection('security').doc('users');
|
|
103
|
+
const userSubcollections = await securityUsersRef.listCollections();
|
|
104
|
+
let totalDeleted = 0;
|
|
105
|
+
for (const userCollection of userSubcollections) {
|
|
106
|
+
while (true) {
|
|
107
|
+
const snapshot = await userCollection.limit(batchSize).get();
|
|
108
|
+
if (snapshot.empty) {
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
const batch = firestore.batch();
|
|
112
|
+
snapshot.docs.forEach((doc) => {
|
|
113
|
+
batch.delete(doc.ref);
|
|
114
|
+
});
|
|
115
|
+
await batch.commit();
|
|
116
|
+
totalDeleted += snapshot.size;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (totalDeleted > 0) {
|
|
120
|
+
firebase_functions_1.logger.info(`Deleted ${totalDeleted} effective_permissions documents`);
|
|
121
|
+
}
|
|
122
|
+
return totalDeleted;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Delete all Firebase Auth users
|
|
126
|
+
* Returns the number of deleted users
|
|
127
|
+
*/
|
|
128
|
+
async function deleteAllAuthUsers() {
|
|
129
|
+
const auth = (0, auth_1.getAuth)();
|
|
130
|
+
let deletedCount = 0;
|
|
131
|
+
let pageToken;
|
|
132
|
+
do {
|
|
133
|
+
const listResult = await auth.listUsers(1000, pageToken);
|
|
134
|
+
if (listResult.users.length > 0) {
|
|
135
|
+
const uids = listResult.users.map((user) => user.uid);
|
|
136
|
+
await auth.deleteUsers(uids);
|
|
137
|
+
deletedCount += uids.length;
|
|
138
|
+
firebase_functions_1.logger.info(`Deleted ${uids.length} auth users`);
|
|
139
|
+
}
|
|
140
|
+
pageToken = listResult.pageToken;
|
|
141
|
+
} while (pageToken);
|
|
142
|
+
return deletedCount;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Core E2E reset logic - exported for testing
|
|
146
|
+
*/
|
|
147
|
+
async function executeE2EReset(config) {
|
|
148
|
+
const firestore = getFirestoreInstance(config);
|
|
149
|
+
let totalDeletedDocs = 0;
|
|
150
|
+
const deletedCollections = [];
|
|
151
|
+
firebase_functions_1.logger.info('Starting E2E reset...');
|
|
152
|
+
// Delete subcollections first (before parent documents)
|
|
153
|
+
const subcollectionDefs = [
|
|
154
|
+
{ parent: 'apartment', sub: 'rule' },
|
|
155
|
+
{ parent: 'booking', sub: 'workflow_history' },
|
|
156
|
+
];
|
|
157
|
+
for (const { parent, sub } of subcollectionDefs) {
|
|
158
|
+
const count = await deleteSubcollections(firestore, parent, sub);
|
|
159
|
+
if (count > 0) {
|
|
160
|
+
totalDeletedDocs += count;
|
|
161
|
+
deletedCollections.push(`${parent}/${sub}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Delete security subcollections (effective_permissions)
|
|
165
|
+
const securityCount = await deleteSecuritySubcollections(firestore);
|
|
166
|
+
if (securityCount > 0) {
|
|
167
|
+
totalDeletedDocs += securityCount;
|
|
168
|
+
deletedCollections.push('security/users/*/effective_permissions');
|
|
169
|
+
}
|
|
170
|
+
// Delete main collections
|
|
171
|
+
for (const collection of exports.COLLECTIONS_TO_CLEAR) {
|
|
172
|
+
const count = await deleteCollection(firestore, collection);
|
|
173
|
+
if (count > 0) {
|
|
174
|
+
totalDeletedDocs += count;
|
|
175
|
+
deletedCollections.push(collection);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Delete all Auth users
|
|
179
|
+
const deletedUsers = await deleteAllAuthUsers();
|
|
180
|
+
firebase_functions_1.logger.info(`E2E reset completed: ${totalDeletedDocs} documents, ${deletedUsers} users deleted`);
|
|
181
|
+
return {
|
|
182
|
+
success: true,
|
|
183
|
+
message: 'E2E reset completed successfully',
|
|
184
|
+
deletedDocuments: totalDeletedDocs,
|
|
185
|
+
deletedUsers,
|
|
186
|
+
deletedCollections,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Factory function to create e2eReset HTTP function
|
|
191
|
+
*
|
|
192
|
+
* @param secretEnvVar - Environment variable name containing the reset secret
|
|
193
|
+
* Default: 'E2E_RESET_SECRET'
|
|
194
|
+
*/
|
|
195
|
+
function createE2EResetFunction(secretEnvVar = 'E2E_RESET_SECRET') {
|
|
196
|
+
const config = (0, config_1.getConfig)();
|
|
197
|
+
return (0, https_1.onRequest)({
|
|
198
|
+
region: config.region,
|
|
199
|
+
maxInstances: 1,
|
|
200
|
+
timeoutSeconds: 540, // 9 minutes for large datasets
|
|
201
|
+
}, async (req, res) => {
|
|
202
|
+
// Only allow POST requests
|
|
203
|
+
if (req.method !== 'POST') {
|
|
204
|
+
res.status(405).json({ error: 'Method not allowed. Use POST.' });
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
// Verify secret header
|
|
208
|
+
const providedSecret = req.headers['x-e2e-reset-secret'];
|
|
209
|
+
const expectedSecret = process.env[secretEnvVar];
|
|
210
|
+
if (!expectedSecret) {
|
|
211
|
+
firebase_functions_1.logger.error(`E2E reset secret not configured (${secretEnvVar} environment variable)`);
|
|
212
|
+
res.status(500).json({ error: 'E2E reset not configured on server' });
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (!providedSecret || providedSecret !== expectedSecret) {
|
|
216
|
+
firebase_functions_1.logger.warn('E2E reset attempted with invalid or missing secret');
|
|
217
|
+
res.status(403).json({ error: 'Invalid or missing X-E2E-Reset-Secret header' });
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
firebase_functions_1.logger.info('E2E reset authorized, starting reset process...');
|
|
222
|
+
const result = await executeE2EReset(config);
|
|
223
|
+
res.status(200).json(result);
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
firebase_functions_1.logger.error('E2E reset failed:', error);
|
|
227
|
+
res.status(500).json({
|
|
228
|
+
success: false,
|
|
229
|
+
error: error instanceof Error ? error.message : 'Unknown error during E2E reset',
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=e2e-reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2e-reset.js","sourceRoot":"","sources":["../../../src/modules/e2e/e2e-reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/e2e/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* E2E Testing Module
|
|
4
|
+
*
|
|
5
|
+
* Provides Cloud Functions for E2E testing support.
|
|
6
|
+
* These functions should only be deployed to test environments.
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
__exportStar(require("./e2e-reset"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/e2e/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,8CAA4B"}
|
|
@@ -2,4 +2,20 @@ export declare function createSendEmailFunction(): import("firebase-functions/v2
|
|
|
2
2
|
success: boolean;
|
|
3
3
|
messageId: string | undefined;
|
|
4
4
|
}>, unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Factory for sendWelcomeEmail Cloud Function
|
|
7
|
+
* Sends a welcome email to a user
|
|
8
|
+
*/
|
|
9
|
+
export declare function createSendWelcomeEmailFunction(): import("firebase-functions/v2/https").CallableFunction<any, Promise<{
|
|
10
|
+
success: boolean;
|
|
11
|
+
messageId: string | undefined;
|
|
12
|
+
}>, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Factory for sendPasswordResetEmail Cloud Function
|
|
15
|
+
* Generates a password reset link and sends it via email
|
|
16
|
+
*/
|
|
17
|
+
export declare function createSendPasswordResetEmailFunction(): import("firebase-functions/v2/https").CallableFunction<any, Promise<{
|
|
18
|
+
success: boolean;
|
|
19
|
+
message: string;
|
|
20
|
+
}>, unknown>;
|
|
5
21
|
//# sourceMappingURL=email.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":"AAQA,wBAAgB,uBAAuB;;;aA4FtC"}
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":"AAQA,wBAAgB,uBAAuB;;;aA4FtC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B;;;aAuD7C;AAED;;;GAGG;AACH,wBAAgB,oCAAoC;;;aAgEnD"}
|
|
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.createSendEmailFunction = createSendEmailFunction;
|
|
37
|
+
exports.createSendWelcomeEmailFunction = createSendWelcomeEmailFunction;
|
|
38
|
+
exports.createSendPasswordResetEmailFunction = createSendPasswordResetEmailFunction;
|
|
37
39
|
const logger = __importStar(require("firebase-functions/logger"));
|
|
38
40
|
const https_1 = require("firebase-functions/v2/https");
|
|
39
41
|
const config_1 = require("../../config");
|
|
@@ -102,4 +104,94 @@ function createSendEmailFunction() {
|
|
|
102
104
|
}
|
|
103
105
|
});
|
|
104
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Factory for sendWelcomeEmail Cloud Function
|
|
109
|
+
* Sends a welcome email to a user
|
|
110
|
+
*/
|
|
111
|
+
function createSendWelcomeEmailFunction() {
|
|
112
|
+
const config = (0, config_1.getConfig)();
|
|
113
|
+
return (0, https_1.onCall)({ region: config.region, enforceAppCheck: config.enforceAppCheck }, async (request) => {
|
|
114
|
+
if (!request.auth) {
|
|
115
|
+
throw new https_1.HttpsError('unauthenticated', 'A felhasználónak be kell jelentkeznie az email küldéséhez.');
|
|
116
|
+
}
|
|
117
|
+
const { email, displayName, firstName, lastName, loginUrl } = request.data;
|
|
118
|
+
if (!email) {
|
|
119
|
+
throw new https_1.HttpsError('invalid-argument', 'Az email cím megadása kötelező.');
|
|
120
|
+
}
|
|
121
|
+
if (!(0, email_validator_1.validateEmail)(email)) {
|
|
122
|
+
throw new https_1.HttpsError('invalid-argument', 'Érvénytelen email cím.');
|
|
123
|
+
}
|
|
124
|
+
const userName = displayName || `${firstName || ''} ${lastName || ''}`.trim() || 'Felhasználó';
|
|
125
|
+
const link = loginUrl || config.defaultLoginUrl;
|
|
126
|
+
try {
|
|
127
|
+
const result = await email_service_1.emailService.sendWelcomeEmail(email, userName, link);
|
|
128
|
+
if (!result.success) {
|
|
129
|
+
logger.error('Welcome email sending failed:', result.error);
|
|
130
|
+
throw new https_1.HttpsError('internal', `Email küldése sikertelen: ${result.error}`);
|
|
131
|
+
}
|
|
132
|
+
logger.info('Welcome email sent successfully:', result.messageId);
|
|
133
|
+
return {
|
|
134
|
+
success: true,
|
|
135
|
+
messageId: result.messageId,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
logger.error('Error sending welcome email:', error);
|
|
140
|
+
if (error instanceof https_1.HttpsError) {
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
throw new https_1.HttpsError('internal', 'Hiba történt az üdvözlő email küldése során.');
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Factory for sendPasswordResetEmail Cloud Function
|
|
149
|
+
* Generates a password reset link and sends it via email
|
|
150
|
+
*/
|
|
151
|
+
function createSendPasswordResetEmailFunction() {
|
|
152
|
+
const config = (0, config_1.getConfig)();
|
|
153
|
+
return (0, https_1.onCall)({ region: config.region, enforceAppCheck: config.enforceAppCheck }, async (request) => {
|
|
154
|
+
// This function can be called without auth (for password reset requests)
|
|
155
|
+
const { email, userName } = request.data;
|
|
156
|
+
if (!email) {
|
|
157
|
+
throw new https_1.HttpsError('invalid-argument', 'Az email cím megadása kötelező.');
|
|
158
|
+
}
|
|
159
|
+
if (!(0, email_validator_1.validateEmail)(email)) {
|
|
160
|
+
throw new https_1.HttpsError('invalid-argument', 'Érvénytelen email cím.');
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
// Generate password reset link using Firebase Admin SDK
|
|
164
|
+
const { getAuth } = await Promise.resolve().then(() => __importStar(require('firebase-admin/auth')));
|
|
165
|
+
const auth = getAuth();
|
|
166
|
+
const resetLink = await auth.generatePasswordResetLink(email, {
|
|
167
|
+
url: config.defaultLoginUrl,
|
|
168
|
+
});
|
|
169
|
+
const result = await email_service_1.emailService.sendPasswordResetEmail(email, resetLink, userName);
|
|
170
|
+
if (!result.success) {
|
|
171
|
+
logger.error('Password reset email sending failed:', result.error);
|
|
172
|
+
throw new https_1.HttpsError('internal', `Email küldése sikertelen: ${result.error}`);
|
|
173
|
+
}
|
|
174
|
+
logger.info('Password reset email sent successfully:', result.messageId);
|
|
175
|
+
return {
|
|
176
|
+
success: true,
|
|
177
|
+
message: 'Jelszó visszaállítási email elküldve.',
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
logger.error('Error sending password reset email:', error);
|
|
182
|
+
// Handle user not found error gracefully (don't reveal if user exists)
|
|
183
|
+
if ((error === null || error === void 0 ? void 0 : error.code) === 'auth/user-not-found') {
|
|
184
|
+
// Return success to prevent user enumeration
|
|
185
|
+
return {
|
|
186
|
+
success: true,
|
|
187
|
+
message: 'Ha a megadott email cím regisztrálva van, hamarosan megkapja a jelszó visszaállítási linket.',
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
if (error instanceof https_1.HttpsError) {
|
|
191
|
+
throw error;
|
|
192
|
+
}
|
|
193
|
+
throw new https_1.HttpsError('internal', 'Hiba történt a jelszó visszaállítási email küldése során.');
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
105
197
|
//# sourceMappingURL=email.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0DA4FC;
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/modules/email/email.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbnail-functions.d.ts","sourceRoot":"","sources":["../../../src/modules/storage/thumbnail-functions.ts"],"names":[],"mappings":"AAiBA,UAAU,wBAAwB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiTD,wBAAgB,+BAA+B,
|
|
1
|
+
{"version":3,"file":"thumbnail-functions.d.ts","sourceRoot":"","sources":["../../../src/modules/storage/thumbnail-functions.ts"],"names":[],"mappings":"AAiBA,UAAU,wBAAwB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiTD,wBAAgB,+BAA+B,mGAkP9C"}
|
|
@@ -373,7 +373,10 @@ function createGenerateThumbnailFunction() {
|
|
|
373
373
|
const [exists] = await thumb.exists();
|
|
374
374
|
if (exists && !force) {
|
|
375
375
|
const thumbUrl = await ensureDownloadUrl(bucket.name, thumbObjectPath);
|
|
376
|
-
firebase_functions_1.logger.info('Thumbnail already exists, skipping', {
|
|
376
|
+
firebase_functions_1.logger.info('Thumbnail already exists, skipping', {
|
|
377
|
+
path: objectPath,
|
|
378
|
+
thumbPath: thumbUrl,
|
|
379
|
+
});
|
|
377
380
|
const updated = await updateDocumentWithThumb(documentId, isHttpUrl(originalInput) ? originalInput : undefined, thumbUrl);
|
|
378
381
|
const result = {
|
|
379
382
|
success: true,
|
|
@@ -426,7 +429,12 @@ function createGenerateThumbnailFunction() {
|
|
|
426
429
|
// Process image -> webp thumbnail
|
|
427
430
|
outputBuffer = await sharp(processBuffer)
|
|
428
431
|
.rotate()
|
|
429
|
-
.resize({
|
|
432
|
+
.resize({
|
|
433
|
+
width: maxWidth,
|
|
434
|
+
height: maxHeight,
|
|
435
|
+
fit: 'inside',
|
|
436
|
+
withoutEnlargement: true,
|
|
437
|
+
})
|
|
430
438
|
.webp({ quality: 82 })
|
|
431
439
|
.toBuffer();
|
|
432
440
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbnail-functions.js","sourceRoot":"","sources":["../../../src/modules/storage/thumbnail-functions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thumbnail-functions.js","sourceRoot":"","sources":["../../../src/modules/storage/thumbnail-functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User Auth Triggers
|
|
3
|
+
*
|
|
4
|
+
* Firebase Auth triggers that automatically create/sync user documents
|
|
5
|
+
* when users sign up with any provider (email, Google, etc.)
|
|
6
|
+
*/
|
|
7
|
+
import { beforeUserCreated, beforeUserSignedIn } from 'firebase-functions/v2/identity';
|
|
8
|
+
export interface UserAuthTriggersConfig {
|
|
9
|
+
region?: string;
|
|
10
|
+
defaultRoleId?: string;
|
|
11
|
+
firestoreDatabaseId?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a factory for the beforeUserCreated trigger
|
|
15
|
+
* This trigger runs before a new user is created in Firebase Auth
|
|
16
|
+
* It can be used to validate or modify the user data
|
|
17
|
+
*/
|
|
18
|
+
export declare function createBeforeUserCreatedFunction(triggerConfig?: UserAuthTriggersConfig): ReturnType<typeof beforeUserCreated>;
|
|
19
|
+
/**
|
|
20
|
+
* Create a factory for the beforeUserSignedIn trigger
|
|
21
|
+
* This trigger runs every time a user signs in
|
|
22
|
+
* We use it to ensure the user document exists in Firestore
|
|
23
|
+
*/
|
|
24
|
+
export declare function createBeforeUserSignedInFunction(triggerConfig?: UserAuthTriggersConfig): ReturnType<typeof beforeUserSignedIn>;
|
|
25
|
+
//# sourceMappingURL=user-auth.triggers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-auth.triggers.d.ts","sourceRoot":"","sources":["../../../src/modules/user/user-auth.triggers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKvF,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAWD;;;;GAIG;AAEH,wBAAgB,+BAA+B,CAC7C,aAAa,GAAE,sBAA2B,GACzC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAoBtC;AAED;;;;GAIG;AAEH,wBAAgB,gCAAgC,CAC9C,aAAa,GAAE,sBAA2B,GACzC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CA0EvC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* User Auth Triggers
|
|
4
|
+
*
|
|
5
|
+
* Firebase Auth triggers that automatically create/sync user documents
|
|
6
|
+
* when users sign up with any provider (email, Google, etc.)
|
|
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.createBeforeUserCreatedFunction = createBeforeUserCreatedFunction;
|
|
43
|
+
exports.createBeforeUserSignedInFunction = createBeforeUserSignedInFunction;
|
|
44
|
+
const firestore_1 = require("firebase-admin/firestore");
|
|
45
|
+
const logger = __importStar(require("firebase-functions/logger"));
|
|
46
|
+
const identity_1 = require("firebase-functions/v2/identity");
|
|
47
|
+
const config_1 = require("../../config");
|
|
48
|
+
const user_models_1 = require("./user.models");
|
|
49
|
+
/**
|
|
50
|
+
* Get Firestore instance based on config
|
|
51
|
+
*/
|
|
52
|
+
function getFirestoreInstance(config) {
|
|
53
|
+
return config.firestoreDatabaseId
|
|
54
|
+
? (0, firestore_1.getFirestore)(config.firestoreDatabaseId)
|
|
55
|
+
: (0, firestore_1.getFirestore)();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Create a factory for the beforeUserCreated trigger
|
|
59
|
+
* This trigger runs before a new user is created in Firebase Auth
|
|
60
|
+
* It can be used to validate or modify the user data
|
|
61
|
+
*/
|
|
62
|
+
// Return type is BlockingFunction from firebase-functions, using ReturnType for better compatibility
|
|
63
|
+
function createBeforeUserCreatedFunction(triggerConfig = {}) {
|
|
64
|
+
const config = (0, config_1.getConfig)();
|
|
65
|
+
const region = triggerConfig.region || config.region;
|
|
66
|
+
return (0, identity_1.beforeUserCreated)({ region }, async (event) => {
|
|
67
|
+
var _a;
|
|
68
|
+
const user = event.data;
|
|
69
|
+
if (!user) {
|
|
70
|
+
logger.warn('beforeUserCreated: No user data in event');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
logger.info('beforeUserCreated trigger fired:', {
|
|
74
|
+
uid: user.uid,
|
|
75
|
+
email: user.email,
|
|
76
|
+
provider: (_a = event.credential) === null || _a === void 0 ? void 0 : _a.providerId,
|
|
77
|
+
});
|
|
78
|
+
// Can add validation logic here if needed
|
|
79
|
+
// Return nothing to allow user creation to proceed
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Create a factory for the beforeUserSignedIn trigger
|
|
84
|
+
* This trigger runs every time a user signs in
|
|
85
|
+
* We use it to ensure the user document exists in Firestore
|
|
86
|
+
*/
|
|
87
|
+
// Return type is BlockingFunction from firebase-functions, using ReturnType for better compatibility
|
|
88
|
+
function createBeforeUserSignedInFunction(triggerConfig = {}) {
|
|
89
|
+
const config = (0, config_1.getConfig)();
|
|
90
|
+
const region = triggerConfig.region || config.region;
|
|
91
|
+
return (0, identity_1.beforeUserSignedIn)({ region }, async (event) => {
|
|
92
|
+
var _a, _b;
|
|
93
|
+
const user = event.data;
|
|
94
|
+
if (!user) {
|
|
95
|
+
logger.warn('beforeUserSignedIn: No user data in event');
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const providerId = ((_a = event.credential) === null || _a === void 0 ? void 0 : _a.providerId) || 'unknown';
|
|
99
|
+
logger.info('beforeUserSignedIn trigger fired:', {
|
|
100
|
+
uid: user.uid,
|
|
101
|
+
email: user.email,
|
|
102
|
+
provider: providerId,
|
|
103
|
+
});
|
|
104
|
+
// Check if user document exists in Firestore
|
|
105
|
+
const firestore = getFirestoreInstance(config);
|
|
106
|
+
const userDocRef = firestore.collection(user_models_1.USER_FEATURE_KEY).doc(user.uid);
|
|
107
|
+
const userDoc = await userDocRef.get();
|
|
108
|
+
if (!userDoc.exists) {
|
|
109
|
+
// Create user document for new OAuth users
|
|
110
|
+
logger.info('Creating user document for OAuth user:', user.uid);
|
|
111
|
+
const now = new Date().toISOString();
|
|
112
|
+
const defaultRoleId = triggerConfig.defaultRoleId || config.defaultUserRoleId;
|
|
113
|
+
// Parse display name into first/last name
|
|
114
|
+
const nameParts = (user.displayName || '').split(' ');
|
|
115
|
+
const firstName = nameParts[0] || '';
|
|
116
|
+
const lastName = nameParts.slice(1).join(' ') || '';
|
|
117
|
+
const userDocument = {
|
|
118
|
+
id: user.uid,
|
|
119
|
+
email: user.email || '',
|
|
120
|
+
displayName: user.displayName || ((_b = user.email) === null || _b === void 0 ? void 0 : _b.split('@')[0]) || 'User',
|
|
121
|
+
firstName,
|
|
122
|
+
lastName,
|
|
123
|
+
photoURL: user.photoURL || null,
|
|
124
|
+
phoneNumber: user.phoneNumber || null,
|
|
125
|
+
emailVerified: user.emailVerified || false,
|
|
126
|
+
authProvider: providerId,
|
|
127
|
+
roleIds: [defaultRoleId],
|
|
128
|
+
meta: {
|
|
129
|
+
createdAt: now,
|
|
130
|
+
updatedAt: now,
|
|
131
|
+
createdBy: 'auth-trigger',
|
|
132
|
+
updatedBy: 'auth-trigger',
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
await userDocRef.set(userDocument);
|
|
136
|
+
logger.info('User document created successfully:', user.uid);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// Optionally update some fields for existing users
|
|
140
|
+
const existingData = userDoc.data();
|
|
141
|
+
// Update photoURL if it changed (e.g., user updated their Google profile picture)
|
|
142
|
+
if (user.photoURL && (existingData === null || existingData === void 0 ? void 0 : existingData.photoURL) !== user.photoURL) {
|
|
143
|
+
await userDocRef.update({
|
|
144
|
+
photoURL: user.photoURL,
|
|
145
|
+
'meta.updatedAt': new Date().toISOString(),
|
|
146
|
+
'meta.updatedBy': 'auth-trigger',
|
|
147
|
+
});
|
|
148
|
+
logger.info('Updated user photoURL:', user.uid);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Return nothing to allow sign-in to proceed
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=user-auth.triggers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-auth.triggers.js","sourceRoot":"","sources":["../../../src/modules/user/user-auth.triggers.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,4 +61,30 @@ export declare function cleanupAuthUser(uid: string): Promise<void>;
|
|
|
61
61
|
*/
|
|
62
62
|
export declare function executeCreateUser(data: CreateUserData, config: AppConfig, firestore: Firestore, emailSvc: EmailService): Promise<CreateUserResponse>;
|
|
63
63
|
export declare function createCreateUserWithEmailFunction(): import("firebase-functions/v2/https").CallableFunction<any, Promise<CreateUserResponse>, unknown>;
|
|
64
|
+
/**
|
|
65
|
+
* Data for createUserAndSendPasswordReset function
|
|
66
|
+
*/
|
|
67
|
+
export interface CreateUserAndSendPasswordResetData {
|
|
68
|
+
email: string;
|
|
69
|
+
displayName?: string;
|
|
70
|
+
firstName?: string;
|
|
71
|
+
lastName?: string;
|
|
72
|
+
roleIds?: string[];
|
|
73
|
+
sendEmail?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Response for createUserAndSendPasswordReset function
|
|
77
|
+
*/
|
|
78
|
+
export interface CreateUserAndSendPasswordResetResponse {
|
|
79
|
+
success: boolean;
|
|
80
|
+
message: string;
|
|
81
|
+
uid?: string;
|
|
82
|
+
userId?: string;
|
|
83
|
+
emailSent?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Factory for createUserAndSendPasswordReset Cloud Function
|
|
87
|
+
* Creates a user with a random password and sends a password reset email
|
|
88
|
+
*/
|
|
89
|
+
export declare function createUserAndSendPasswordResetFunction(): import("firebase-functions/v2/https").CallableFunction<any, Promise<CreateUserAndSendPasswordResetResponse>, unknown>;
|
|
64
90
|
//# sourceMappingURL=user-management.d.ts.map
|
|
@@ -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,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,cAAc,EACpB,aAAa,EAAE,MAAM,GACpB,QAAQ,GAAG;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACtF,CA6BA;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAa3D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA+C7B;AAED,wBAAgB,iCAAiC,sGAiBhD"}
|
|
1
|
+
{"version":3,"file":"user-management.d.ts","sourceRoot":"","sources":["../../../src/modules/user/user-management.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,7 @@ exports.handleCreateUserError = handleCreateUserError;
|
|
|
41
41
|
exports.cleanupAuthUser = cleanupAuthUser;
|
|
42
42
|
exports.executeCreateUser = executeCreateUser;
|
|
43
43
|
exports.createCreateUserWithEmailFunction = createCreateUserWithEmailFunction;
|
|
44
|
+
exports.createUserAndSendPasswordResetFunction = createUserAndSendPasswordResetFunction;
|
|
44
45
|
const auth_1 = require("firebase-admin/auth");
|
|
45
46
|
const firestore_1 = require("firebase-admin/firestore");
|
|
46
47
|
const logger = __importStar(require("firebase-functions/logger"));
|
|
@@ -183,4 +184,94 @@ function createCreateUserWithEmailFunction() {
|
|
|
183
184
|
return executeCreateUser(request.data, config, firestore, email_service_1.emailService);
|
|
184
185
|
});
|
|
185
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Factory for createUserAndSendPasswordReset Cloud Function
|
|
189
|
+
* Creates a user with a random password and sends a password reset email
|
|
190
|
+
*/
|
|
191
|
+
function createUserAndSendPasswordResetFunction() {
|
|
192
|
+
const config = (0, config_1.getConfig)();
|
|
193
|
+
return (0, https_1.onCall)({ region: config.region, enforceAppCheck: config.enforceAppCheck }, async (request) => {
|
|
194
|
+
if (!request.auth) {
|
|
195
|
+
throw new https_1.HttpsError('unauthenticated', 'A felhasználónak be kell jelentkeznie.');
|
|
196
|
+
}
|
|
197
|
+
const data = request.data;
|
|
198
|
+
if (!data.email) {
|
|
199
|
+
throw new https_1.HttpsError('invalid-argument', 'Az email cím megadása kötelező.');
|
|
200
|
+
}
|
|
201
|
+
const firestore = config.firestoreDatabaseId
|
|
202
|
+
? (0, firestore_1.getFirestore)(config.firestoreDatabaseId)
|
|
203
|
+
: (0, firestore_1.getFirestore)();
|
|
204
|
+
const auth = (0, auth_1.getAuth)();
|
|
205
|
+
let userRecord;
|
|
206
|
+
try {
|
|
207
|
+
// Generate a random temporary password
|
|
208
|
+
const tempPassword = Math.random().toString(36).slice(-12) + 'A1!';
|
|
209
|
+
const displayName = data.displayName ||
|
|
210
|
+
`${data.firstName || ''} ${data.lastName || ''}`.trim() ||
|
|
211
|
+
data.email.split('@')[0];
|
|
212
|
+
// Create user in Firebase Auth
|
|
213
|
+
userRecord = await (0, user_1.createAuthUser)(data.email, displayName, tempPassword);
|
|
214
|
+
logger.info('User created in Auth with UID:', userRecord.uid);
|
|
215
|
+
// Create user document in Firestore
|
|
216
|
+
const now = new Date().toISOString();
|
|
217
|
+
const userDoc = {
|
|
218
|
+
id: userRecord.uid,
|
|
219
|
+
email: data.email,
|
|
220
|
+
displayName,
|
|
221
|
+
firstName: data.firstName || '',
|
|
222
|
+
lastName: data.lastName || '',
|
|
223
|
+
meta: {
|
|
224
|
+
createdAt: now,
|
|
225
|
+
updatedAt: now,
|
|
226
|
+
createdBy: request.auth.uid,
|
|
227
|
+
updatedBy: request.auth.uid,
|
|
228
|
+
},
|
|
229
|
+
roleIds: data.roleIds || [config.defaultUserRoleId],
|
|
230
|
+
};
|
|
231
|
+
await firestore.collection(user_models_1.USER_FEATURE_KEY).doc(userRecord.uid).set(userDoc);
|
|
232
|
+
logger.info('User document created in Firestore:', userRecord.uid);
|
|
233
|
+
// Send password reset email if requested (default: true)
|
|
234
|
+
let emailSent = false;
|
|
235
|
+
if (data.sendEmail !== false) {
|
|
236
|
+
try {
|
|
237
|
+
const resetLink = await auth.generatePasswordResetLink(data.email, {
|
|
238
|
+
url: config.defaultLoginUrl,
|
|
239
|
+
});
|
|
240
|
+
const result = await email_service_1.emailService.sendPasswordResetEmail(data.email, resetLink, displayName);
|
|
241
|
+
emailSent = result.success;
|
|
242
|
+
if (emailSent) {
|
|
243
|
+
logger.info('Password reset email sent successfully');
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
logger.warn('Failed to send password reset email:', result.error);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch (emailError) {
|
|
250
|
+
logger.error('Error sending password reset email:', emailError);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return {
|
|
254
|
+
success: true,
|
|
255
|
+
message: 'Felhasználó sikeresen létrehozva.',
|
|
256
|
+
uid: userRecord.uid,
|
|
257
|
+
userId: userRecord.uid,
|
|
258
|
+
emailSent,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
logger.error('Error creating user:', error);
|
|
263
|
+
// Cleanup if user was created in Auth but something failed
|
|
264
|
+
if (userRecord) {
|
|
265
|
+
await cleanupAuthUser(userRecord.uid);
|
|
266
|
+
}
|
|
267
|
+
if ((error === null || error === void 0 ? void 0 : error.code) === 'auth/email-already-exists') {
|
|
268
|
+
throw new https_1.HttpsError('already-exists', 'Ez az email cím már használatban van.');
|
|
269
|
+
}
|
|
270
|
+
if (error instanceof https_1.HttpsError) {
|
|
271
|
+
throw error;
|
|
272
|
+
}
|
|
273
|
+
throw new https_1.HttpsError('internal', 'Hiba történt a felhasználó létrehozása során.');
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}
|
|
186
277
|
//# sourceMappingURL=user-management.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-management.js","sourceRoot":"","sources":["../../../src/modules/user/user-management.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,wDAOC;AAKD,0CAKC;AAKD,8CAoCC;AAKD,oDAmBC;AAKD,sDAaC;AAKD,0CAQC;AAKD,8CAoDC;AAED,8EAiBC;
|
|
1
|
+
{"version":3,"file":"user-management.js","sourceRoot":"","sources":["../../../src/modules/user/user-management.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,wDAOC;AAKD,0CAKC;AAKD,8CAoCC;AAKD,oDAmBC;AAKD,sDAaC;AAKD,0CAQC;AAKD,8CAoDC;AAED,8EAiBC;AA6BD,wFA6GC;AA7WD,8CAA0D;AAC1D,wDAAmE;AACnE,kEAAoD;AACpD,uDAAiE;AAEjE,yCAAoD;AACpD,0DAAoE;AACpE,iCAAwC;AACxC,+CAAiD;AA2BjD;;GAEG;AACH,SAAgB,sBAAsB,CAAC,IAAoB;IACzD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrD,MAAM,IAAI,kBAAU,CAClB,kBAAkB,EAClB,uDAAuD,CACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,gBAAoC,EACpC,eAAuB;IAEvB,OAAO,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC;AAC/F,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,UAAsB,EACtB,IAAoB,EACpB,aAAqB;IAKrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,GAAG,GAGL;QACF,EAAE,EAAE,UAAU,CAAC,GAAG;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;QAC3E,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE;YACJ,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE,kBAAkB;SAC9B;QACD,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC;KACzC,CAAC;IAEF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CACxC,QAAsB,EACtB,KAAa,EACb,QAAgB,EAChB,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/E,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,kBAAU,CAAC,gBAAgB,EAAE,uCAAuC,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,kBAAU,CAClB,kBAAkB,EAClB,uDAAuD,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,kBAAU,CAAC,UAAU,EAAE,+CAA+C,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,cAAO,GAAE,CAAC;QACvB,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,IAAoB,EACpB,MAAiB,EACjB,SAAoB,EACpB,QAAsB;IAEtB,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC5E,IAAI,UAAkC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3D,UAAU,GAAG,MAAM,IAAA,qBAAc,EAC/B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,WAAW,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,EACxD,QAAQ,CACT,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC9E,MAAM,SAAS,CAAC,UAAU,CAAC,8BAAgB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9E,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QAEnE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC;YAC1D,SAAS,GAAG,MAAM,oBAAoB,CACpC,QAAQ,EACR,IAAI,CAAC,KAAK,EACV,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,EACpC,SAAS,CACV,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,KAAK,EAAE,UAAU,CAAC,KAAM;YACxB,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAE5C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAgB,iCAAiC;IAC/C,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAE3B,OAAO,IAAA,cAAM,EACX,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,EAClE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,kBAAU,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB;YAC1C,CAAC,CAAC,IAAA,wBAAY,EAAC,MAAM,CAAC,mBAAmB,CAAC;YAC1C,CAAC,CAAC,IAAA,wBAAY,GAAE,CAAC;QAEnB,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,4BAAY,CAAC,CAAC;IAC5F,CAAC,CACF,CAAC;AACJ,CAAC;AAyBD;;;GAGG;AACH,SAAgB,sCAAsC;IACpD,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAE3B,OAAO,IAAA,cAAM,EACX,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,EAClE,KAAK,EAAE,OAAO,EAAmD,EAAE;QACjE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,kBAAU,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAA0C,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,kBAAU,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB;YAC1C,CAAC,CAAC,IAAA,wBAAY,EAAC,MAAM,CAAC,mBAAmB,CAAC;YAC1C,CAAC,CAAC,IAAA,wBAAY,GAAE,CAAC;QAEnB,MAAM,IAAI,GAAG,IAAA,cAAO,GAAE,CAAC;QACvB,IAAI,UAAkC,CAAC;QAEvC,IAAI,CAAC;YACH,uCAAuC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAEnE,MAAM,WAAW,GACf,IAAI,CAAC,WAAW;gBAChB,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACvD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3B,+BAA+B;YAC/B,UAAU,GAAG,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YAEzE,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YAE9D,oCAAoC;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,UAAU,CAAC,GAAG;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gBAC7B,IAAI,EAAE;oBACJ,SAAS,EAAE,GAAG;oBACd,SAAS,EAAE,GAAG;oBACd,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;oBAC3B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;iBAC5B;gBACD,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;aACpD,CAAC;YAEF,MAAM,SAAS,CAAC,UAAU,CAAC,8BAAgB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9E,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YAEnE,yDAAyD;YACzD,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE;wBACjE,GAAG,EAAE,MAAM,CAAC,eAAe;qBAC5B,CAAC,CAAC;oBAEH,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,sBAAsB,CACtD,IAAI,CAAC,KAAK,EACV,SAAS,EACT,WAAW,CACZ,CAAC;oBAEF,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC3B,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,UAAU,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,mCAAmC;gBAC5C,GAAG,EAAE,UAAU,CAAC,GAAG;gBACnB,MAAM,EAAE,UAAU,CAAC,GAAG;gBACtB,SAAS;aACV,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAE5C,2DAA2D;YAC3D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,2BAA2B,EAAE,CAAC;gBAChD,MAAM,IAAI,kBAAU,CAAC,gBAAgB,EAAE,uCAAuC,CAAC,CAAC;YAClF,CAAC;YAED,IAAI,KAAK,YAAY,kBAAU,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,IAAI,kBAAU,CAAC,UAAU,EAAE,+CAA+C,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zssz-soft/firebase-functions-shared",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.8",
|
|
4
4
|
"description": "Shared Firebase Cloud Functions modules for LodgeFlow applications",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"node": ">=18.0.0"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"firebase-admin": "^
|
|
50
|
-
"firebase-functions": "^
|
|
49
|
+
"firebase-admin": "^13.6.0",
|
|
50
|
+
"firebase-functions": "^7.0.2",
|
|
51
51
|
"googleapis": "^165.0.0",
|
|
52
52
|
"heic-convert": "^2.1.0",
|
|
53
53
|
"nodemailer": "^7.0.10",
|
|
@@ -63,10 +63,6 @@
|
|
|
63
63
|
"ts-jest": "^29.4.5",
|
|
64
64
|
"typescript": "^5.0.0"
|
|
65
65
|
},
|
|
66
|
-
"peerDependencies": {
|
|
67
|
-
"firebase-admin": "^12.0.0",
|
|
68
|
-
"firebase-functions": "^6.6.0"
|
|
69
|
-
},
|
|
70
66
|
"publishConfig": {
|
|
71
67
|
"access": "public"
|
|
72
68
|
}
|