@dereekb/firebase-server 13.12.4 → 13.12.5

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/index.cjs.js CHANGED
@@ -265,6 +265,12 @@ function _type_of$7(obj) {
265
265
  *
266
266
  * @param input - The value to check.
267
267
  * @returns `true` if the input is a Firebase {@link HttpsError}.
268
+ *
269
+ * @dbxUtil
270
+ * @dbxUtilCategory firebase-error
271
+ * @dbxUtilKind function
272
+ * @dbxUtilTags firebase, https, error, type-guard, server, callable
273
+ * @dbxUtilRelated is-firebase-error, firebase-server-error-info
268
274
  */ function isFirebaseHttpsError(input) {
269
275
  return (typeof input === "undefined" ? "undefined" : _type_of$7(input)) === 'object' && input != null && 'code' in input && 'httpErrorCode' in input && 'toJSON' in input;
270
276
  }
@@ -273,6 +279,12 @@ function _type_of$7(obj) {
273
279
  *
274
280
  * @param input - The value to check.
275
281
  * @returns `true` if the input is a Firebase Admin {@link admin.FirebaseError}.
282
+ *
283
+ * @dbxUtil
284
+ * @dbxUtilCategory firebase-error
285
+ * @dbxUtilKind function
286
+ * @dbxUtilTags firebase, admin, error, type-guard, server
287
+ * @dbxUtilRelated is-firebase-https-error, firebase-server-error-info
276
288
  */ function isFirebaseError(input) {
277
289
  return (typeof input === "undefined" ? "undefined" : _type_of$7(input)) === 'object' && input != null && 'code' in input && 'message' in input && 'toJSON' in input;
278
290
  }
@@ -285,6 +297,12 @@ function _type_of$7(obj) {
285
297
  * @param e - The caught error to analyze.
286
298
  * @returns Structured {@link FirebaseServerErrorInfo} with classified error details.
287
299
  *
300
+ * @dbxUtil
301
+ * @dbxUtilCategory firebase-error
302
+ * @dbxUtilKind function
303
+ * @dbxUtilTags firebase, error, decode, analyze, https, admin, server, classify, server-error
304
+ * @dbxUtilRelated firebase-server-error-info-code-pair, firebase-server-error-info-server-error-pair, firebase-server-error-info-server-error-code-pair, is-firebase-https-error, is-firebase-error
305
+ *
288
306
  * @example
289
307
  * ```typescript
290
308
  * try {
@@ -331,6 +349,12 @@ function _type_of$7(obj) {
331
349
  *
332
350
  * @param e - The caught error to analyze.
333
351
  * @returns A tuple of the Firebase error code (if present) and the full error info.
352
+ *
353
+ * @dbxUtil
354
+ * @dbxUtilCategory firebase-error
355
+ * @dbxUtilKind function
356
+ * @dbxUtilTags firebase, error, code, pair, tuple, pattern-match, decode
357
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-server-error-pair, firebase-server-error-info-server-error-code-pair
334
358
  */ function firebaseServerErrorInfoCodePair(e) {
335
359
  var info = firebaseServerErrorInfo(e);
336
360
  return [
@@ -343,6 +367,12 @@ function _type_of$7(obj) {
343
367
  *
344
368
  * @param e - The caught error to analyze.
345
369
  * @returns A tuple of the server error (if present) and the full error info.
370
+ *
371
+ * @dbxUtil
372
+ * @dbxUtilCategory firebase-error
373
+ * @dbxUtilKind function
374
+ * @dbxUtilTags firebase, error, server-error, pair, tuple, pattern-match, decode, details
375
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-code-pair, firebase-server-error-info-server-error-code-pair
346
376
  */ function firebaseServerErrorInfoServerErrorPair(e) {
347
377
  var info = firebaseServerErrorInfo(e);
348
378
  return [
@@ -355,6 +385,12 @@ function _type_of$7(obj) {
355
385
  *
356
386
  * @param e - The caught error to analyze.
357
387
  * @returns A tuple of the server error code (if present) and the full error info.
388
+ *
389
+ * @dbxUtil
390
+ * @dbxUtilCategory firebase-error
391
+ * @dbxUtilKind function
392
+ * @dbxUtilTags firebase, error, server-error, code, string-code, pair, tuple, pattern-match, decode
393
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-code-pair, firebase-server-error-info-server-error-pair
358
394
  */ function firebaseServerErrorInfoServerErrorCodePair(e) {
359
395
  var info = firebaseServerErrorInfo(e);
360
396
  return [
@@ -369,6 +405,12 @@ function _type_of$7(obj) {
369
405
  *
370
406
  * @param e - The caught error.
371
407
  * @param handleFirebaseErrorFn - Handler that receives the typed {@link admin.FirebaseError}.
408
+ *
409
+ * @dbxUtil
410
+ * @dbxUtilCategory firebase-error
411
+ * @dbxUtilKind function
412
+ * @dbxUtilTags firebase, admin, error, handler, catch, conditional, rethrow
413
+ * @dbxUtilRelated is-firebase-error, firebase-server-error-info
372
414
  */ function handleFirebaseError(e, handleFirebaseErrorFn) {
373
415
  var firebaseError = e.code ? e : undefined;
374
416
  if (firebaseError) {
@@ -1337,11 +1379,43 @@ function _ts_generator$g(thisArg, body) {
1337
1379
  key: "updateUser",
1338
1380
  value: function updateUser(template) {
1339
1381
  return _async_to_generator$g(function() {
1382
+ var e, firebaseError, errorCode, email, phoneNumber;
1340
1383
  return _ts_generator$g(this, function(_state) {
1341
- return [
1342
- 2,
1343
- this.service.auth.updateUser(this.uid, template)
1344
- ];
1384
+ switch(_state.label){
1385
+ case 0:
1386
+ _state.trys.push([
1387
+ 0,
1388
+ 2,
1389
+ ,
1390
+ 3
1391
+ ]);
1392
+ return [
1393
+ 4,
1394
+ this.service.auth.updateUser(this.uid, template)
1395
+ ];
1396
+ case 1:
1397
+ return [
1398
+ 2,
1399
+ _state.sent()
1400
+ ];
1401
+ case 2:
1402
+ e = _state.sent();
1403
+ firebaseError = e;
1404
+ errorCode = firebaseError.code;
1405
+ email = template.email, phoneNumber = template.phoneNumber;
1406
+ if (errorCode === firebase.FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR && phoneNumber) {
1407
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'phone', phoneNumber);
1408
+ } else if (errorCode === firebase.FIREBASE_AUTH_EMAIL_ALREADY_EXISTS_ERROR && email) {
1409
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'email', email);
1410
+ } else if (errorCode === firebase.FIREBASE_AUTH_INVALID_PHONE_NUMBER_ERROR && phoneNumber) {
1411
+ throw new FirebaseServerAuthUserBadInputError(errorCode, phoneNumber);
1412
+ }
1413
+ throw e;
1414
+ case 3:
1415
+ return [
1416
+ 2
1417
+ ];
1418
+ }
1345
1419
  });
1346
1420
  }).call(this);
1347
1421
  }
package/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { timingSafeEqual } from 'node:crypto';
2
- import { DBX_FIREBASE_SERVER_NO_AUTH_ERROR_CODE, UNAUTHENTICATED_ERROR_CODE, FORBIDDEN_ERROR_CODE, PERMISSION_DENIED_ERROR_CODE, NOT_FOUND_ERROR_CODE, MODEL_NOT_AVAILABLE_ERROR_CODE, BAD_REQUEST_ERROR_CODE, CONFLICT_ERROR_CODE, ALREADY_EXISTS_ERROR_CODE, UNAVAILABLE_ERROR_CODE, UNAVAILABLE_OR_DEACTIVATED_FUNCTION_ERROR_CODE, INTERNAL_SERVER_ERROR_CODE, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, FIREBASE_SERVER_AUTH_CLAIMS_RESET_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_EXPIRES_AT_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_PASSWORD_KEY, FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR, FIREBASE_AUTH_EMAIL_ALREADY_EXISTS_ERROR, FIREBASE_AUTH_INVALID_PHONE_NUMBER_ERROR, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_LAST_COM_DATE_KEY, setIdAndKeyFromKeyIdRefOnDocumentData, DBX_FIREBASE_SERVER_PASSWORD_RESET_INVALID_CODE_ERROR_CODE, DBX_FIREBASE_SERVER_PASSWORD_RESET_NO_CONFIG_ERROR_CODE, DBX_FIREBASE_SERVER_PASSWORD_RESET_SEND_ONCE_ERROR_CODE, DBX_FIREBASE_SERVER_PASSWORD_RESET_THROTTLE_ERROR_CODE, FirestoreDocumentContextType, streamFromOnSnapshot, FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE, makeFirestoreQueryConstraintFunctionsDriver, firestoreContextFactory, firestoreField, optionalFirestoreField, DEFAULT_MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER, UNKNOWN_MODEL_TYPE_ERROR_CODE, BAD_DOCUMENT_QUERY_CURSOR_ERROR_CODE, limit, startAfter, DEFAULT_ON_CALL_QUERY_MODEL_LIMIT, MAX_ON_CALL_QUERY_MODEL_LIMIT, ScheduledFunctionDevelopmentFunctionTypeEnum, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, storageListFilesResultFactory, assertStorageUploadOptionsStringFormat, firebaseStorageContextFactory, inContextFirebaseModelsServiceFactory, useFirebaseModelsService } from '@dereekb/firebase';
2
+ import { DBX_FIREBASE_SERVER_NO_AUTH_ERROR_CODE, UNAUTHENTICATED_ERROR_CODE, FORBIDDEN_ERROR_CODE, PERMISSION_DENIED_ERROR_CODE, NOT_FOUND_ERROR_CODE, MODEL_NOT_AVAILABLE_ERROR_CODE, BAD_REQUEST_ERROR_CODE, CONFLICT_ERROR_CODE, ALREADY_EXISTS_ERROR_CODE, UNAVAILABLE_ERROR_CODE, UNAVAILABLE_OR_DEACTIVATED_FUNCTION_ERROR_CODE, INTERNAL_SERVER_ERROR_CODE, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, FIREBASE_SERVER_AUTH_CLAIMS_RESET_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_EXPIRES_AT_KEY, FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR, FIREBASE_AUTH_EMAIL_ALREADY_EXISTS_ERROR, FIREBASE_AUTH_INVALID_PHONE_NUMBER_ERROR, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_LAST_COM_DATE_KEY, setIdAndKeyFromKeyIdRefOnDocumentData, DBX_FIREBASE_SERVER_PASSWORD_RESET_INVALID_CODE_ERROR_CODE, DBX_FIREBASE_SERVER_PASSWORD_RESET_NO_CONFIG_ERROR_CODE, DBX_FIREBASE_SERVER_PASSWORD_RESET_SEND_ONCE_ERROR_CODE, DBX_FIREBASE_SERVER_PASSWORD_RESET_THROTTLE_ERROR_CODE, FirestoreDocumentContextType, streamFromOnSnapshot, FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE, makeFirestoreQueryConstraintFunctionsDriver, firestoreContextFactory, firestoreField, optionalFirestoreField, DEFAULT_MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER, UNKNOWN_MODEL_TYPE_ERROR_CODE, BAD_DOCUMENT_QUERY_CURSOR_ERROR_CODE, limit, startAfter, DEFAULT_ON_CALL_QUERY_MODEL_LIMIT, MAX_ON_CALL_QUERY_MODEL_LIMIT, ScheduledFunctionDevelopmentFunctionTypeEnum, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, storageListFilesResultFactory, assertStorageUploadOptionsStringFormat, firebaseStorageContextFactory, inContextFirebaseModelsServiceFactory, useFirebaseModelsService } from '@dereekb/firebase';
3
3
  import { partialServerError, isServerError, randomNumberFactory, cachedGetter, filterNullAndUndefinedValues, asSet, AUTH_ADMIN_ROLE, AUTH_TOS_SIGNED_ROLE, forEachKeyValue, KeyValueTypleValueFilter, filterUndefinedValues, isThrottled, mapObjectMap, batch, objectToMap, serverError, asArray, containsAllValues, websiteUrlDetails, mergeObjects, cronExpressionRepeatingEveryNMinutes, mapIdentityFunction, slashPathName, toRelativeSlashPathStartType, fixMultiSlashesInSlashPath, SLASH_PATH_SEPARATOR, objectHasNoKeys, websiteUrlFromPaths, pushItemOrArrayItemsIntoArray, makeGetter, asGetter, build, performAsyncTasks } from '@dereekb/util';
4
4
  import { HttpsError } from 'firebase-functions/https';
5
5
  import { hoursToMs, minutesToMs, toISODateString } from '@dereekb/date';
@@ -263,6 +263,12 @@ function _type_of$7(obj) {
263
263
  *
264
264
  * @param input - The value to check.
265
265
  * @returns `true` if the input is a Firebase {@link HttpsError}.
266
+ *
267
+ * @dbxUtil
268
+ * @dbxUtilCategory firebase-error
269
+ * @dbxUtilKind function
270
+ * @dbxUtilTags firebase, https, error, type-guard, server, callable
271
+ * @dbxUtilRelated is-firebase-error, firebase-server-error-info
266
272
  */ function isFirebaseHttpsError(input) {
267
273
  return (typeof input === "undefined" ? "undefined" : _type_of$7(input)) === 'object' && input != null && 'code' in input && 'httpErrorCode' in input && 'toJSON' in input;
268
274
  }
@@ -271,6 +277,12 @@ function _type_of$7(obj) {
271
277
  *
272
278
  * @param input - The value to check.
273
279
  * @returns `true` if the input is a Firebase Admin {@link admin.FirebaseError}.
280
+ *
281
+ * @dbxUtil
282
+ * @dbxUtilCategory firebase-error
283
+ * @dbxUtilKind function
284
+ * @dbxUtilTags firebase, admin, error, type-guard, server
285
+ * @dbxUtilRelated is-firebase-https-error, firebase-server-error-info
274
286
  */ function isFirebaseError(input) {
275
287
  return (typeof input === "undefined" ? "undefined" : _type_of$7(input)) === 'object' && input != null && 'code' in input && 'message' in input && 'toJSON' in input;
276
288
  }
@@ -283,6 +295,12 @@ function _type_of$7(obj) {
283
295
  * @param e - The caught error to analyze.
284
296
  * @returns Structured {@link FirebaseServerErrorInfo} with classified error details.
285
297
  *
298
+ * @dbxUtil
299
+ * @dbxUtilCategory firebase-error
300
+ * @dbxUtilKind function
301
+ * @dbxUtilTags firebase, error, decode, analyze, https, admin, server, classify, server-error
302
+ * @dbxUtilRelated firebase-server-error-info-code-pair, firebase-server-error-info-server-error-pair, firebase-server-error-info-server-error-code-pair, is-firebase-https-error, is-firebase-error
303
+ *
286
304
  * @example
287
305
  * ```typescript
288
306
  * try {
@@ -329,6 +347,12 @@ function _type_of$7(obj) {
329
347
  *
330
348
  * @param e - The caught error to analyze.
331
349
  * @returns A tuple of the Firebase error code (if present) and the full error info.
350
+ *
351
+ * @dbxUtil
352
+ * @dbxUtilCategory firebase-error
353
+ * @dbxUtilKind function
354
+ * @dbxUtilTags firebase, error, code, pair, tuple, pattern-match, decode
355
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-server-error-pair, firebase-server-error-info-server-error-code-pair
332
356
  */ function firebaseServerErrorInfoCodePair(e) {
333
357
  var info = firebaseServerErrorInfo(e);
334
358
  return [
@@ -341,6 +365,12 @@ function _type_of$7(obj) {
341
365
  *
342
366
  * @param e - The caught error to analyze.
343
367
  * @returns A tuple of the server error (if present) and the full error info.
368
+ *
369
+ * @dbxUtil
370
+ * @dbxUtilCategory firebase-error
371
+ * @dbxUtilKind function
372
+ * @dbxUtilTags firebase, error, server-error, pair, tuple, pattern-match, decode, details
373
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-code-pair, firebase-server-error-info-server-error-code-pair
344
374
  */ function firebaseServerErrorInfoServerErrorPair(e) {
345
375
  var info = firebaseServerErrorInfo(e);
346
376
  return [
@@ -353,6 +383,12 @@ function _type_of$7(obj) {
353
383
  *
354
384
  * @param e - The caught error to analyze.
355
385
  * @returns A tuple of the server error code (if present) and the full error info.
386
+ *
387
+ * @dbxUtil
388
+ * @dbxUtilCategory firebase-error
389
+ * @dbxUtilKind function
390
+ * @dbxUtilTags firebase, error, server-error, code, string-code, pair, tuple, pattern-match, decode
391
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-code-pair, firebase-server-error-info-server-error-pair
356
392
  */ function firebaseServerErrorInfoServerErrorCodePair(e) {
357
393
  var info = firebaseServerErrorInfo(e);
358
394
  return [
@@ -367,6 +403,12 @@ function _type_of$7(obj) {
367
403
  *
368
404
  * @param e - The caught error.
369
405
  * @param handleFirebaseErrorFn - Handler that receives the typed {@link admin.FirebaseError}.
406
+ *
407
+ * @dbxUtil
408
+ * @dbxUtilCategory firebase-error
409
+ * @dbxUtilKind function
410
+ * @dbxUtilTags firebase, admin, error, handler, catch, conditional, rethrow
411
+ * @dbxUtilRelated is-firebase-error, firebase-server-error-info
370
412
  */ function handleFirebaseError(e, handleFirebaseErrorFn) {
371
413
  var firebaseError = e.code ? e : undefined;
372
414
  if (firebaseError) {
@@ -1335,11 +1377,43 @@ function _ts_generator$g(thisArg, body) {
1335
1377
  key: "updateUser",
1336
1378
  value: function updateUser(template) {
1337
1379
  return _async_to_generator$g(function() {
1380
+ var e, firebaseError, errorCode, email, phoneNumber;
1338
1381
  return _ts_generator$g(this, function(_state) {
1339
- return [
1340
- 2,
1341
- this.service.auth.updateUser(this.uid, template)
1342
- ];
1382
+ switch(_state.label){
1383
+ case 0:
1384
+ _state.trys.push([
1385
+ 0,
1386
+ 2,
1387
+ ,
1388
+ 3
1389
+ ]);
1390
+ return [
1391
+ 4,
1392
+ this.service.auth.updateUser(this.uid, template)
1393
+ ];
1394
+ case 1:
1395
+ return [
1396
+ 2,
1397
+ _state.sent()
1398
+ ];
1399
+ case 2:
1400
+ e = _state.sent();
1401
+ firebaseError = e;
1402
+ errorCode = firebaseError.code;
1403
+ email = template.email, phoneNumber = template.phoneNumber;
1404
+ if (errorCode === FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR && phoneNumber) {
1405
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'phone', phoneNumber);
1406
+ } else if (errorCode === FIREBASE_AUTH_EMAIL_ALREADY_EXISTS_ERROR && email) {
1407
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'email', email);
1408
+ } else if (errorCode === FIREBASE_AUTH_INVALID_PHONE_NUMBER_ERROR && phoneNumber) {
1409
+ throw new FirebaseServerAuthUserBadInputError(errorCode, phoneNumber);
1410
+ }
1411
+ throw e;
1412
+ case 3:
1413
+ return [
1414
+ 2
1415
+ ];
1416
+ }
1343
1417
  });
1344
1418
  }).call(this);
1345
1419
  }
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/mailgun",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.12.4",
6
- "@dereekb/firebase": "13.12.4",
7
- "@dereekb/firebase-server": "13.12.4",
8
- "@dereekb/date": "13.12.4",
9
- "@dereekb/nestjs": "13.12.4",
10
- "@dereekb/model": "13.12.4",
11
- "@dereekb/rxjs": "13.12.4",
12
- "@dereekb/util": "13.12.4"
5
+ "@dereekb/analytics": "13.12.5",
6
+ "@dereekb/firebase": "13.12.5",
7
+ "@dereekb/firebase-server": "13.12.5",
8
+ "@dereekb/date": "13.12.5",
9
+ "@dereekb/nestjs": "13.12.5",
10
+ "@dereekb/model": "13.12.5",
11
+ "@dereekb/rxjs": "13.12.5",
12
+ "@dereekb/util": "13.12.5"
13
13
  },
14
14
  "exports": {
15
15
  "./package.json": "./package.json",
package/mcp/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/mcp",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.12.4",
6
- "@dereekb/date": "13.12.4",
7
- "@dereekb/firebase": "13.12.4",
8
- "@dereekb/firebase-server": "13.12.4",
9
- "@dereekb/firebase-server/oidc": "13.12.4",
10
- "@dereekb/model": "13.12.4",
11
- "@dereekb/nestjs": "13.12.4",
12
- "@dereekb/rxjs": "13.12.4",
13
- "@dereekb/util": "13.12.4",
14
- "@dereekb/zoho": "13.12.4",
5
+ "@dereekb/analytics": "13.12.5",
6
+ "@dereekb/date": "13.12.5",
7
+ "@dereekb/firebase": "13.12.5",
8
+ "@dereekb/firebase-server": "13.12.5",
9
+ "@dereekb/firebase-server/oidc": "13.12.5",
10
+ "@dereekb/model": "13.12.5",
11
+ "@dereekb/nestjs": "13.12.5",
12
+ "@dereekb/rxjs": "13.12.5",
13
+ "@dereekb/util": "13.12.5",
14
+ "@dereekb/zoho": "13.12.5",
15
15
  "@modelcontextprotocol/sdk": "1.29.0",
16
16
  "@nestjs/common": "^11.1.19",
17
17
  "@nestjs/core": "^11.1.19",
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/model",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.12.4",
6
- "@dereekb/date": "13.12.4",
7
- "@dereekb/firebase": "13.12.4",
8
- "@dereekb/firebase-server": "13.12.4",
9
- "@dereekb/model": "13.12.4",
10
- "@dereekb/nestjs": "13.12.4",
11
- "@dereekb/rxjs": "13.12.4",
12
- "@dereekb/util": "13.12.4",
5
+ "@dereekb/analytics": "13.12.5",
6
+ "@dereekb/date": "13.12.5",
7
+ "@dereekb/firebase": "13.12.5",
8
+ "@dereekb/firebase-server": "13.12.5",
9
+ "@dereekb/model": "13.12.5",
10
+ "@dereekb/nestjs": "13.12.5",
11
+ "@dereekb/rxjs": "13.12.5",
12
+ "@dereekb/util": "13.12.5",
13
13
  "@nestjs/common": "^11.1.19",
14
14
  "@nestjs/config": "^4.0.4",
15
15
  "archiver": "^7.0.1",
package/oidc/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/oidc",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.12.4",
6
- "@dereekb/date": "13.12.4",
7
- "@dereekb/firebase": "13.12.4",
8
- "@dereekb/firebase-server": "13.12.4",
9
- "@dereekb/model": "13.12.4",
10
- "@dereekb/nestjs": "13.12.4",
11
- "@dereekb/rxjs": "13.12.4",
12
- "@dereekb/util": "13.12.4",
13
- "@dereekb/zoho": "13.12.4",
5
+ "@dereekb/analytics": "13.12.5",
6
+ "@dereekb/date": "13.12.5",
7
+ "@dereekb/firebase": "13.12.5",
8
+ "@dereekb/firebase-server": "13.12.5",
9
+ "@dereekb/model": "13.12.5",
10
+ "@dereekb/nestjs": "13.12.5",
11
+ "@dereekb/rxjs": "13.12.5",
12
+ "@dereekb/util": "13.12.5",
13
+ "@dereekb/zoho": "13.12.5",
14
14
  "@nestjs/common": "^11.1.19",
15
15
  "@nestjs/config": "^4.0.4",
16
16
  "express": "^5.2.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "sideEffects": false,
5
5
  "exports": {
6
6
  "./test": {
@@ -57,15 +57,15 @@
57
57
  "types": "./src/index.d.ts",
58
58
  "peerDependencies": {
59
59
  "@cantoo/pdf-lib": "^2.6.5",
60
- "@dereekb/analytics": "13.12.4",
61
- "@dereekb/date": "13.12.4",
62
- "@dereekb/dbx-core": "13.12.4",
63
- "@dereekb/firebase": "13.12.4",
64
- "@dereekb/model": "13.12.4",
65
- "@dereekb/nestjs": "13.12.4",
66
- "@dereekb/rxjs": "13.12.4",
67
- "@dereekb/util": "13.12.4",
68
- "@dereekb/zoho": "13.12.4",
60
+ "@dereekb/analytics": "13.12.5",
61
+ "@dereekb/date": "13.12.5",
62
+ "@dereekb/dbx-core": "13.12.5",
63
+ "@dereekb/firebase": "13.12.5",
64
+ "@dereekb/model": "13.12.5",
65
+ "@dereekb/nestjs": "13.12.5",
66
+ "@dereekb/rxjs": "13.12.5",
67
+ "@dereekb/util": "13.12.5",
68
+ "@dereekb/zoho": "13.12.5",
69
69
  "@google-cloud/firestore": "^7.11.6",
70
70
  "@google-cloud/storage": "^7.19.0",
71
71
  "@modelcontextprotocol/sdk": "1.29.0",
@@ -90,7 +90,14 @@ export interface FirebaseServerAuthUserContext extends FirebaseServerAuthUserIde
90
90
  /**
91
91
  * Applies an arbitrary update to the user's Firebase Auth record.
92
92
  *
93
+ * When Firebase rejects the update because the new email or phone number is already
94
+ * associated with another account, throws a typed {@link FirebaseServerAuthUserExistsError}
95
+ * (with `identifierType` set to `'email'` or `'phone'`). When the phone number is malformed,
96
+ * throws a {@link FirebaseServerAuthUserBadInputError}. All other errors propagate unchanged.
97
+ *
93
98
  * @param template - The update fields to apply.
99
+ * @throws {FirebaseServerAuthUserExistsError} When the email/phone is already in use.
100
+ * @throws {FirebaseServerAuthUserBadInputError} When the phone number is invalid.
94
101
  */
95
102
  updateUser(template: admin.auth.UpdateRequest): Promise<admin.auth.UserRecord>;
96
103
  /**
@@ -136,6 +136,12 @@ export interface FirebaseServerErrorInfo {
136
136
  *
137
137
  * @param input - The value to check.
138
138
  * @returns `true` if the input is a Firebase {@link HttpsError}.
139
+ *
140
+ * @dbxUtil
141
+ * @dbxUtilCategory firebase-error
142
+ * @dbxUtilKind function
143
+ * @dbxUtilTags firebase, https, error, type-guard, server, callable
144
+ * @dbxUtilRelated is-firebase-error, firebase-server-error-info
139
145
  */
140
146
  export declare function isFirebaseHttpsError(input: unknown | HttpsError): input is HttpsError;
141
147
  /**
@@ -143,6 +149,12 @@ export declare function isFirebaseHttpsError(input: unknown | HttpsError): input
143
149
  *
144
150
  * @param input - The value to check.
145
151
  * @returns `true` if the input is a Firebase Admin {@link admin.FirebaseError}.
152
+ *
153
+ * @dbxUtil
154
+ * @dbxUtilCategory firebase-error
155
+ * @dbxUtilKind function
156
+ * @dbxUtilTags firebase, admin, error, type-guard, server
157
+ * @dbxUtilRelated is-firebase-https-error, firebase-server-error-info
146
158
  */
147
159
  export declare function isFirebaseError(input: unknown | admin.FirebaseError): input is admin.FirebaseError;
148
160
  /**
@@ -154,6 +166,12 @@ export declare function isFirebaseError(input: unknown | admin.FirebaseError): i
154
166
  * @param e - The caught error to analyze.
155
167
  * @returns Structured {@link FirebaseServerErrorInfo} with classified error details.
156
168
  *
169
+ * @dbxUtil
170
+ * @dbxUtilCategory firebase-error
171
+ * @dbxUtilKind function
172
+ * @dbxUtilTags firebase, error, decode, analyze, https, admin, server, classify, server-error
173
+ * @dbxUtilRelated firebase-server-error-info-code-pair, firebase-server-error-info-server-error-pair, firebase-server-error-info-server-error-code-pair, is-firebase-https-error, is-firebase-error
174
+ *
157
175
  * @example
158
176
  * ```typescript
159
177
  * try {
@@ -170,6 +188,12 @@ export declare function firebaseServerErrorInfo(e: unknown): FirebaseServerError
170
188
  *
171
189
  * @param e - The caught error to analyze.
172
190
  * @returns A tuple of the Firebase error code (if present) and the full error info.
191
+ *
192
+ * @dbxUtil
193
+ * @dbxUtilCategory firebase-error
194
+ * @dbxUtilKind function
195
+ * @dbxUtilTags firebase, error, code, pair, tuple, pattern-match, decode
196
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-server-error-pair, firebase-server-error-info-server-error-code-pair
173
197
  */
174
198
  export declare function firebaseServerErrorInfoCodePair(e: unknown): [Maybe<FirebaseErrorCode>, FirebaseServerErrorInfo];
175
199
  /**
@@ -177,6 +201,12 @@ export declare function firebaseServerErrorInfoCodePair(e: unknown): [Maybe<Fire
177
201
  *
178
202
  * @param e - The caught error to analyze.
179
203
  * @returns A tuple of the server error (if present) and the full error info.
204
+ *
205
+ * @dbxUtil
206
+ * @dbxUtilCategory firebase-error
207
+ * @dbxUtilKind function
208
+ * @dbxUtilTags firebase, error, server-error, pair, tuple, pattern-match, decode, details
209
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-code-pair, firebase-server-error-info-server-error-code-pair
180
210
  */
181
211
  export declare function firebaseServerErrorInfoServerErrorPair(e: unknown): [Maybe<ServerError>, FirebaseServerErrorInfo];
182
212
  /**
@@ -184,6 +214,12 @@ export declare function firebaseServerErrorInfoServerErrorPair(e: unknown): [May
184
214
  *
185
215
  * @param e - The caught error to analyze.
186
216
  * @returns A tuple of the server error code (if present) and the full error info.
217
+ *
218
+ * @dbxUtil
219
+ * @dbxUtilCategory firebase-error
220
+ * @dbxUtilKind function
221
+ * @dbxUtilTags firebase, error, server-error, code, string-code, pair, tuple, pattern-match, decode
222
+ * @dbxUtilRelated firebase-server-error-info, firebase-server-error-info-code-pair, firebase-server-error-info-server-error-pair
187
223
  */
188
224
  export declare function firebaseServerErrorInfoServerErrorCodePair(e: unknown): [Maybe<StringErrorCode>, FirebaseServerErrorInfo];
189
225
  /**
@@ -193,5 +229,11 @@ export declare function firebaseServerErrorInfoServerErrorCodePair(e: unknown):
193
229
  *
194
230
  * @param e - The caught error.
195
231
  * @param handleFirebaseErrorFn - Handler that receives the typed {@link admin.FirebaseError}.
232
+ *
233
+ * @dbxUtil
234
+ * @dbxUtilCategory firebase-error
235
+ * @dbxUtilKind function
236
+ * @dbxUtilTags firebase, admin, error, handler, catch, conditional, rethrow
237
+ * @dbxUtilRelated is-firebase-error, firebase-server-error-info
196
238
  */
197
239
  export declare function handleFirebaseError(e: unknown, handleFirebaseErrorFn: ThrowErrorFunction<admin.FirebaseError>): never | void;
package/test/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/test",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.12.4",
6
- "@dereekb/date": "13.12.4",
7
- "@dereekb/firebase": "13.12.4",
8
- "@dereekb/firebase-server": "13.12.4",
9
- "@dereekb/firebase-server/oidc": "13.12.4",
10
- "@dereekb/model": "13.12.4",
11
- "@dereekb/nestjs": "13.12.4",
12
- "@dereekb/rxjs": "13.12.4",
13
- "@dereekb/util": "13.12.4",
5
+ "@dereekb/analytics": "13.12.5",
6
+ "@dereekb/date": "13.12.5",
7
+ "@dereekb/firebase": "13.12.5",
8
+ "@dereekb/firebase-server": "13.12.5",
9
+ "@dereekb/firebase-server/oidc": "13.12.5",
10
+ "@dereekb/model": "13.12.5",
11
+ "@dereekb/nestjs": "13.12.5",
12
+ "@dereekb/rxjs": "13.12.5",
13
+ "@dereekb/util": "13.12.5",
14
14
  "@google-cloud/firestore": "^7.11.6",
15
15
  "@google-cloud/storage": "^7.19.0",
16
16
  "@nestjs/common": "^11.1.19",
@@ -23,7 +23,7 @@
23
23
  "supertest": "^7.2.2"
24
24
  },
25
25
  "devDependencies": {
26
- "@dereekb/nestjs": "13.12.4"
26
+ "@dereekb/nestjs": "13.12.5"
27
27
  },
28
28
  "exports": {
29
29
  "./package.json": "./package.json",
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/twilio",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "peerDependencies": {
5
- "@dereekb/date": "13.12.4",
6
- "@dereekb/firebase": "13.12.4",
7
- "@dereekb/firebase-server": "13.12.4",
8
- "@dereekb/model": "13.12.4",
9
- "@dereekb/nestjs": "13.12.4",
10
- "@dereekb/rxjs": "13.12.4",
11
- "@dereekb/util": "13.12.4"
5
+ "@dereekb/date": "13.12.5",
6
+ "@dereekb/firebase": "13.12.5",
7
+ "@dereekb/firebase-server": "13.12.5",
8
+ "@dereekb/model": "13.12.5",
9
+ "@dereekb/nestjs": "13.12.5",
10
+ "@dereekb/rxjs": "13.12.5",
11
+ "@dereekb/util": "13.12.5"
12
12
  },
13
13
  "exports": {
14
14
  "./package.json": "./package.json",
package/zoho/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/zoho",
3
- "version": "13.12.4",
3
+ "version": "13.12.5",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.12.4",
6
- "@dereekb/date": "13.12.4",
7
- "@dereekb/model": "13.12.4",
8
- "@dereekb/nestjs": "13.12.4",
9
- "@dereekb/rxjs": "13.12.4",
10
- "@dereekb/firebase": "13.12.4",
11
- "@dereekb/util": "13.12.4",
12
- "@dereekb/zoho": "13.12.4"
5
+ "@dereekb/analytics": "13.12.5",
6
+ "@dereekb/date": "13.12.5",
7
+ "@dereekb/model": "13.12.5",
8
+ "@dereekb/nestjs": "13.12.5",
9
+ "@dereekb/rxjs": "13.12.5",
10
+ "@dereekb/firebase": "13.12.5",
11
+ "@dereekb/util": "13.12.5",
12
+ "@dereekb/zoho": "13.12.5"
13
13
  },
14
14
  "exports": {
15
15
  "./package.json": "./package.json",