@dereekb/firebase-server 13.4.0 → 13.4.1

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
@@ -612,6 +612,63 @@ function _is_native_reflect_construct$5() {
612
612
  return !!result;
613
613
  })();
614
614
  }
615
+ /**
616
+ * Thrown by {@link AbstractFirebaseServerNewUserService.createNewUser} when Firebase Auth rejects
617
+ * user creation because the provided phone number or email is already associated with another account.
618
+ *
619
+ * @example
620
+ * ```typescript
621
+ * try {
622
+ * await newUserService.initializeNewUser({ email, phone });
623
+ * } catch (e) {
624
+ * if (e instanceof FirebaseServerAuthUserExistsError && e.identifierType === 'phone') {
625
+ * const existingUser = await auth.getUserByPhoneNumber(e.identifierValue);
626
+ * }
627
+ * }
628
+ * ```
629
+ */ var FirebaseServerAuthUserExistsError = /*#__PURE__*/ function(BaseError) {
630
+ _inherits$5(FirebaseServerAuthUserExistsError, BaseError);
631
+ function FirebaseServerAuthUserExistsError(code, identifierType, identifierValue) {
632
+ _class_call_check$o(this, FirebaseServerAuthUserExistsError);
633
+ var _this;
634
+ _this = _call_super$5(this, FirebaseServerAuthUserExistsError, [
635
+ "A user with the provided ".concat(identifierType, " already exists.")
636
+ ]), _define_property$s(_this, "code", void 0), _define_property$s(_this, "identifierType", void 0), _define_property$s(_this, "identifierValue", void 0);
637
+ _this.code = code;
638
+ _this.identifierType = identifierType;
639
+ _this.identifierValue = identifierValue;
640
+ return _this;
641
+ }
642
+ return FirebaseServerAuthUserExistsError;
643
+ }(makeError.BaseError);
644
+ /**
645
+ * Thrown by {@link AbstractFirebaseServerNewUserService.createNewUser} when Firebase Auth rejects
646
+ * user creation due to invalid input (e.g., a malformed phone number).
647
+ *
648
+ * @example
649
+ * ```typescript
650
+ * try {
651
+ * await newUserService.initializeNewUser({ email, phone: 'not-e164' });
652
+ * } catch (e) {
653
+ * if (e instanceof FirebaseServerAuthUserBadInputError) {
654
+ * console.log(`Bad input (${e.code}): ${e.inputValue}`);
655
+ * }
656
+ * }
657
+ * ```
658
+ */ var FirebaseServerAuthUserBadInputError = /*#__PURE__*/ function(BaseError) {
659
+ _inherits$5(FirebaseServerAuthUserBadInputError, BaseError);
660
+ function FirebaseServerAuthUserBadInputError(code, inputValue, message) {
661
+ _class_call_check$o(this, FirebaseServerAuthUserBadInputError);
662
+ var _this;
663
+ _this = _call_super$5(this, FirebaseServerAuthUserBadInputError, [
664
+ message !== null && message !== void 0 ? message : "Invalid input for user creation: ".concat(inputValue)
665
+ ]), _define_property$s(_this, "code", void 0), _define_property$s(_this, "inputValue", void 0);
666
+ _this.code = code;
667
+ _this.inputValue = inputValue;
668
+ return _this;
669
+ }
670
+ return FirebaseServerAuthUserBadInputError;
671
+ }(makeError.BaseError);
615
672
  /**
616
673
  * Thrown by sendSetupDetails() if the user has no setup configuration available, meaning they probably already have accepted their invite or is in an invalid state.
617
674
  */ var FirebaseServerAuthNewUserSendSetupDetailsNoSetupConfigError = /*#__PURE__*/ function(BaseError) {
@@ -1770,12 +1827,20 @@ function _ts_generator$b(thisArg, body) {
1770
1827
  * @throws Throws if the Firebase Admin SDK rejects the user creation.
1771
1828
  */ function createNewUser(input) {
1772
1829
  return _async_to_generator$b(function() {
1773
- var uid, displayName, email, phoneNumber, inputPassword, password, user;
1830
+ var uid, displayName, email, phoneNumber, inputPassword, password, user, e, firebaseError, errorCode;
1774
1831
  return _ts_generator$b(this, function(_state) {
1775
1832
  switch(_state.label){
1776
1833
  case 0:
1777
1834
  uid = input.uid, displayName = input.displayName, email = input.email, phoneNumber = input.phone, inputPassword = input.setupPassword;
1778
1835
  password = inputPassword !== null && inputPassword !== void 0 ? inputPassword : this.generateRandomSetupPassword();
1836
+ _state.label = 1;
1837
+ case 1:
1838
+ _state.trys.push([
1839
+ 1,
1840
+ 3,
1841
+ ,
1842
+ 4
1843
+ ]);
1779
1844
  return [
1780
1845
  4,
1781
1846
  this.authService.auth.createUser({
@@ -1786,8 +1851,25 @@ function _ts_generator$b(thisArg, body) {
1786
1851
  password: password
1787
1852
  })
1788
1853
  ];
1789
- case 1:
1854
+ case 2:
1790
1855
  user = _state.sent();
1856
+ return [
1857
+ 3,
1858
+ 4
1859
+ ];
1860
+ case 3:
1861
+ e = _state.sent();
1862
+ firebaseError = e;
1863
+ errorCode = firebaseError === null || firebaseError === void 0 ? void 0 : firebaseError.code;
1864
+ if (errorCode === firebase.FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR && phoneNumber) {
1865
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'phone', phoneNumber);
1866
+ } else if (errorCode === firebase.FIREBASE_AUTH_EMAIL_ALREADY_EXISTS_ERROR && email) {
1867
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'email', email);
1868
+ } else if (errorCode === firebase.FIREBASE_AUTH_INVALID_PHONE_NUMBER_ERROR && phoneNumber) {
1869
+ throw new FirebaseServerAuthUserBadInputError(errorCode, phoneNumber);
1870
+ }
1871
+ throw e;
1872
+ case 4:
1791
1873
  return [
1792
1874
  2,
1793
1875
  {
@@ -3492,7 +3574,7 @@ function _ts_generator$9(thisArg, body) {
3492
3574
  */ function handleFirebaseAuthError(e, handleUnknownCode) {
3493
3575
  handleFirebaseError(e, function(firebaseError) {
3494
3576
  switch(firebaseError.code){
3495
- case 'auth/phone-number-already-exists':
3577
+ case firebase.FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR:
3496
3578
  throw phoneNumberAlreadyExistsError();
3497
3579
  default:
3498
3580
  handleUnknownCode === null || handleUnknownCode === void 0 ? void 0 : handleUnknownCode(firebaseError);
@@ -9399,16 +9481,24 @@ function _ts_generator(thisArg, body) {
9399
9481
  /**
9400
9482
  * Abstract class that wraps an INestApplicationContext value.
9401
9483
  */ var AbstractNestContext = /*#__PURE__*/ function() {
9402
- function AbstractNestContext(nest) {
9484
+ function AbstractNestContext(nestApplication) {
9403
9485
  _class_call_check$1(this, AbstractNestContext);
9404
- _define_property$1(this, "_nest", void 0);
9405
- this._nest = nest;
9486
+ _define_property$1(this, "_nestApplication", void 0);
9487
+ this._nestApplication = nestApplication;
9406
9488
  }
9407
9489
  _create_class$1(AbstractNestContext, [
9408
9490
  {
9409
9491
  key: "nest",
9492
+ get: /**
9493
+ * @deprecated use nestApplication instead.
9494
+ */ function get() {
9495
+ return this._nestApplication;
9496
+ }
9497
+ },
9498
+ {
9499
+ key: "nestApplication",
9410
9500
  get: function get() {
9411
- return this._nest;
9501
+ return this._nestApplication;
9412
9502
  }
9413
9503
  }
9414
9504
  ]);
@@ -9604,6 +9694,8 @@ exports.FirebaseServerAuthNewUserSendSetupDetailsNoSetupConfigError = FirebaseSe
9604
9694
  exports.FirebaseServerAuthNewUserSendSetupDetailsSendOnceError = FirebaseServerAuthNewUserSendSetupDetailsSendOnceError;
9605
9695
  exports.FirebaseServerAuthNewUserSendSetupDetailsThrottleError = FirebaseServerAuthNewUserSendSetupDetailsThrottleError;
9606
9696
  exports.FirebaseServerAuthService = FirebaseServerAuthService;
9697
+ exports.FirebaseServerAuthUserBadInputError = FirebaseServerAuthUserBadInputError;
9698
+ exports.FirebaseServerAuthUserExistsError = FirebaseServerAuthUserExistsError;
9607
9699
  exports.FirebaseServerEnvService = FirebaseServerEnvService;
9608
9700
  exports.FirebaseServerStorageService = FirebaseServerStorageService;
9609
9701
  exports.GlobalRoutePrefixConfig = GlobalRoutePrefixConfig;
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DBX_FIREBASE_SERVER_NO_AUTH_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_SETUP_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_LAST_COM_DATE_KEY, FirestoreDocumentContextType, streamFromOnSnapshot, makeFirestoreQueryConstraintFunctionsDriver, 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, firestoreContextFactory, firestoreField, optionalFirestoreField, setIdAndKeyFromKeyIdRefOnDocumentData, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, storageListFilesResultFactory, assertStorageUploadOptionsStringFormat, firebaseStorageContextFactory, inContextFirebaseModelsServiceFactory, useFirebaseModelsService } from '@dereekb/firebase';
1
+ import { DBX_FIREBASE_SERVER_NO_AUTH_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_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, FirestoreDocumentContextType, streamFromOnSnapshot, makeFirestoreQueryConstraintFunctionsDriver, 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, firestoreContextFactory, firestoreField, optionalFirestoreField, setIdAndKeyFromKeyIdRefOnDocumentData, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, storageListFilesResultFactory, assertStorageUploadOptionsStringFormat, firebaseStorageContextFactory, inContextFirebaseModelsServiceFactory, useFirebaseModelsService } from '@dereekb/firebase';
2
2
  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, pushItemOrArrayItemsIntoArray, makeGetter, asGetter, build } from '@dereekb/util';
3
3
  import { HttpsError } from 'firebase-functions/https';
4
4
  import { hoursToMs, toISODateString } from '@dereekb/date';
@@ -610,6 +610,63 @@ function _is_native_reflect_construct$5() {
610
610
  return !!result;
611
611
  })();
612
612
  }
613
+ /**
614
+ * Thrown by {@link AbstractFirebaseServerNewUserService.createNewUser} when Firebase Auth rejects
615
+ * user creation because the provided phone number or email is already associated with another account.
616
+ *
617
+ * @example
618
+ * ```typescript
619
+ * try {
620
+ * await newUserService.initializeNewUser({ email, phone });
621
+ * } catch (e) {
622
+ * if (e instanceof FirebaseServerAuthUserExistsError && e.identifierType === 'phone') {
623
+ * const existingUser = await auth.getUserByPhoneNumber(e.identifierValue);
624
+ * }
625
+ * }
626
+ * ```
627
+ */ var FirebaseServerAuthUserExistsError = /*#__PURE__*/ function(BaseError) {
628
+ _inherits$5(FirebaseServerAuthUserExistsError, BaseError);
629
+ function FirebaseServerAuthUserExistsError(code, identifierType, identifierValue) {
630
+ _class_call_check$o(this, FirebaseServerAuthUserExistsError);
631
+ var _this;
632
+ _this = _call_super$5(this, FirebaseServerAuthUserExistsError, [
633
+ "A user with the provided ".concat(identifierType, " already exists.")
634
+ ]), _define_property$s(_this, "code", void 0), _define_property$s(_this, "identifierType", void 0), _define_property$s(_this, "identifierValue", void 0);
635
+ _this.code = code;
636
+ _this.identifierType = identifierType;
637
+ _this.identifierValue = identifierValue;
638
+ return _this;
639
+ }
640
+ return FirebaseServerAuthUserExistsError;
641
+ }(BaseError);
642
+ /**
643
+ * Thrown by {@link AbstractFirebaseServerNewUserService.createNewUser} when Firebase Auth rejects
644
+ * user creation due to invalid input (e.g., a malformed phone number).
645
+ *
646
+ * @example
647
+ * ```typescript
648
+ * try {
649
+ * await newUserService.initializeNewUser({ email, phone: 'not-e164' });
650
+ * } catch (e) {
651
+ * if (e instanceof FirebaseServerAuthUserBadInputError) {
652
+ * console.log(`Bad input (${e.code}): ${e.inputValue}`);
653
+ * }
654
+ * }
655
+ * ```
656
+ */ var FirebaseServerAuthUserBadInputError = /*#__PURE__*/ function(BaseError) {
657
+ _inherits$5(FirebaseServerAuthUserBadInputError, BaseError);
658
+ function FirebaseServerAuthUserBadInputError(code, inputValue, message) {
659
+ _class_call_check$o(this, FirebaseServerAuthUserBadInputError);
660
+ var _this;
661
+ _this = _call_super$5(this, FirebaseServerAuthUserBadInputError, [
662
+ message !== null && message !== void 0 ? message : "Invalid input for user creation: ".concat(inputValue)
663
+ ]), _define_property$s(_this, "code", void 0), _define_property$s(_this, "inputValue", void 0);
664
+ _this.code = code;
665
+ _this.inputValue = inputValue;
666
+ return _this;
667
+ }
668
+ return FirebaseServerAuthUserBadInputError;
669
+ }(BaseError);
613
670
  /**
614
671
  * Thrown by sendSetupDetails() if the user has no setup configuration available, meaning they probably already have accepted their invite or is in an invalid state.
615
672
  */ var FirebaseServerAuthNewUserSendSetupDetailsNoSetupConfigError = /*#__PURE__*/ function(BaseError) {
@@ -1768,12 +1825,20 @@ function _ts_generator$b(thisArg, body) {
1768
1825
  * @throws Throws if the Firebase Admin SDK rejects the user creation.
1769
1826
  */ function createNewUser(input) {
1770
1827
  return _async_to_generator$b(function() {
1771
- var uid, displayName, email, phoneNumber, inputPassword, password, user;
1828
+ var uid, displayName, email, phoneNumber, inputPassword, password, user, e, firebaseError, errorCode;
1772
1829
  return _ts_generator$b(this, function(_state) {
1773
1830
  switch(_state.label){
1774
1831
  case 0:
1775
1832
  uid = input.uid, displayName = input.displayName, email = input.email, phoneNumber = input.phone, inputPassword = input.setupPassword;
1776
1833
  password = inputPassword !== null && inputPassword !== void 0 ? inputPassword : this.generateRandomSetupPassword();
1834
+ _state.label = 1;
1835
+ case 1:
1836
+ _state.trys.push([
1837
+ 1,
1838
+ 3,
1839
+ ,
1840
+ 4
1841
+ ]);
1777
1842
  return [
1778
1843
  4,
1779
1844
  this.authService.auth.createUser({
@@ -1784,8 +1849,25 @@ function _ts_generator$b(thisArg, body) {
1784
1849
  password: password
1785
1850
  })
1786
1851
  ];
1787
- case 1:
1852
+ case 2:
1788
1853
  user = _state.sent();
1854
+ return [
1855
+ 3,
1856
+ 4
1857
+ ];
1858
+ case 3:
1859
+ e = _state.sent();
1860
+ firebaseError = e;
1861
+ errorCode = firebaseError === null || firebaseError === void 0 ? void 0 : firebaseError.code;
1862
+ if (errorCode === FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR && phoneNumber) {
1863
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'phone', phoneNumber);
1864
+ } else if (errorCode === FIREBASE_AUTH_EMAIL_ALREADY_EXISTS_ERROR && email) {
1865
+ throw new FirebaseServerAuthUserExistsError(errorCode, 'email', email);
1866
+ } else if (errorCode === FIREBASE_AUTH_INVALID_PHONE_NUMBER_ERROR && phoneNumber) {
1867
+ throw new FirebaseServerAuthUserBadInputError(errorCode, phoneNumber);
1868
+ }
1869
+ throw e;
1870
+ case 4:
1789
1871
  return [
1790
1872
  2,
1791
1873
  {
@@ -3490,7 +3572,7 @@ function _ts_generator$9(thisArg, body) {
3490
3572
  */ function handleFirebaseAuthError(e, handleUnknownCode) {
3491
3573
  handleFirebaseError(e, function(firebaseError) {
3492
3574
  switch(firebaseError.code){
3493
- case 'auth/phone-number-already-exists':
3575
+ case FIREBASE_AUTH_PHONE_NUMBER_ALREADY_EXISTS_ERROR:
3494
3576
  throw phoneNumberAlreadyExistsError();
3495
3577
  default:
3496
3578
  handleUnknownCode === null || handleUnknownCode === void 0 ? void 0 : handleUnknownCode(firebaseError);
@@ -9397,16 +9479,24 @@ function _ts_generator(thisArg, body) {
9397
9479
  /**
9398
9480
  * Abstract class that wraps an INestApplicationContext value.
9399
9481
  */ var AbstractNestContext = /*#__PURE__*/ function() {
9400
- function AbstractNestContext(nest) {
9482
+ function AbstractNestContext(nestApplication) {
9401
9483
  _class_call_check$1(this, AbstractNestContext);
9402
- _define_property$1(this, "_nest", void 0);
9403
- this._nest = nest;
9484
+ _define_property$1(this, "_nestApplication", void 0);
9485
+ this._nestApplication = nestApplication;
9404
9486
  }
9405
9487
  _create_class$1(AbstractNestContext, [
9406
9488
  {
9407
9489
  key: "nest",
9490
+ get: /**
9491
+ * @deprecated use nestApplication instead.
9492
+ */ function get() {
9493
+ return this._nestApplication;
9494
+ }
9495
+ },
9496
+ {
9497
+ key: "nestApplication",
9408
9498
  get: function get() {
9409
- return this._nest;
9499
+ return this._nestApplication;
9410
9500
  }
9411
9501
  }
9412
9502
  ]);
@@ -9571,4 +9661,4 @@ function _define_property(obj, key, value) {
9571
9661
  }
9572
9662
  ();
9573
9663
 
9574
- export { ALREADY_EXISTS_ERROR_CODE, AbstractFirebaseNestContext, AbstractFirebaseServerActionsContext, AbstractFirebaseServerAuthContext, AbstractFirebaseServerAuthService, AbstractFirebaseServerAuthUserContext, AbstractFirebaseServerNewUserService, AbstractNestContext, AbstractServerFirebaseNestContext, BAD_REQUEST_ERROR_CODE, CONFLICT_ERROR_CODE, ConfigureFirebaseAppCheckMiddlewareModule, ConfigureFirebaseWebhookMiddlewareModule, DEFAULT_FIREBASE_PASSWORD_NUMBER_GENERATOR, DEFAULT_SETUP_COM_THROTTLE_TIME, DefaultFirebaseServerEnvService, FIREBASE_APP_TOKEN, FIREBASE_AUTH_TOKEN, FIREBASE_FIRESTORE_CONTEXT_TOKEN, FIREBASE_FIRESTORE_TOKEN, FIREBASE_SERVER_ENV_TOKEN, FIREBASE_SERVER_VALIDATION_ERROR_CODE, FIREBASE_STORAGE_CONTEXT_FACTORY_CONFIG_TOKEN, FIREBASE_STORAGE_CONTEXT_TOKEN, FIREBASE_STORAGE_TOKEN, FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING, FORBIDDEN_ERROR_CODE, FirebaseAppCheckMiddleware, FirebaseAppCheckMiddlewareConfig, FirebaseNestServerRootModule, FirebaseRawBodyMiddleware, FirebaseServerAnalyticsSegmentListenerService, FirebaseServerAnalyticsSegmentModule, FirebaseServerAnalyticsService, FirebaseServerAnalyticsServiceListener, FirebaseServerAuthModule, FirebaseServerAuthNewUserSendSetupDetailsNoSetupConfigError, FirebaseServerAuthNewUserSendSetupDetailsSendOnceError, FirebaseServerAuthNewUserSendSetupDetailsThrottleError, FirebaseServerAuthService, FirebaseServerEnvService, FirebaseServerFirestoreContextModule, FirebaseServerFirestoreModule, FirebaseServerStorageContextModule, FirebaseServerStorageModule, FirebaseServerStorageService, GlobalRoutePrefixConfig, INTERNAL_SERVER_ERROR_CODE, MODEL_NOT_AVAILABLE_ERROR_CODE, NOT_FOUND_ERROR_CODE, NO_RUN_NAME_SPECIFIED_FOR_SCHEDULED_FUNCTION_DEVELOPMENT_FUNCTION_CODE, NoSetupContentFirebaseServerNewUserService, ON_CALL_MODEL_ANALYTICS_HANDLER, ON_CALL_MODEL_ANALYTICS_SERVICE, OnCallModelAnalyticsService, PERMISSION_DENIED_ERROR_CODE, PHONE_NUMBER_ALREADY_EXISTS_ERROR_CODE, SkipAppCheck, UNAUTHENTICATED_ERROR_CODE, UNAVAILABLE_ERROR_CODE, UNAVAILABLE_OR_DEACTIVATED_FUNCTION_ERROR_CODE, UNKNOWN_SCHEDULED_FUNCTION_DEVELOPMENT_FUNCTION_NAME_CODE, UNKNOWN_SCHEDULED_FUNCTION_DEVELOPMENT_FUNCTION_TYPE_CODE, _onCallWithCallTypeFunction, aggregateCrudModelApiDetails, aggregateModelApiDetails, aggregateSpecifierApiDetails, alreadyExistsError, appAnalyticsModuleMetadata, appFirestoreModuleMetadata, assertContextHasAuth, assertDocumentExists, assertHasRolesInRequest, assertHasSignedTosInRequest, assertIsAdminInRequest, assertIsAdminOrTargetUserInRequestData, assertIsContextWithAuthData, assertRequestRequiresAuthForFunction, assertSnapshotData, assertSnapshotDataWithKey, badRequestError, blockingFunctionHandlerWithNestContextFactory, buildNestServerRootModule, callWithAnalytics, cloudEventHandlerWithNestContextFactory, collectionRefForPath, createModelUnknownModelTypeError, defaultFirebaseServerActionsTransformFactoryLogErrorFunction, defaultProvideFirebaseServerStorageServiceSimple, deleteModelUnknownModelTypeError, developmentUnknownSpecifierError, docRefForPath, documentModelNotAvailableError, firebaseAuthTokenFromDecodedIdToken, firebaseServerActionsContext, firebaseServerActionsTransformContext, firebaseServerActionsTransformFactory, firebaseServerAppTokenProvider, firebaseServerAuthModuleMetadata, firebaseServerDevFunctions, firebaseServerEnvTokenProvider, firebaseServerEnvTokenProviders, firebaseServerErrorInfo, firebaseServerErrorInfoCodePair, firebaseServerErrorInfoServerErrorCodePair, firebaseServerErrorInfoServerErrorPair, firebaseServerStorageDefaultBucketIdTokenProvider, firebaseServerStorageModuleMetadata, firebaseServerValidationError, firebaseServerValidationServerError, firestoreClientQueryConstraintFunctionsDriver, firestoreEncryptedField, firestoreServerIncrementUpdateToUpdateData, forbiddenError, getAuthUserOrUndefined, getModelApiDetails, googleCloudFileMetadataToStorageMetadata, googleCloudFirebaseStorageContextFactory, googleCloudFirebaseStorageDrivers, googleCloudFirestoreAccessorDriver, googleCloudFirestoreContextFactory, googleCloudFirestoreDrivers, googleCloudFirestoreQueryDriver, googleCloudStorageAccessorFile, googleCloudStorageAccessorFolder, googleCloudStorageBucketForStorageFilePath, googleCloudStorageFileForStorageFilePath, googleCloudStorageFirebaseStorageAccessorDriver, googleCloudStorageFromFirebaseAdminStorage, googleCloudStorageListFilesResultFactory, handleFirebaseAuthError, handleFirebaseError, hasAuthRolesInRequest, hasNewUserSetupPasswordInRequest, hasSignedTosInRequest, inAuthContext, injectNestApplicationContextIntoRequest, injectNestIntoRequest, internalServerError, isActualSpecifier, isAdminInRequest, isAdminOrTargetUserInRequestData, isContextWithAuthData, isFirebaseError, isFirebaseHttpsError, isOnCallCrudModelApiDetails, isOnCallHandlerApiDetails, isOnCallModelTypeApiDetails, isOnCallSpecifierApiDetails, makeBlockingFunctionWithHandler, makeOnScheduleHandlerWithNestApplicationRequest, makeScheduledFunctionDevelopmentFunction, modelNotAvailableError, nestAppHasDevelopmentSchedulerEnabled, nestAppIsProductionEnvironment, nestFirebaseDoesNotExistError, nestFirebaseForbiddenPermissionError, nestServerInstance, noRunNameSpecifiedForScheduledFunctionDevelopmentFunction, noopFirebaseServerAnalyticsServiceListener, notFoundError, onCallAnalyticsEmitterInstance, onCallCreateModel, onCallDeleteModel, onCallDevelopmentFunction, onCallHandlerWithNestApplicationFactory, onCallHandlerWithNestContextFactory, onCallModel, onCallModelMissingCallTypeError, onCallModelUnknownCallTypeError, onCallReadModel, onCallSpecifierHandler, onCallUpdateModel, onScheduleHandlerWithNestApplicationFactory, onScheduleHandlerWithNestContextFactory, optionalAuthContext, optionalFirestoreEncryptedField, permissionDeniedError, phoneNumberAlreadyExistsError, preconditionConflictError, provideAppFirestoreCollections, provideFirebaseServerAuthService, provideFirebaseServerStorageService, readApiDetails, readModelUnknownModelTypeError, resolveAnalyticsFromApiDetails, setNestContextOnRequest, setNestContextOnScheduleRequest, taskQueueFunctionHandlerWithNestContextFactory, unauthenticatedContextHasNoAuthData, unauthenticatedContextHasNoUidError, unauthenticatedError, unavailableError, unavailableOrDeactivatedFunctionError, unknownModelCrudFunctionSpecifierError, unknownScheduledFunctionDevelopmentFunctionName, unknownScheduledFunctionDevelopmentFunctionType, updateModelUnknownModelTypeError, userContextFromUid, verifyAppCheckInRequest, withApiDetails };
9664
+ export { ALREADY_EXISTS_ERROR_CODE, AbstractFirebaseNestContext, AbstractFirebaseServerActionsContext, AbstractFirebaseServerAuthContext, AbstractFirebaseServerAuthService, AbstractFirebaseServerAuthUserContext, AbstractFirebaseServerNewUserService, AbstractNestContext, AbstractServerFirebaseNestContext, BAD_REQUEST_ERROR_CODE, CONFLICT_ERROR_CODE, ConfigureFirebaseAppCheckMiddlewareModule, ConfigureFirebaseWebhookMiddlewareModule, DEFAULT_FIREBASE_PASSWORD_NUMBER_GENERATOR, DEFAULT_SETUP_COM_THROTTLE_TIME, DefaultFirebaseServerEnvService, FIREBASE_APP_TOKEN, FIREBASE_AUTH_TOKEN, FIREBASE_FIRESTORE_CONTEXT_TOKEN, FIREBASE_FIRESTORE_TOKEN, FIREBASE_SERVER_ENV_TOKEN, FIREBASE_SERVER_VALIDATION_ERROR_CODE, FIREBASE_STORAGE_CONTEXT_FACTORY_CONFIG_TOKEN, FIREBASE_STORAGE_CONTEXT_TOKEN, FIREBASE_STORAGE_TOKEN, FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING, FORBIDDEN_ERROR_CODE, FirebaseAppCheckMiddleware, FirebaseAppCheckMiddlewareConfig, FirebaseNestServerRootModule, FirebaseRawBodyMiddleware, FirebaseServerAnalyticsSegmentListenerService, FirebaseServerAnalyticsSegmentModule, FirebaseServerAnalyticsService, FirebaseServerAnalyticsServiceListener, FirebaseServerAuthModule, FirebaseServerAuthNewUserSendSetupDetailsNoSetupConfigError, FirebaseServerAuthNewUserSendSetupDetailsSendOnceError, FirebaseServerAuthNewUserSendSetupDetailsThrottleError, FirebaseServerAuthService, FirebaseServerAuthUserBadInputError, FirebaseServerAuthUserExistsError, FirebaseServerEnvService, FirebaseServerFirestoreContextModule, FirebaseServerFirestoreModule, FirebaseServerStorageContextModule, FirebaseServerStorageModule, FirebaseServerStorageService, GlobalRoutePrefixConfig, INTERNAL_SERVER_ERROR_CODE, MODEL_NOT_AVAILABLE_ERROR_CODE, NOT_FOUND_ERROR_CODE, NO_RUN_NAME_SPECIFIED_FOR_SCHEDULED_FUNCTION_DEVELOPMENT_FUNCTION_CODE, NoSetupContentFirebaseServerNewUserService, ON_CALL_MODEL_ANALYTICS_HANDLER, ON_CALL_MODEL_ANALYTICS_SERVICE, OnCallModelAnalyticsService, PERMISSION_DENIED_ERROR_CODE, PHONE_NUMBER_ALREADY_EXISTS_ERROR_CODE, SkipAppCheck, UNAUTHENTICATED_ERROR_CODE, UNAVAILABLE_ERROR_CODE, UNAVAILABLE_OR_DEACTIVATED_FUNCTION_ERROR_CODE, UNKNOWN_SCHEDULED_FUNCTION_DEVELOPMENT_FUNCTION_NAME_CODE, UNKNOWN_SCHEDULED_FUNCTION_DEVELOPMENT_FUNCTION_TYPE_CODE, _onCallWithCallTypeFunction, aggregateCrudModelApiDetails, aggregateModelApiDetails, aggregateSpecifierApiDetails, alreadyExistsError, appAnalyticsModuleMetadata, appFirestoreModuleMetadata, assertContextHasAuth, assertDocumentExists, assertHasRolesInRequest, assertHasSignedTosInRequest, assertIsAdminInRequest, assertIsAdminOrTargetUserInRequestData, assertIsContextWithAuthData, assertRequestRequiresAuthForFunction, assertSnapshotData, assertSnapshotDataWithKey, badRequestError, blockingFunctionHandlerWithNestContextFactory, buildNestServerRootModule, callWithAnalytics, cloudEventHandlerWithNestContextFactory, collectionRefForPath, createModelUnknownModelTypeError, defaultFirebaseServerActionsTransformFactoryLogErrorFunction, defaultProvideFirebaseServerStorageServiceSimple, deleteModelUnknownModelTypeError, developmentUnknownSpecifierError, docRefForPath, documentModelNotAvailableError, firebaseAuthTokenFromDecodedIdToken, firebaseServerActionsContext, firebaseServerActionsTransformContext, firebaseServerActionsTransformFactory, firebaseServerAppTokenProvider, firebaseServerAuthModuleMetadata, firebaseServerDevFunctions, firebaseServerEnvTokenProvider, firebaseServerEnvTokenProviders, firebaseServerErrorInfo, firebaseServerErrorInfoCodePair, firebaseServerErrorInfoServerErrorCodePair, firebaseServerErrorInfoServerErrorPair, firebaseServerStorageDefaultBucketIdTokenProvider, firebaseServerStorageModuleMetadata, firebaseServerValidationError, firebaseServerValidationServerError, firestoreClientQueryConstraintFunctionsDriver, firestoreEncryptedField, firestoreServerIncrementUpdateToUpdateData, forbiddenError, getAuthUserOrUndefined, getModelApiDetails, googleCloudFileMetadataToStorageMetadata, googleCloudFirebaseStorageContextFactory, googleCloudFirebaseStorageDrivers, googleCloudFirestoreAccessorDriver, googleCloudFirestoreContextFactory, googleCloudFirestoreDrivers, googleCloudFirestoreQueryDriver, googleCloudStorageAccessorFile, googleCloudStorageAccessorFolder, googleCloudStorageBucketForStorageFilePath, googleCloudStorageFileForStorageFilePath, googleCloudStorageFirebaseStorageAccessorDriver, googleCloudStorageFromFirebaseAdminStorage, googleCloudStorageListFilesResultFactory, handleFirebaseAuthError, handleFirebaseError, hasAuthRolesInRequest, hasNewUserSetupPasswordInRequest, hasSignedTosInRequest, inAuthContext, injectNestApplicationContextIntoRequest, injectNestIntoRequest, internalServerError, isActualSpecifier, isAdminInRequest, isAdminOrTargetUserInRequestData, isContextWithAuthData, isFirebaseError, isFirebaseHttpsError, isOnCallCrudModelApiDetails, isOnCallHandlerApiDetails, isOnCallModelTypeApiDetails, isOnCallSpecifierApiDetails, makeBlockingFunctionWithHandler, makeOnScheduleHandlerWithNestApplicationRequest, makeScheduledFunctionDevelopmentFunction, modelNotAvailableError, nestAppHasDevelopmentSchedulerEnabled, nestAppIsProductionEnvironment, nestFirebaseDoesNotExistError, nestFirebaseForbiddenPermissionError, nestServerInstance, noRunNameSpecifiedForScheduledFunctionDevelopmentFunction, noopFirebaseServerAnalyticsServiceListener, notFoundError, onCallAnalyticsEmitterInstance, onCallCreateModel, onCallDeleteModel, onCallDevelopmentFunction, onCallHandlerWithNestApplicationFactory, onCallHandlerWithNestContextFactory, onCallModel, onCallModelMissingCallTypeError, onCallModelUnknownCallTypeError, onCallReadModel, onCallSpecifierHandler, onCallUpdateModel, onScheduleHandlerWithNestApplicationFactory, onScheduleHandlerWithNestContextFactory, optionalAuthContext, optionalFirestoreEncryptedField, permissionDeniedError, phoneNumberAlreadyExistsError, preconditionConflictError, provideAppFirestoreCollections, provideFirebaseServerAuthService, provideFirebaseServerStorageService, readApiDetails, readModelUnknownModelTypeError, resolveAnalyticsFromApiDetails, setNestContextOnRequest, setNestContextOnScheduleRequest, taskQueueFunctionHandlerWithNestContextFactory, unauthenticatedContextHasNoAuthData, unauthenticatedContextHasNoUidError, unauthenticatedError, unavailableError, unavailableOrDeactivatedFunctionError, unknownModelCrudFunctionSpecifierError, unknownScheduledFunctionDevelopmentFunctionName, unknownScheduledFunctionDevelopmentFunctionType, updateModelUnknownModelTypeError, userContextFromUid, verifyAppCheckInRequest, withApiDetails };
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/mailgun",
3
- "version": "13.4.0",
3
+ "version": "13.4.1",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.4.0",
6
- "@dereekb/firebase": "13.4.0",
7
- "@dereekb/firebase-server": "13.4.0",
8
- "@dereekb/date": "13.4.0",
9
- "@dereekb/nestjs": "13.4.0",
10
- "@dereekb/model": "13.4.0",
11
- "@dereekb/rxjs": "13.4.0",
12
- "@dereekb/util": "13.4.0"
5
+ "@dereekb/analytics": "13.4.1",
6
+ "@dereekb/firebase": "13.4.1",
7
+ "@dereekb/firebase-server": "13.4.1",
8
+ "@dereekb/date": "13.4.1",
9
+ "@dereekb/nestjs": "13.4.1",
10
+ "@dereekb/model": "13.4.1",
11
+ "@dereekb/rxjs": "13.4.1",
12
+ "@dereekb/util": "13.4.1"
13
13
  },
14
14
  "exports": {
15
15
  "./package.json": "./package.json",
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/model",
3
- "version": "13.4.0",
3
+ "version": "13.4.1",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.4.0",
6
- "@dereekb/date": "13.4.0",
7
- "@dereekb/firebase": "13.4.0",
8
- "@dereekb/firebase-server": "13.4.0",
9
- "@dereekb/model": "13.4.0",
10
- "@dereekb/nestjs": "13.4.0",
11
- "@dereekb/rxjs": "13.4.0",
12
- "@dereekb/util": "13.4.0",
5
+ "@dereekb/analytics": "13.4.1",
6
+ "@dereekb/date": "13.4.1",
7
+ "@dereekb/firebase": "13.4.1",
8
+ "@dereekb/firebase-server": "13.4.1",
9
+ "@dereekb/model": "13.4.1",
10
+ "@dereekb/nestjs": "13.4.1",
11
+ "@dereekb/rxjs": "13.4.1",
12
+ "@dereekb/util": "13.4.1",
13
13
  "@nestjs/common": "^11.1.16",
14
14
  "@nestjs/config": "^4.0.3",
15
15
  "archiver": "^7.0.0",
package/oidc/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/oidc",
3
- "version": "13.4.0",
3
+ "version": "13.4.1",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.4.0",
6
- "@dereekb/date": "13.4.0",
7
- "@dereekb/firebase": "13.4.0",
8
- "@dereekb/firebase-server": "13.4.0",
9
- "@dereekb/model": "13.4.0",
10
- "@dereekb/nestjs": "13.4.0",
11
- "@dereekb/rxjs": "13.4.0",
12
- "@dereekb/util": "13.4.0",
13
- "@dereekb/zoho": "13.4.0",
5
+ "@dereekb/analytics": "13.4.1",
6
+ "@dereekb/date": "13.4.1",
7
+ "@dereekb/firebase": "13.4.1",
8
+ "@dereekb/firebase-server": "13.4.1",
9
+ "@dereekb/model": "13.4.1",
10
+ "@dereekb/nestjs": "13.4.1",
11
+ "@dereekb/rxjs": "13.4.1",
12
+ "@dereekb/util": "13.4.1",
13
+ "@dereekb/zoho": "13.4.1",
14
14
  "@nestjs/common": "^11.1.16",
15
15
  "@nestjs/config": "^4.0.3",
16
16
  "express": "^5.0.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server",
3
- "version": "13.4.0",
3
+ "version": "13.4.1",
4
4
  "exports": {
5
5
  "./test": {
6
6
  "module": "./test/index.esm.js",
@@ -43,15 +43,15 @@
43
43
  "main": "./index.cjs.js",
44
44
  "types": "./src/index.d.ts",
45
45
  "peerDependencies": {
46
- "@dereekb/analytics": "13.4.0",
47
- "@dereekb/date": "13.4.0",
48
- "@dereekb/dbx-core": "13.4.0",
49
- "@dereekb/firebase": "13.4.0",
50
- "@dereekb/model": "13.4.0",
51
- "@dereekb/nestjs": "13.4.0",
52
- "@dereekb/rxjs": "13.4.0",
53
- "@dereekb/util": "13.4.0",
54
- "@dereekb/zoho": "13.4.0",
46
+ "@dereekb/analytics": "13.4.1",
47
+ "@dereekb/date": "13.4.1",
48
+ "@dereekb/dbx-core": "13.4.1",
49
+ "@dereekb/firebase": "13.4.1",
50
+ "@dereekb/model": "13.4.1",
51
+ "@dereekb/nestjs": "13.4.1",
52
+ "@dereekb/rxjs": "13.4.1",
53
+ "@dereekb/util": "13.4.1",
54
+ "@dereekb/zoho": "13.4.1",
55
55
  "@google-cloud/firestore": "^7.11.6",
56
56
  "@google-cloud/storage": "^7.19.0",
57
57
  "@nestjs/common": "^11.1.16",
@@ -322,7 +322,10 @@ export interface FirebaseServerAuthInitializeNewUser<D = unknown> {
322
322
  */
323
323
  readonly email?: EmailAddress;
324
324
  /**
325
- * Phone for the new user, if applicable.
325
+ * Phone for the new user, if applicable. Must be a valid {@link E164PhoneNumber} (e.g. `'+17206620850'`).
326
+ *
327
+ * Firebase Auth requires E.164 format. If the value is not valid, {@link FirebaseServerAuthUserBadInputError}
328
+ * is thrown with code `auth/invalid-phone-number`.
326
329
  */
327
330
  readonly phone?: E164PhoneNumber;
328
331
  /**
@@ -1,4 +1,50 @@
1
+ import { type FirebaseErrorCode } from '@dereekb/firebase';
1
2
  import { BaseError } from 'make-error';
3
+ /**
4
+ * The type of identifier that caused the user-already-exists conflict.
5
+ */
6
+ export type FirebaseServerAuthUserExistsErrorIdentifierType = 'phone' | 'email';
7
+ /**
8
+ * Thrown by {@link AbstractFirebaseServerNewUserService.createNewUser} when Firebase Auth rejects
9
+ * user creation because the provided phone number or email is already associated with another account.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * try {
14
+ * await newUserService.initializeNewUser({ email, phone });
15
+ * } catch (e) {
16
+ * if (e instanceof FirebaseServerAuthUserExistsError && e.identifierType === 'phone') {
17
+ * const existingUser = await auth.getUserByPhoneNumber(e.identifierValue);
18
+ * }
19
+ * }
20
+ * ```
21
+ */
22
+ export declare class FirebaseServerAuthUserExistsError extends BaseError {
23
+ readonly code: FirebaseErrorCode;
24
+ readonly identifierType: FirebaseServerAuthUserExistsErrorIdentifierType;
25
+ readonly identifierValue: string;
26
+ constructor(code: FirebaseErrorCode, identifierType: FirebaseServerAuthUserExistsErrorIdentifierType, identifierValue: string);
27
+ }
28
+ /**
29
+ * Thrown by {@link AbstractFirebaseServerNewUserService.createNewUser} when Firebase Auth rejects
30
+ * user creation due to invalid input (e.g., a malformed phone number).
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * try {
35
+ * await newUserService.initializeNewUser({ email, phone: 'not-e164' });
36
+ * } catch (e) {
37
+ * if (e instanceof FirebaseServerAuthUserBadInputError) {
38
+ * console.log(`Bad input (${e.code}): ${e.inputValue}`);
39
+ * }
40
+ * }
41
+ * ```
42
+ */
43
+ export declare class FirebaseServerAuthUserBadInputError extends BaseError {
44
+ readonly code: FirebaseErrorCode;
45
+ readonly inputValue: string;
46
+ constructor(code: FirebaseErrorCode, inputValue: string, message?: string);
47
+ }
2
48
  /**
3
49
  * Thrown by sendSetupDetails() if the user has no setup configuration available, meaning they probably already have accepted their invite or is in an invalid state.
4
50
  */
@@ -25,9 +25,13 @@ export type MakeNestContext<C> = (nest: INestApplicationContext) => C;
25
25
  * Abstract class that wraps an INestApplicationContext value.
26
26
  */
27
27
  export declare abstract class AbstractNestContext {
28
- private readonly _nest;
29
- constructor(nest: INestApplicationContext);
28
+ private readonly _nestApplication;
29
+ constructor(nestApplication: INestApplicationContext);
30
+ /**
31
+ * @deprecated use nestApplication instead.
32
+ */
30
33
  get nest(): INestApplicationContext;
34
+ get nestApplication(): INestApplicationContext;
31
35
  }
32
36
  /**
33
37
  * Abstract class used for the top-level NestJS context for Firebase services.
package/test/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/test",
3
- "version": "13.4.0",
3
+ "version": "13.4.1",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.4.0",
6
- "@dereekb/date": "13.4.0",
7
- "@dereekb/firebase": "13.4.0",
8
- "@dereekb/firebase-server": "13.4.0",
9
- "@dereekb/model": "13.4.0",
10
- "@dereekb/nestjs": "13.4.0",
11
- "@dereekb/rxjs": "13.4.0",
12
- "@dereekb/util": "13.4.0",
5
+ "@dereekb/analytics": "13.4.1",
6
+ "@dereekb/date": "13.4.1",
7
+ "@dereekb/firebase": "13.4.1",
8
+ "@dereekb/firebase-server": "13.4.1",
9
+ "@dereekb/model": "13.4.1",
10
+ "@dereekb/nestjs": "13.4.1",
11
+ "@dereekb/rxjs": "13.4.1",
12
+ "@dereekb/util": "13.4.1",
13
13
  "@google-cloud/firestore": "^7.11.6",
14
14
  "@google-cloud/storage": "^7.19.0",
15
15
  "@nestjs/common": "^11.1.16",
@@ -21,7 +21,7 @@
21
21
  "make-error": "^1.3.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@dereekb/nestjs": "13.4.0"
24
+ "@dereekb/nestjs": "13.4.1"
25
25
  },
26
26
  "exports": {
27
27
  "./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.4.0",
3
+ "version": "13.4.1",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.4.0",
6
- "@dereekb/date": "13.4.0",
7
- "@dereekb/model": "13.4.0",
8
- "@dereekb/nestjs": "13.4.0",
9
- "@dereekb/rxjs": "13.4.0",
10
- "@dereekb/firebase": "13.4.0",
11
- "@dereekb/util": "13.4.0",
12
- "@dereekb/zoho": "13.4.0"
5
+ "@dereekb/analytics": "13.4.1",
6
+ "@dereekb/date": "13.4.1",
7
+ "@dereekb/model": "13.4.1",
8
+ "@dereekb/nestjs": "13.4.1",
9
+ "@dereekb/rxjs": "13.4.1",
10
+ "@dereekb/firebase": "13.4.1",
11
+ "@dereekb/util": "13.4.1",
12
+ "@dereekb/zoho": "13.4.1"
13
13
  },
14
14
  "exports": {
15
15
  "./package.json": "./package.json",