@dereekb/firebase 12.5.8 → 12.5.10

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
@@ -10266,6 +10266,24 @@ function notificationTaskCanRunNextCheckpoint(result, force) {
10266
10266
  return result;
10267
10267
  }
10268
10268
 
10269
+ // MARK: Notification Task Subtask Checkpoints
10270
+ const NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING = 'processing';
10271
+ const NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP = 'cleanup';
10272
+ /**
10273
+ * The maximum number of times to delay the cleanup step of a StorageFileProcessingNotificationTask.
10274
+ */
10275
+ const DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS = 4;
10276
+ /**
10277
+ * The default amount of time to delay the cleanup step of a StorageFileProcessingNotificationTask that failed to cleanup successfully.
10278
+ */
10279
+ const DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY = util.MS_IN_HOUR;
10280
+ /**
10281
+ * Returned by a subtask to complete the processing step and schedule the cleanup step.
10282
+ */
10283
+ function completeSubtaskProcessingAndScheduleCleanupTaskResult() {
10284
+ return notificationTaskPartiallyComplete(['processing']);
10285
+ }
10286
+
10269
10287
  var $ = _export;
10270
10288
  var iterate = iterate$2;
10271
10289
  var aCallable = aCallable$9;
@@ -10657,9 +10675,43 @@ __decorate([classTransformer.Expose(), classValidator.IsBoolean(), classValidato
10657
10675
  * Processes all StorageFiles that are queued for processing.
10658
10676
  */
10659
10677
  class DeleteAllQueuedStorageFilesParams {}
10678
+ class DownloadStorageFileParams extends TargetModelParams {
10679
+ constructor(...args) {
10680
+ super(...args);
10681
+ /**
10682
+ * Date to expire the download URL.
10683
+ */
10684
+ this.expiresAt = void 0;
10685
+ /**
10686
+ * Duration in milliseconds to expire the download URL from now.
10687
+ */
10688
+ this.expiresIn = void 0;
10689
+ /**
10690
+ * The content disposition for the response to use.
10691
+ */
10692
+ this.responseDisposition = void 0;
10693
+ /**
10694
+ * The content type for the response to use.
10695
+ *
10696
+ * Only available to admins.
10697
+ */
10698
+ this.responseContentType = void 0;
10699
+ /**
10700
+ * Whether or not an admin is creating the link.
10701
+ *
10702
+ * Allows a longer expiration.
10703
+ */
10704
+ this.asAdmin = void 0;
10705
+ }
10706
+ }
10707
+ __decorate([classTransformer.Expose(), classValidator.IsDate(), classValidator.IsOptional(), classTransformer.Type(() => Date), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "expiresAt", void 0);
10708
+ __decorate([classTransformer.Expose(), classValidator.Min(0), classValidator.IsNumber(), classValidator.IsOptional(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "expiresIn", void 0);
10709
+ __decorate([classTransformer.Expose(), classValidator.IsOptional(), classValidator.IsString(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "responseDisposition", void 0);
10710
+ __decorate([classTransformer.Expose(), classValidator.IsOptional(), classValidator.IsString(), classValidator.IsMimeType(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "responseContentType", void 0);
10711
+ __decorate([classTransformer.Expose(), classValidator.IsBoolean(), classValidator.IsOptional(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "asAdmin", void 0);
10660
10712
  const storageFileFunctionTypeConfigMap = {};
10661
10713
  const storageFileModelCrudFunctionsConfig = {
10662
- storageFile: ['create:_,fromUpload,allFromUpload', 'update:_,process', 'delete:_']
10714
+ storageFile: ['create:_,fromUpload,allFromUpload', 'update:_,process', 'delete:_', 'read:download']
10663
10715
  };
10664
10716
  class StorageFileFunctions {}
10665
10717
  const storageFileFunctionMap = callModelFirebaseFunctionMapFactory(storageFileFunctionTypeConfigMap, storageFileModelCrudFunctionsConfig);
@@ -10734,21 +10786,47 @@ exports.StorageFileProcessingState = void 0;
10734
10786
  StorageFileProcessingState[StorageFileProcessingState["PROCESSING"] = 2] = "PROCESSING";
10735
10787
  /**
10736
10788
  * The StorageFile has encountered an error during processing.
10789
+ *
10790
+ * It can be queued for reprocessing.
10737
10791
  */
10738
10792
  StorageFileProcessingState[StorageFileProcessingState["FAILED"] = 3] = "FAILED";
10739
10793
  /**
10740
10794
  * The StorageFile has been processed or required no processing and is done.
10795
+ *
10796
+ * It can be queued for reprocessing.
10741
10797
  */
10742
10798
  StorageFileProcessingState[StorageFileProcessingState["SUCCESS"] = 4] = "SUCCESS";
10743
10799
  /**
10744
- * The StorageFile has been archived. It should not be processed.
10800
+ * The StorageFile has been archived.
10801
+ *
10802
+ * It cannot be queued for reprocessing.
10745
10803
  */
10746
10804
  StorageFileProcessingState[StorageFileProcessingState["ARCHIVED"] = 5] = "ARCHIVED";
10747
10805
  /**
10748
10806
  * The StorageFile shouldn't be processed.
10807
+ *
10808
+ * It cannot be queued for reprocessing.
10749
10809
  */
10750
10810
  StorageFileProcessingState[StorageFileProcessingState["DO_NOT_PROCESS"] = 6] = "DO_NOT_PROCESS";
10751
10811
  })(exports.StorageFileProcessingState || (exports.StorageFileProcessingState = {}));
10812
+ /**
10813
+ * If true, the StorageFile can safely be re-queued for processing.
10814
+ *
10815
+ * Requirements:
10816
+ * - Has a purpose
10817
+ * - The processing state is not already queued for processing, or processing.
10818
+ * - The processing state is not archived or marked as do not process, as these should never be re-processed.
10819
+ *
10820
+ * @param state
10821
+ * @returns
10822
+ */
10823
+ function canQueueStorageFileForProcessing(storageFile) {
10824
+ const {
10825
+ p: purpose,
10826
+ ps: state
10827
+ } = storageFile;
10828
+ return Boolean(purpose) && state === exports.StorageFileProcessingState.INIT_OR_NONE || state === exports.StorageFileProcessingState.FAILED || state === exports.StorageFileProcessingState.SUCCESS;
10829
+ }
10752
10830
  /**
10753
10831
  * After 3 hours of being in the PROCESSING state, we can check for retring processing.
10754
10832
  */
@@ -10888,16 +10966,6 @@ function storageFilePurposeAndUserQuery(input) {
10888
10966
 
10889
10967
  // MARK: Storage File Processing Notification
10890
10968
  const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE = 'SFP';
10891
- const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING = 'processing';
10892
- const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP = 'cleanup';
10893
- /**
10894
- * The maximum number of times to delay the cleanup step of a StorageFileProcessingNotificationTask.
10895
- */
10896
- const DEFAULT_MAX_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_ATTEMPTS = 4;
10897
- /**
10898
- * The default amount of time to delay the cleanup step of a StorageFileProcessingNotificationTask that failed to cleanup successfully.
10899
- */
10900
- const DEFAULT_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_DELAY = util.MS_IN_HOUR;
10901
10969
  function storageFileProcessingNotificationTaskTemplate(input) {
10902
10970
  const {
10903
10971
  storageFileDocument,
@@ -10919,6 +10987,55 @@ function storageFileProcessingNotificationTaskTemplate(input) {
10919
10987
  }
10920
10988
  // MARK: All Tasks
10921
10989
  const ALL_STORAGE_FILE_NOTIFICATION_TASK_TYPES = [STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE];
10990
+ /**
10991
+ * @deprecated Use NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING instead.
10992
+ */
10993
+ const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING = NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING;
10994
+ /**
10995
+ * @deprecated Use NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP instead.
10996
+ */
10997
+ const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP = NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP;
10998
+
10999
+ /**
11000
+ * Creates a new GrantStorageFileRolesForUserAuthFunction given the input config/context.
11001
+ *
11002
+ * @param config
11003
+ * @returns
11004
+ */
11005
+ function grantStorageFileRolesForUserAuthFunction(config) {
11006
+ const {
11007
+ output,
11008
+ context,
11009
+ model
11010
+ } = config;
11011
+ return input => {
11012
+ const {
11013
+ rolesForStorageFileUser,
11014
+ rolesForStorageFileOwnershipKey
11015
+ } = input;
11016
+ const result = async () => {
11017
+ const {
11018
+ data: storageFile
11019
+ } = output;
11020
+ let userRoles;
11021
+ let ownershipKeyRoles;
11022
+ // check roles if the user matches
11023
+ if (rolesForStorageFileUser && storageFile?.u === context.auth?.uid) {
11024
+ userRoles = Promise.resolve(rolesForStorageFileUser());
11025
+ }
11026
+ // check roles if the ownership key is available
11027
+ if (rolesForStorageFileOwnershipKey && storageFile?.o) {
11028
+ ownershipKeyRoles = Promise.resolve(rolesForStorageFileOwnershipKey(storageFile.o));
11029
+ }
11030
+ const [a, b] = await Promise.all([userRoles, ownershipKeyRoles]);
11031
+ return {
11032
+ ...(a ?? {}),
11033
+ ...(b ?? {})
11034
+ };
11035
+ };
11036
+ return result;
11037
+ };
11038
+ }
10922
11039
 
10923
11040
  /**
10924
11041
  * Creates a StoredFileReaderFactory.
@@ -11320,16 +11437,17 @@ exports.DEFAULT_FIRESTORE_STRING_FIELD_VALUE = DEFAULT_FIRESTORE_STRING_FIELD_VA
11320
11437
  exports.DEFAULT_FIRESTORE_UNITED_STATES_ADDRESS_VALUE = DEFAULT_FIRESTORE_UNITED_STATES_ADDRESS_VALUE;
11321
11438
  exports.DEFAULT_FIRESTORE_WEBSITE_FILE_LINK_VALUE = DEFAULT_FIRESTORE_WEBSITE_FILE_LINK_VALUE;
11322
11439
  exports.DEFAULT_ITERATE_FIRESTORE_DOCUMENT_SNAPSHOT_BATCHES_BATCH_SIZE = DEFAULT_ITERATE_FIRESTORE_DOCUMENT_SNAPSHOT_BATCHES_BATCH_SIZE;
11323
- exports.DEFAULT_MAX_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_ATTEMPTS = DEFAULT_MAX_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_ATTEMPTS;
11324
11440
  exports.DEFAULT_NOTIFICATION_TASK_NOTIFICATION_MODEL_KEY = DEFAULT_NOTIFICATION_TASK_NOTIFICATION_MODEL_KEY;
11441
+ exports.DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS = DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS;
11442
+ exports.DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY = DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY;
11325
11443
  exports.DEFAULT_NOTIFICATION_TEMPLATE_TYPE = DEFAULT_NOTIFICATION_TEMPLATE_TYPE;
11326
11444
  exports.DEFAULT_QUERY_CHANGE_WATCHER_DELAY = DEFAULT_QUERY_CHANGE_WATCHER_DELAY;
11327
11445
  exports.DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER = DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER;
11328
- exports.DEFAULT_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_DELAY = DEFAULT_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_DELAY;
11329
11446
  exports.DEFAULT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL = DEFAULT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL;
11330
11447
  exports.DEFAULT_WEBSITE_LINK = DEFAULT_WEBSITE_LINK;
11331
11448
  exports.DeleteAllQueuedStorageFilesParams = DeleteAllQueuedStorageFilesParams;
11332
11449
  exports.DeleteStorageFileParams = DeleteStorageFileParams;
11450
+ exports.DownloadStorageFileParams = DownloadStorageFileParams;
11333
11451
  exports.EXACT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL = EXACT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL;
11334
11452
  exports.FIREBASE_AUTH_NETWORK_REQUEST_ERROR = FIREBASE_AUTH_NETWORK_REQUEST_ERROR;
11335
11453
  exports.FIREBASE_AUTH_NETWORK_REQUEST_FAILED = FIREBASE_AUTH_NETWORK_REQUEST_FAILED;
@@ -11402,6 +11520,8 @@ exports.NOTIFICATION_SUBJECT_MIN_LENGTH = NOTIFICATION_SUBJECT_MIN_LENGTH;
11402
11520
  exports.NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_MESSAGE_MAX_LENGTH = NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_MESSAGE_MAX_LENGTH;
11403
11521
  exports.NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_SUBJECT_MAX_LENGTH = NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_SUBJECT_MAX_LENGTH;
11404
11522
  exports.NOTIFICATION_SUMMARY_ITEM_LIMIT = NOTIFICATION_SUMMARY_ITEM_LIMIT;
11523
+ exports.NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP = NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP;
11524
+ exports.NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING = NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING;
11405
11525
  exports.NOTIFICATION_USER_BLOCKED_FROM_BEING_ADD_TO_RECIPIENTS_ERROR_CODE = NOTIFICATION_USER_BLOCKED_FROM_BEING_ADD_TO_RECIPIENTS_ERROR_CODE;
11406
11526
  exports.NOTIFICATION_USER_INVALID_UID_FOR_CREATE_ERROR_CODE = NOTIFICATION_USER_INVALID_UID_FOR_CREATE_ERROR_CODE;
11407
11527
  exports.NOTIFICATION_USER_LOCKED_CONFIG_FROM_BEING_UPDATED_ERROR_CODE = NOTIFICATION_USER_LOCKED_CONFIG_FROM_BEING_UPDATED_ERROR_CODE;
@@ -11480,12 +11600,14 @@ exports.assignWebsiteLinkFunction = assignWebsiteLinkFunction;
11480
11600
  exports.buildFirebaseCollectionTypeModelTypeMap = buildFirebaseCollectionTypeModelTypeMap;
11481
11601
  exports.calculateNsForNotificationUserNotificationBoxRecipientConfigs = calculateNsForNotificationUserNotificationBoxRecipientConfigs;
11482
11602
  exports.callModelFirebaseFunctionMapFactory = callModelFirebaseFunctionMapFactory;
11603
+ exports.canQueueStorageFileForProcessing = canQueueStorageFileForProcessing;
11483
11604
  exports.childFirestoreModelKey = childFirestoreModelKey;
11484
11605
  exports.childFirestoreModelKeyPath = childFirestoreModelKeyPath;
11485
11606
  exports.childFirestoreModelKeys = childFirestoreModelKeys;
11486
11607
  exports.clientFirebaseFirestoreContextFactory = clientFirebaseFirestoreContextFactory;
11487
11608
  exports.clientFirebaseStorageContextFactory = clientFirebaseStorageContextFactory;
11488
11609
  exports.combineUploadFileTypeDeterminers = combineUploadFileTypeDeterminers;
11610
+ exports.completeSubtaskProcessingAndScheduleCleanupTaskResult = completeSubtaskProcessingAndScheduleCleanupTaskResult;
11489
11611
  exports.contextGrantedModelRolesReader = contextGrantedModelRolesReader;
11490
11612
  exports.contextGrantedModelRolesReaderDoesNotExistErrorMessage = contextGrantedModelRolesReaderDoesNotExistErrorMessage;
11491
11613
  exports.contextGrantedModelRolesReaderPermissionErrorMessage = contextGrantedModelRolesReaderPermissionErrorMessage;
@@ -11681,6 +11803,7 @@ exports.grantModelRolesIfFunction = grantModelRolesIfFunction;
11681
11803
  exports.grantModelRolesIfHasAuthRolesFactory = grantModelRolesIfHasAuthRolesFactory;
11682
11804
  exports.grantModelRolesIfHasAuthRolesFunction = grantModelRolesIfHasAuthRolesFunction;
11683
11805
  exports.grantModelRolesOnlyIfFunction = grantModelRolesOnlyIfFunction;
11806
+ exports.grantStorageFileRolesForUserAuthFunction = grantStorageFileRolesForUserAuthFunction;
11684
11807
  exports.inContextFirebaseModelServiceFactory = inContextFirebaseModelServiceFactory;
11685
11808
  exports.inContextFirebaseModelsServiceFactory = inContextFirebaseModelsServiceFactory;
11686
11809
  exports.incrementUpdateWithAccessorFunction = incrementUpdateWithAccessorFunction;
package/index.esm.js CHANGED
@@ -7,7 +7,7 @@ import { formatToISO8601DateString, toJsDate, toISODateString, isSameDate, dateR
7
7
  import { httpsCallable } from 'firebase/functions';
8
8
  import { ref, getMetadata, getDownloadURL, updateMetadata, uploadString, uploadBytes, getBytes, getBlob, uploadBytesResumable, deleteObject, list } from 'firebase/storage';
9
9
  import { Expose, Type } from 'class-transformer';
10
- import { IsEnum, IsString, IsOptional, registerDecorator, buildMessage, IsNotEmpty, IsBoolean, IsNumber, IsEmail, IsArray, ValidateNested, IsPhoneNumber, IsDate, MinLength, MaxLength } from 'class-validator';
10
+ import { IsEnum, IsString, IsOptional, registerDecorator, buildMessage, IsNotEmpty, IsBoolean, IsNumber, IsEmail, IsArray, ValidateNested, IsPhoneNumber, IsDate, MinLength, MaxLength, Min, IsMimeType } from 'class-validator';
11
11
  import { fetchPageFactory, iterateFetchPagesByEachItem, iterateFetchPages } from '@dereekb/util/fetch';
12
12
  import { isAfter } from 'date-fns';
13
13
 
@@ -10264,6 +10264,24 @@ function notificationTaskCanRunNextCheckpoint(result, force) {
10264
10264
  return result;
10265
10265
  }
10266
10266
 
10267
+ // MARK: Notification Task Subtask Checkpoints
10268
+ const NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING = 'processing';
10269
+ const NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP = 'cleanup';
10270
+ /**
10271
+ * The maximum number of times to delay the cleanup step of a StorageFileProcessingNotificationTask.
10272
+ */
10273
+ const DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS = 4;
10274
+ /**
10275
+ * The default amount of time to delay the cleanup step of a StorageFileProcessingNotificationTask that failed to cleanup successfully.
10276
+ */
10277
+ const DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY = MS_IN_HOUR;
10278
+ /**
10279
+ * Returned by a subtask to complete the processing step and schedule the cleanup step.
10280
+ */
10281
+ function completeSubtaskProcessingAndScheduleCleanupTaskResult() {
10282
+ return notificationTaskPartiallyComplete(['processing']);
10283
+ }
10284
+
10267
10285
  var $ = _export;
10268
10286
  var iterate = iterate$2;
10269
10287
  var aCallable = aCallable$9;
@@ -10655,9 +10673,43 @@ __decorate([Expose(), IsBoolean(), IsOptional(), __metadata("design:type", Objec
10655
10673
  * Processes all StorageFiles that are queued for processing.
10656
10674
  */
10657
10675
  class DeleteAllQueuedStorageFilesParams {}
10676
+ class DownloadStorageFileParams extends TargetModelParams {
10677
+ constructor(...args) {
10678
+ super(...args);
10679
+ /**
10680
+ * Date to expire the download URL.
10681
+ */
10682
+ this.expiresAt = void 0;
10683
+ /**
10684
+ * Duration in milliseconds to expire the download URL from now.
10685
+ */
10686
+ this.expiresIn = void 0;
10687
+ /**
10688
+ * The content disposition for the response to use.
10689
+ */
10690
+ this.responseDisposition = void 0;
10691
+ /**
10692
+ * The content type for the response to use.
10693
+ *
10694
+ * Only available to admins.
10695
+ */
10696
+ this.responseContentType = void 0;
10697
+ /**
10698
+ * Whether or not an admin is creating the link.
10699
+ *
10700
+ * Allows a longer expiration.
10701
+ */
10702
+ this.asAdmin = void 0;
10703
+ }
10704
+ }
10705
+ __decorate([Expose(), IsDate(), IsOptional(), Type(() => Date), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "expiresAt", void 0);
10706
+ __decorate([Expose(), Min(0), IsNumber(), IsOptional(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "expiresIn", void 0);
10707
+ __decorate([Expose(), IsOptional(), IsString(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "responseDisposition", void 0);
10708
+ __decorate([Expose(), IsOptional(), IsString(), IsMimeType(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "responseContentType", void 0);
10709
+ __decorate([Expose(), IsBoolean(), IsOptional(), __metadata("design:type", Object)], DownloadStorageFileParams.prototype, "asAdmin", void 0);
10658
10710
  const storageFileFunctionTypeConfigMap = {};
10659
10711
  const storageFileModelCrudFunctionsConfig = {
10660
- storageFile: ['create:_,fromUpload,allFromUpload', 'update:_,process', 'delete:_']
10712
+ storageFile: ['create:_,fromUpload,allFromUpload', 'update:_,process', 'delete:_', 'read:download']
10661
10713
  };
10662
10714
  class StorageFileFunctions {}
10663
10715
  const storageFileFunctionMap = callModelFirebaseFunctionMapFactory(storageFileFunctionTypeConfigMap, storageFileModelCrudFunctionsConfig);
@@ -10732,21 +10784,47 @@ var StorageFileProcessingState;
10732
10784
  StorageFileProcessingState[StorageFileProcessingState["PROCESSING"] = 2] = "PROCESSING";
10733
10785
  /**
10734
10786
  * The StorageFile has encountered an error during processing.
10787
+ *
10788
+ * It can be queued for reprocessing.
10735
10789
  */
10736
10790
  StorageFileProcessingState[StorageFileProcessingState["FAILED"] = 3] = "FAILED";
10737
10791
  /**
10738
10792
  * The StorageFile has been processed or required no processing and is done.
10793
+ *
10794
+ * It can be queued for reprocessing.
10739
10795
  */
10740
10796
  StorageFileProcessingState[StorageFileProcessingState["SUCCESS"] = 4] = "SUCCESS";
10741
10797
  /**
10742
- * The StorageFile has been archived. It should not be processed.
10798
+ * The StorageFile has been archived.
10799
+ *
10800
+ * It cannot be queued for reprocessing.
10743
10801
  */
10744
10802
  StorageFileProcessingState[StorageFileProcessingState["ARCHIVED"] = 5] = "ARCHIVED";
10745
10803
  /**
10746
10804
  * The StorageFile shouldn't be processed.
10805
+ *
10806
+ * It cannot be queued for reprocessing.
10747
10807
  */
10748
10808
  StorageFileProcessingState[StorageFileProcessingState["DO_NOT_PROCESS"] = 6] = "DO_NOT_PROCESS";
10749
10809
  })(StorageFileProcessingState || (StorageFileProcessingState = {}));
10810
+ /**
10811
+ * If true, the StorageFile can safely be re-queued for processing.
10812
+ *
10813
+ * Requirements:
10814
+ * - Has a purpose
10815
+ * - The processing state is not already queued for processing, or processing.
10816
+ * - The processing state is not archived or marked as do not process, as these should never be re-processed.
10817
+ *
10818
+ * @param state
10819
+ * @returns
10820
+ */
10821
+ function canQueueStorageFileForProcessing(storageFile) {
10822
+ const {
10823
+ p: purpose,
10824
+ ps: state
10825
+ } = storageFile;
10826
+ return Boolean(purpose) && state === StorageFileProcessingState.INIT_OR_NONE || state === StorageFileProcessingState.FAILED || state === StorageFileProcessingState.SUCCESS;
10827
+ }
10750
10828
  /**
10751
10829
  * After 3 hours of being in the PROCESSING state, we can check for retring processing.
10752
10830
  */
@@ -10886,16 +10964,6 @@ function storageFilePurposeAndUserQuery(input) {
10886
10964
 
10887
10965
  // MARK: Storage File Processing Notification
10888
10966
  const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE = 'SFP';
10889
- const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING = 'processing';
10890
- const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP = 'cleanup';
10891
- /**
10892
- * The maximum number of times to delay the cleanup step of a StorageFileProcessingNotificationTask.
10893
- */
10894
- const DEFAULT_MAX_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_ATTEMPTS = 4;
10895
- /**
10896
- * The default amount of time to delay the cleanup step of a StorageFileProcessingNotificationTask that failed to cleanup successfully.
10897
- */
10898
- const DEFAULT_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_DELAY = MS_IN_HOUR;
10899
10967
  function storageFileProcessingNotificationTaskTemplate(input) {
10900
10968
  const {
10901
10969
  storageFileDocument,
@@ -10917,6 +10985,55 @@ function storageFileProcessingNotificationTaskTemplate(input) {
10917
10985
  }
10918
10986
  // MARK: All Tasks
10919
10987
  const ALL_STORAGE_FILE_NOTIFICATION_TASK_TYPES = [STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE];
10988
+ /**
10989
+ * @deprecated Use NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING instead.
10990
+ */
10991
+ const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING = NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING;
10992
+ /**
10993
+ * @deprecated Use NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP instead.
10994
+ */
10995
+ const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP = NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP;
10996
+
10997
+ /**
10998
+ * Creates a new GrantStorageFileRolesForUserAuthFunction given the input config/context.
10999
+ *
11000
+ * @param config
11001
+ * @returns
11002
+ */
11003
+ function grantStorageFileRolesForUserAuthFunction(config) {
11004
+ const {
11005
+ output,
11006
+ context,
11007
+ model
11008
+ } = config;
11009
+ return input => {
11010
+ const {
11011
+ rolesForStorageFileUser,
11012
+ rolesForStorageFileOwnershipKey
11013
+ } = input;
11014
+ const result = async () => {
11015
+ const {
11016
+ data: storageFile
11017
+ } = output;
11018
+ let userRoles;
11019
+ let ownershipKeyRoles;
11020
+ // check roles if the user matches
11021
+ if (rolesForStorageFileUser && storageFile?.u === context.auth?.uid) {
11022
+ userRoles = Promise.resolve(rolesForStorageFileUser());
11023
+ }
11024
+ // check roles if the ownership key is available
11025
+ if (rolesForStorageFileOwnershipKey && storageFile?.o) {
11026
+ ownershipKeyRoles = Promise.resolve(rolesForStorageFileOwnershipKey(storageFile.o));
11027
+ }
11028
+ const [a, b] = await Promise.all([userRoles, ownershipKeyRoles]);
11029
+ return {
11030
+ ...(a ?? {}),
11031
+ ...(b ?? {})
11032
+ };
11033
+ };
11034
+ return result;
11035
+ };
11036
+ }
10920
11037
 
10921
11038
  /**
10922
11039
  * Creates a StoredFileReaderFactory.
@@ -11290,4 +11407,4 @@ function systemStateFirestoreCollection(firestoreContext, converters) {
11290
11407
  });
11291
11408
  }
11292
11409
 
11293
- export { ALL_STORAGE_FILE_NOTIFICATION_TASK_TYPES, ALL_USER_UPLOADS_FOLDER_NAME, ALL_USER_UPLOADS_FOLDER_PATH, AbstractFirestoreDocument, AbstractFirestoreDocumentDataAccessorWrapper, AbstractFirestoreDocumentWithParent, AbstractSubscribeOrUnsubscribeToNotificationBoxParams, AbstractSubscribeToNotificationBoxParams, AppNotificationTemplateTypeInfoRecordService, BASE_MODEL_STORAGE_FILE_PATH, CALL_MODEL_APP_FUNCTION_KEY, COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION, CREATE_NOTIFICATION_ID_REQUIRED_ERROR_CODE, CleanupSentNotificationsParams, ContextGrantedModelRolesReaderInstance, CreateNotificationBoxParams, CreateNotificationSummaryParams, CreateNotificationUserParams, CreateStorageFileParams, DBX_FIREBASE_SERVER_NO_AUTH_ERROR_CODE, DBX_FIREBASE_SERVER_NO_UID_ERROR_CODE, DEFAULT_DATE_CELL_RANGE_VALUE, DEFAULT_FIRESTORE_DATE_CELL_SCHEDULE_VALUE, DEFAULT_FIRESTORE_ITEM_PAGE_ITERATOR_ITEMS_PER_PAGE, DEFAULT_FIRESTORE_STRING_FIELD_VALUE, DEFAULT_FIRESTORE_UNITED_STATES_ADDRESS_VALUE, DEFAULT_FIRESTORE_WEBSITE_FILE_LINK_VALUE, DEFAULT_ITERATE_FIRESTORE_DOCUMENT_SNAPSHOT_BATCHES_BATCH_SIZE, DEFAULT_MAX_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_ATTEMPTS, DEFAULT_NOTIFICATION_TASK_NOTIFICATION_MODEL_KEY, DEFAULT_NOTIFICATION_TEMPLATE_TYPE, DEFAULT_QUERY_CHANGE_WATCHER_DELAY, DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER, DEFAULT_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_DELAY, DEFAULT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, DEFAULT_WEBSITE_LINK, DeleteAllQueuedStorageFilesParams, DeleteStorageFileParams, EXACT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_NETWORK_REQUEST_FAILED, FIREBASE_AUTH_PASSWORD_MAX_LENGTH, FIREBASE_AUTH_PASSWORD_MIN_LENGTH, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, FIREBASE_AUTH_WRONG_PASSWORD, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_PASSWORD_KEY, FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING, FIRESTORE_COLLECTION_NAME_SEPARATOR, FIRESTORE_DUMMY_MODEL_KEY, FIRESTORE_EMPTY_VALUE, FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE, FIRESTORE_ITEM_PAGE_ITERATOR, FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE, FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE, FIRESTORE_MAX_WHERE_IN_FILTER_ARGS_COUNT, FIRESTORE_MODEL_ID_REGEX, FIRESTORE_MODEL_KEY_REGEX, FIRESTORE_MODEL_KEY_REGEX_STRICT, FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, FIRESTORE_PASSTHROUGH_FIELD, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, FirebaseDevelopmentFunctions, FirebaseModelPermissionServiceInstance, FirebaseServerError, FirestoreAccessorStreamMode, FirestoreDocumentContextType, HIGH_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, InferredTargetModelIdParams, InferredTargetModelParams, InitializeAllApplicableNotificationBoxesParams, InitializeAllApplicableNotificationSummariesParams, InitializeAllStorageFilesFromUploadsParams, InitializeNotificationModelParams, InitializeStorageFileFromUploadParams, IsFirestoreModelId, IsFirestoreModelIdOrKey, IsFirestoreModelKey, LOW_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, MAX_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MIN_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER, MODEL_STORAGE_FILE_SLASH_PATH_FACTORY, ModifyBeforeSetFirestoreDocumentDataAccessorWrapper, NOTIFICATION_BOX_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_BOX_EXCLUSION_TARGET_INVALID_ERROR_CODE, NOTIFICATION_BOX_EXISTS_FOR_MODEL_ERROR_CODE, NOTIFICATION_BOX_RECIPIENT_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_MESSAGE_MAX_LENGTH, NOTIFICATION_MESSAGE_MIN_LENGTH, NOTIFICATION_MODEL_ALREADY_INITIALIZED_ERROR_CODE, NOTIFICATION_RECIPIENT_NAME_MAX_LENGTH, NOTIFICATION_RECIPIENT_NAME_MIN_LENGTH, NOTIFICATION_SUBJECT_MAX_LENGTH, NOTIFICATION_SUBJECT_MIN_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_MESSAGE_MAX_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_SUBJECT_MAX_LENGTH, NOTIFICATION_SUMMARY_ITEM_LIMIT, NOTIFICATION_USER_BLOCKED_FROM_BEING_ADD_TO_RECIPIENTS_ERROR_CODE, NOTIFICATION_USER_INVALID_UID_FOR_CREATE_ERROR_CODE, NOTIFICATION_USER_LOCKED_CONFIG_FROM_BEING_UPDATED_ERROR_CODE, NOTIFICATION_WEEK_NOTIFICATION_ITEM_LIMIT, NotificationBoxDocument, NotificationBoxRecipientFlag, NotificationBoxRecipientTemplateConfigArrayEntryParam, NotificationBoxRecipientTemplateConfigBoolean, NotificationDocument, NotificationFirestoreCollections, NotificationFunctions, NotificationMessageFlag, NotificationRecipientParams, NotificationRecipientSendFlag, NotificationSendState, NotificationSendType, NotificationSummaryDocument, NotificationUserDocument, NotificationWeekDocument, ProcessAllQueuedStorageFilesParams, ProcessStorageFileParams, RUN_DEV_FUNCTION_APP_FUNCTION_KEY, ResyncAllNotificationUserParams, ResyncNotificationUserParams, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, STORAGEFILE_RELATED_FILE_METADATA_KEY, STORAGE_FILE_ALREADY_PROCESSED_ERROR_CODE, STORAGE_FILE_CANNOT_BE_DELETED_YET_ERROR_CODE, STORAGE_FILE_NOT_FLAGGED_FOR_DELETION_ERROR_CODE, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE, STORAGE_FILE_PROCESSING_NOT_ALLOWED_FOR_INVALID_STATE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_AVAILABLE_FOR_TYPE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_QUEUED_FOR_PROCESSING_ERROR_CODE, STORAGE_FILE_PROCESSING_STUCK_THROTTLE_CHECK_MS, STORAGE_FILE_UPLOAD_USER_ROLE, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, ScheduledFunctionDevelopmentFirebaseFunctionParams, ScheduledFunctionDevelopmentFunctionTypeEnum, SendNotificationParams, SendQueuedNotificationsParams, StorageFileCreationType, StorageFileDocument, StorageFileFirestoreCollections, StorageFileFunctions, StorageFileProcessingState, StorageFileState, StorageFileUploadStreamUnsupportedError, SystemStateDocument, SystemStateFirestoreCollections, TargetModelIdParams, TargetModelParams, UPLOADED_FILE_DOES_NOT_EXIST_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_DISCARDED_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_FAILED_ERROR_CODE, UPLOADED_FILE_NOT_ALLOWED_TO_BE_INITIALIZED_ERROR_CODE, UPLOADS_FOLDER_PATH, UpdateNotificationBoxParams, UpdateNotificationBoxRecipientLikeParams, UpdateNotificationBoxRecipientParams, UpdateNotificationSummaryParams, UpdateNotificationUserDefaultNotificationBoxRecipientConfigParams, UpdateNotificationUserNotificationBoxRecipientParams, UpdateNotificationUserParams, UpdateStorageFileParams, addConstraintToBuilder, addOrReplaceLimitInConstraints, allChildDocumentsUnderParent, allChildDocumentsUnderParentPath, allChildDocumentsUnderRelativePath, allowDocumentSnapshotWithPathOnceFilter, allowedNotificationRecipients, appNotificationTemplateTypeInfoRecordService, applyExclusionsToNotificationUserNotificationBoxRecipientConfigs, arrayUpdateWithAccessorFunction, asTopLevelFieldPath, asTopLevelFieldPaths, assertFirestoreUpdateHasData, assertStorageUploadOptionsStringFormat, assignDateCellRangeFunction, assignDateCellScheduleFunction, assignUnitedStatesAddressFunction, assignWebsiteFileLinkFunction, assignWebsiteLinkFunction, buildFirebaseCollectionTypeModelTypeMap, calculateNsForNotificationUserNotificationBoxRecipientConfigs, callModelFirebaseFunctionMapFactory, childFirestoreModelKey, childFirestoreModelKeyPath, childFirestoreModelKeys, clientFirebaseFirestoreContextFactory, clientFirebaseStorageContextFactory, combineUploadFileTypeDeterminers, contextGrantedModelRolesReader, contextGrantedModelRolesReaderDoesNotExistErrorMessage, contextGrantedModelRolesReaderPermissionErrorMessage, convertHttpsCallableErrorToReadableError, copyDocumentIdForUserRelatedModifierFunction, copyDocumentIdToFieldModifierFunction, copyStoragePath, copyUserRelatedDataAccessorFactoryFunction, copyUserRelatedDataModifierConfig, createNotificationDocument, createNotificationDocumentIfSending, createNotificationDocumentPair, createNotificationTaskTemplate, createNotificationTemplate, createStorageFileDocumentPair, createStorageFileDocumentPairFactory, dataFromDocumentSnapshots, dataFromSnapshotStream, delayCompletion, determineByFileName, determineByFilePath, determineByFolderName, determineUserByFolder, determineUserByFolderWrapperFunction, determineUserByUserUploadsFolderWrapperFunction, developmentFirebaseFunctionMapFactory, directDataHttpsCallable, documentData, documentDataFunction, documentDataWithIdAndKey, documentReferenceFromDocument, documentReferencesFromDocuments, documentReferencesFromSnapshot, effectiveNotificationBoxRecipientConfig, effectiveNotificationBoxRecipientTemplateConfig, endAt, endAtValue, endBefore, extendFirestoreCollectionWithSingleDocumentAccessor, filterConstraintsOfType, filterDisallowedFirestoreItemPageIteratorInputConstraints, filterDisallowedFirestoreItemPageIteratorInputContraints, filterRepeatCheckpointSnapshots, filterWithDateRange, firebaseAuthErrorToReadableError, firebaseFirestoreClientDrivers, firebaseFirestoreQueryConstraintFunctionsDriver, firebaseFirestoreQueryDriver, firebaseFunctionMapFactory, firebaseModelLoader, firebaseModelPermissionService, firebaseModelService, firebaseModelServiceFactory, firebaseModelsService, firebaseQueryItemAccumulator, firebaseQuerySnapshotAccumulator, firebaseStorageBucketFolderPath, firebaseStorageClientAccessorDriver, firebaseStorageClientAccessorFile, firebaseStorageClientAccessorFolder, firebaseStorageClientDrivers, firebaseStorageClientListFilesResultFactory, firebaseStorageContextFactory, firebaseStorageFileExists, firebaseStorageFilePathFromStorageFilePath, firebaseStorageRefForStorageFilePath, firestoreArray, firestoreArrayMap, firestoreBitwiseObjectMap, firestoreBitwiseSet, firestoreBitwiseSetMap, firestoreBoolean, firestoreClientAccessorDriver, firestoreClientArrayUpdateToUpdateData, firestoreClientIncrementUpdateToUpdateData, firestoreCollectionQueryFactory, firestoreContextFactory, firestoreDate, firestoreDateCellRange, firestoreDateCellRangeArray, firestoreDateCellRangeAssignFn, firestoreDateCellSchedule, firestoreDateCellScheduleAssignFn, firestoreDencoderArray, firestoreDencoderMap, firestoreDencoderStringArray, firestoreDocumentAccessorContextExtension, firestoreDocumentAccessorFactory, firestoreDocumentLoader, firestoreDocumentSnapshotPairsLoader, firestoreDocumentSnapshotPairsLoaderInstance, firestoreDummyKey, firestoreEncodedArray, firestoreEncodedObjectMap, firestoreEnum, firestoreEnumArray, firestoreField, firestoreFieldConfigToModelMapFunctionsRef, firestoreFixedItemPageIteration, firestoreFixedItemPageIterationFactory, firestoreIdBatchVerifierFactory, firestoreIdentityTypeArray, firestoreIdentityTypeArrayName, firestoreItemPageIteration, firestoreItemPageIterationFactory, firestoreLatLngString, firestoreMap, firestoreMapZoomLevel, firestoreModelId, firestoreModelIdArrayField, firestoreModelIdFromDocument, firestoreModelIdFromEmail, firestoreModelIdGrantedRoleArrayMap, firestoreModelIdGrantedRoleMap, firestoreModelIdString, firestoreModelIdentity, firestoreModelIdentityTypeMap, firestoreModelIdsFromDocuments, firestoreModelIdsFromKey, firestoreModelKey, firestoreModelKeyArrayField, firestoreModelKeyCollectionName, firestoreModelKeyCollectionType, firestoreModelKeyCollectionTypeArray, firestoreModelKeyCollectionTypeArrayName, firestoreModelKeyCollectionTypePair, firestoreModelKeyEncodedGrantedRoleMap, firestoreModelKeyFromDocument, firestoreModelKeyGrantedRoleArrayMap, firestoreModelKeyGrantedRoleMap, firestoreModelKeyPairObject, firestoreModelKeyParentKey, firestoreModelKeyParentKeyPartPairs, firestoreModelKeyPart, firestoreModelKeyPartPairs, firestoreModelKeyPartPairsKeyPath, firestoreModelKeyPartPairsPaths, firestoreModelKeyPath, firestoreModelKeyString, firestoreModelKeyTypePair, firestoreModelKeys, firestoreModelKeysFromDocuments, firestoreModelType, firestoreNotificationBoxRecipient, firestoreNotificationBoxRecipientTemplateConfigRecord, firestoreNotificationItem, firestoreNotificationRecipientWithConfig, firestoreNotificationUserDefaultNotificationBoxRecipientConfig, firestoreNotificationUserNotificationBoxRecipientConfig, firestoreNumber, firestoreObjectArray, firestorePassThroughField, firestoreQueryConstraint, firestoreQueryConstraintFactory, firestoreQueryDocumentSnapshotPairsLoader, firestoreQueryFactory, firestoreSingleDocumentAccessor, firestoreString, firestoreSubObject, firestoreTimezoneString, firestoreUID, firestoreUniqueArray, firestoreUniqueKeyedArray, firestoreUniqueNumberArray, firestoreUniqueStringArray, firestoreUnitedStatesAddress, firestoreUnitedStatesAddressAssignFn, firestoreUpdateWithNoDataError, firestoreWebsiteFileLink, firestoreWebsiteFileLinkAssignFn, firestoreWebsiteFileLinkEncodedArray, firestoreWebsiteFileLinkObjectArray, firestoreWebsiteLink, firestoreWebsiteLinkArray, firestoreWebsiteLinkAssignFn, flatFirestoreModelKey, getDataFromDocumentSnapshots, getDocumentSnapshotData, getDocumentSnapshotDataPair, getDocumentSnapshotDataPairs, getDocumentSnapshotDataPairsWithData, getDocumentSnapshotDataTuples, getDocumentSnapshotPair, getDocumentSnapshotPairs, getDocumentSnapshots, getDocumentSnapshotsData, grantFullAccessIfAdmin, grantFullAccessIfAuthUserRelated, grantModelRolesIfAdmin, grantModelRolesIfAdminFunction, grantModelRolesIfAuthUserRelatedModelFunction, grantModelRolesIfFunction, grantModelRolesIfHasAuthRolesFactory, grantModelRolesIfHasAuthRolesFunction, grantModelRolesOnlyIfFunction, inContextFirebaseModelServiceFactory, inContextFirebaseModelsServiceFactory, incrementUpdateWithAccessorFunction, inferKeyFromTwoWayFlatFirestoreModelKey, inferNotificationBoxRelatedModelKey, interceptAccessorFactoryFunction, isAdminInFirebaseModelContext, isClientFirebaseError, isCompleteNotificationSendState, isFirebaseStorageObjectNotFoundError, isFirestoreModelId, isFirestoreModelIdOrKey, isFirestoreModelKey, isOwnerOfUserRelatedModelInFirebaseModelContext, iterateFirestoreDocumentSnapshotBatches, iterateFirestoreDocumentSnapshotCheckpoints, iterateFirestoreDocumentSnapshotPairBatches, iterateFirestoreDocumentSnapshotPairs, iterateFirestoreDocumentSnapshots, iterateStorageListFiles, iterateStorageListFilesByEachFile, iterateStorageListFilesFactory, iterationQueryDocChangeWatcher, iterationQueryDocChangeWatcherChangeTypeForGroup, latestDataFromDocuments, latestSnapshotsFromDocuments, lazyFirebaseFunctionsFactory, limit, limitToLast, limitUploadFileTypeDeterminer, limitedFirestoreDocumentAccessorFactory, loadAllFirestoreDocumentSnapshot, loadAllFirestoreDocumentSnapshotPairs, loadDocumentsForDocumentReferences, loadDocumentsForDocumentReferencesFromValues, loadDocumentsForIds, loadDocumentsForIdsFromValues, loadDocumentsForKeys, loadDocumentsForKeysFromValues, loadDocumentsForSnapshots, loadDocumentsForValues, loadNotificationBoxDocumentForReferencePair, makeDocuments, makeFirestoreCollection, makeFirestoreCollectionGroup, makeFirestoreCollectionWithParent, makeFirestoreItemPageIteratorDelegate, makeFirestoreQueryConstraintFunctionsDriver, makeRootSingleItemFirestoreCollection, makeSingleItemFirestoreCollection, mapDataFromSnapshot, mapHttpsCallable, mergeNotificationBoxRecipientTemplateConfigRecords, mergeNotificationBoxRecipientTemplateConfigs, mergeNotificationBoxRecipients, mergeNotificationSendMessagesResult, mergeNotificationUserDefaultNotificationBoxRecipientConfig, mergeNotificationUserNotificationBoxRecipientConfigs, modelStorageSlashPathFactory, modifyBeforeSetInterceptAccessorFactoryFunction, newDocuments, newNotificationBoxRecipientForUid, noContentNotificationMessageFunctionFactory, noStringFormatInStorageUploadOptionsError, notificationBoxCollectionReference, notificationBoxConverter, notificationBoxFirestoreCollection, notificationBoxIdForModel, notificationBoxIdentity, notificationBoxModelCrudFunctionsConfig, notificationBoxRecipientTemplateConfigArrayToRecord, notificationBoxRecipientTemplateConfigRecordToArray, notificationBoxesFlaggedForNeedsInitializationQuery, notificationBoxesFlaggedInvalidQuery, notificationCollectionReference, notificationCollectionReferenceFactory, notificationConverter, notificationFirestoreCollectionFactory, notificationFirestoreCollectionGroup, notificationFunctionMap, notificationFunctionTypeConfigMap, notificationIdentity, notificationMessageFunction, notificationSendExclusionCanSendFunction, notificationSendFlagsImplyIsComplete, notificationSummariesFlaggedForNeedsInitializationQuery, notificationSummaryCollectionReference, notificationSummaryConverter, notificationSummaryFirestoreCollection, notificationSummaryIdForModel, notificationSummaryIdForUidFunctionForRootFirestoreModelIdentity, notificationSummaryIdentity, notificationTaskCanRunNextCheckpoint, notificationTaskComplete, notificationTaskDelayRetry, notificationTaskFailed, notificationTaskPartiallyComplete, notificationTaskUniqueId, notificationTemplateTypeDetailsRecord, notificationTemplateTypeInfoRecord, notificationUserCollectionReference, notificationUserConverter, notificationUserFirestoreCollection, notificationUserHasExclusionQuery, notificationUserIdentity, notificationUsersFlaggedForNeedsSyncQuery, notificationWeekCollectionReference, notificationWeekCollectionReferenceFactory, notificationWeekConverter, notificationWeekFirestoreCollectionFactory, notificationWeekFirestoreCollectionGroup, notificationWeekIdentity, notificationsPastSendAtTimeQuery, notificationsReadyForCleanupQuery, offset, onCallCreateModelParams, onCallCreateModelResult, onCallCreateModelResultWithDocs, onCallDeleteModelParams, onCallDevelopmentParams, onCallReadModelParams, onCallTypedModelParams, onCallTypedModelParamsFunction, onCallUpdateModelParams, optionalFirestoreArray, optionalFirestoreBoolean, optionalFirestoreDate, optionalFirestoreEnum, optionalFirestoreField, optionalFirestoreNumber, optionalFirestoreString, optionalFirestoreUID, optionalFirestoreUnitedStatesAddress, orderBy, orderByDocumentId, readFirestoreModelKey, readFirestoreModelKeyFromDocumentSnapshot, replaceConstraints, selectFromFirebaseModelsService, separateConstraints, setIdAndKeyFromKeyIdRefOnDocumentData, setIdAndKeyFromSnapshotOnDocumentData, shouldSaveNotificationToNotificationWeek, shouldSendCreatedNotificationInput, snapshotConverterFunctions, snapshotStreamDataForAccessor, snapshotStreamForAccessor, sortNotificationItemsFunction, startAfter, startAt, startAtValue, storageFileCollectionReference, storageFileConverter, storageFileFirestoreCollection, storageFileFunctionMap, storageFileFunctionTypeConfigMap, storageFileIdentity, storageFileModelCrudFunctionsConfig, storageFileProcessingNotificationTaskTemplate, storageFilePurposeAndUserQuery, storageFileUploadUserSimpleClaimsConfiguration, storageFilesQueuedForDeleteQuery, storageFilesQueuedForProcessingQuery, storageListFilesResultFactory, storageListFilesResultHasNoNextError, storagePathFactory, storedFileReaderFactory, streamFromOnSnapshot, systemStateCollectionReference, systemStateConverter, systemStateFirestoreCollection, systemStateIdentity, twoWayFlatFirestoreModelKey, unreadNotificationItems, unsupportedFirestoreDriverFunctionError, updateNotificationBoxRecipientTemplateConfigRecord, updateNotificationRecipient, updateNotificationUserDefaultNotificationBoxRecipientConfig, updateNotificationUserNotificationBoxRecipientConfigIfChanged, updateNotificationUserNotificationBoxRecipientConfigs, updateNotificationUserNotificationSendExclusions, updateWithAccessorUpdateAndConverterFunction, uploadFileWithStream, useContextAuth, useContextAuthUid, useDocumentSnapshot, useDocumentSnapshotData, useFirebaseModelsService, userUploadsFolderSlashPathFactory, userUploadsFolderStoragePathFactory, where, whereDateIsAfter, whereDateIsAfterWithSort, whereDateIsBefore, whereDateIsBeforeWithSort, whereDateIsBetween, whereDateIsInRange, whereDateIsOnOrAfter, whereDateIsOnOrAfterWithSort, whereDateIsOnOrBefore, whereDateIsOnOrBeforeWithSort, whereDocumentId, whereStringHasRootIdentityModelKey, whereStringValueHasPrefix };
11410
+ export { ALL_STORAGE_FILE_NOTIFICATION_TASK_TYPES, ALL_USER_UPLOADS_FOLDER_NAME, ALL_USER_UPLOADS_FOLDER_PATH, AbstractFirestoreDocument, AbstractFirestoreDocumentDataAccessorWrapper, AbstractFirestoreDocumentWithParent, AbstractSubscribeOrUnsubscribeToNotificationBoxParams, AbstractSubscribeToNotificationBoxParams, AppNotificationTemplateTypeInfoRecordService, BASE_MODEL_STORAGE_FILE_PATH, CALL_MODEL_APP_FUNCTION_KEY, COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION, CREATE_NOTIFICATION_ID_REQUIRED_ERROR_CODE, CleanupSentNotificationsParams, ContextGrantedModelRolesReaderInstance, CreateNotificationBoxParams, CreateNotificationSummaryParams, CreateNotificationUserParams, CreateStorageFileParams, DBX_FIREBASE_SERVER_NO_AUTH_ERROR_CODE, DBX_FIREBASE_SERVER_NO_UID_ERROR_CODE, DEFAULT_DATE_CELL_RANGE_VALUE, DEFAULT_FIRESTORE_DATE_CELL_SCHEDULE_VALUE, DEFAULT_FIRESTORE_ITEM_PAGE_ITERATOR_ITEMS_PER_PAGE, DEFAULT_FIRESTORE_STRING_FIELD_VALUE, DEFAULT_FIRESTORE_UNITED_STATES_ADDRESS_VALUE, DEFAULT_FIRESTORE_WEBSITE_FILE_LINK_VALUE, DEFAULT_ITERATE_FIRESTORE_DOCUMENT_SNAPSHOT_BATCHES_BATCH_SIZE, DEFAULT_NOTIFICATION_TASK_NOTIFICATION_MODEL_KEY, DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS, DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY, DEFAULT_NOTIFICATION_TEMPLATE_TYPE, DEFAULT_QUERY_CHANGE_WATCHER_DELAY, DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER, DEFAULT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, DEFAULT_WEBSITE_LINK, DeleteAllQueuedStorageFilesParams, DeleteStorageFileParams, DownloadStorageFileParams, EXACT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_NETWORK_REQUEST_FAILED, FIREBASE_AUTH_PASSWORD_MAX_LENGTH, FIREBASE_AUTH_PASSWORD_MIN_LENGTH, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, FIREBASE_AUTH_WRONG_PASSWORD, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_PASSWORD_KEY, FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING, FIRESTORE_COLLECTION_NAME_SEPARATOR, FIRESTORE_DUMMY_MODEL_KEY, FIRESTORE_EMPTY_VALUE, FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE, FIRESTORE_ITEM_PAGE_ITERATOR, FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE, FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE, FIRESTORE_MAX_WHERE_IN_FILTER_ARGS_COUNT, FIRESTORE_MODEL_ID_REGEX, FIRESTORE_MODEL_KEY_REGEX, FIRESTORE_MODEL_KEY_REGEX_STRICT, FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, FIRESTORE_PASSTHROUGH_FIELD, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, FirebaseDevelopmentFunctions, FirebaseModelPermissionServiceInstance, FirebaseServerError, FirestoreAccessorStreamMode, FirestoreDocumentContextType, HIGH_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, InferredTargetModelIdParams, InferredTargetModelParams, InitializeAllApplicableNotificationBoxesParams, InitializeAllApplicableNotificationSummariesParams, InitializeAllStorageFilesFromUploadsParams, InitializeNotificationModelParams, InitializeStorageFileFromUploadParams, IsFirestoreModelId, IsFirestoreModelIdOrKey, IsFirestoreModelKey, LOW_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, MAX_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MIN_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER, MODEL_STORAGE_FILE_SLASH_PATH_FACTORY, ModifyBeforeSetFirestoreDocumentDataAccessorWrapper, NOTIFICATION_BOX_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_BOX_EXCLUSION_TARGET_INVALID_ERROR_CODE, NOTIFICATION_BOX_EXISTS_FOR_MODEL_ERROR_CODE, NOTIFICATION_BOX_RECIPIENT_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_MESSAGE_MAX_LENGTH, NOTIFICATION_MESSAGE_MIN_LENGTH, NOTIFICATION_MODEL_ALREADY_INITIALIZED_ERROR_CODE, NOTIFICATION_RECIPIENT_NAME_MAX_LENGTH, NOTIFICATION_RECIPIENT_NAME_MIN_LENGTH, NOTIFICATION_SUBJECT_MAX_LENGTH, NOTIFICATION_SUBJECT_MIN_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_MESSAGE_MAX_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_SUBJECT_MAX_LENGTH, NOTIFICATION_SUMMARY_ITEM_LIMIT, NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP, NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING, NOTIFICATION_USER_BLOCKED_FROM_BEING_ADD_TO_RECIPIENTS_ERROR_CODE, NOTIFICATION_USER_INVALID_UID_FOR_CREATE_ERROR_CODE, NOTIFICATION_USER_LOCKED_CONFIG_FROM_BEING_UPDATED_ERROR_CODE, NOTIFICATION_WEEK_NOTIFICATION_ITEM_LIMIT, NotificationBoxDocument, NotificationBoxRecipientFlag, NotificationBoxRecipientTemplateConfigArrayEntryParam, NotificationBoxRecipientTemplateConfigBoolean, NotificationDocument, NotificationFirestoreCollections, NotificationFunctions, NotificationMessageFlag, NotificationRecipientParams, NotificationRecipientSendFlag, NotificationSendState, NotificationSendType, NotificationSummaryDocument, NotificationUserDocument, NotificationWeekDocument, ProcessAllQueuedStorageFilesParams, ProcessStorageFileParams, RUN_DEV_FUNCTION_APP_FUNCTION_KEY, ResyncAllNotificationUserParams, ResyncNotificationUserParams, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, STORAGEFILE_RELATED_FILE_METADATA_KEY, STORAGE_FILE_ALREADY_PROCESSED_ERROR_CODE, STORAGE_FILE_CANNOT_BE_DELETED_YET_ERROR_CODE, STORAGE_FILE_NOT_FLAGGED_FOR_DELETION_ERROR_CODE, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE, STORAGE_FILE_PROCESSING_NOT_ALLOWED_FOR_INVALID_STATE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_AVAILABLE_FOR_TYPE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_QUEUED_FOR_PROCESSING_ERROR_CODE, STORAGE_FILE_PROCESSING_STUCK_THROTTLE_CHECK_MS, STORAGE_FILE_UPLOAD_USER_ROLE, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, ScheduledFunctionDevelopmentFirebaseFunctionParams, ScheduledFunctionDevelopmentFunctionTypeEnum, SendNotificationParams, SendQueuedNotificationsParams, StorageFileCreationType, StorageFileDocument, StorageFileFirestoreCollections, StorageFileFunctions, StorageFileProcessingState, StorageFileState, StorageFileUploadStreamUnsupportedError, SystemStateDocument, SystemStateFirestoreCollections, TargetModelIdParams, TargetModelParams, UPLOADED_FILE_DOES_NOT_EXIST_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_DISCARDED_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_FAILED_ERROR_CODE, UPLOADED_FILE_NOT_ALLOWED_TO_BE_INITIALIZED_ERROR_CODE, UPLOADS_FOLDER_PATH, UpdateNotificationBoxParams, UpdateNotificationBoxRecipientLikeParams, UpdateNotificationBoxRecipientParams, UpdateNotificationSummaryParams, UpdateNotificationUserDefaultNotificationBoxRecipientConfigParams, UpdateNotificationUserNotificationBoxRecipientParams, UpdateNotificationUserParams, UpdateStorageFileParams, addConstraintToBuilder, addOrReplaceLimitInConstraints, allChildDocumentsUnderParent, allChildDocumentsUnderParentPath, allChildDocumentsUnderRelativePath, allowDocumentSnapshotWithPathOnceFilter, allowedNotificationRecipients, appNotificationTemplateTypeInfoRecordService, applyExclusionsToNotificationUserNotificationBoxRecipientConfigs, arrayUpdateWithAccessorFunction, asTopLevelFieldPath, asTopLevelFieldPaths, assertFirestoreUpdateHasData, assertStorageUploadOptionsStringFormat, assignDateCellRangeFunction, assignDateCellScheduleFunction, assignUnitedStatesAddressFunction, assignWebsiteFileLinkFunction, assignWebsiteLinkFunction, buildFirebaseCollectionTypeModelTypeMap, calculateNsForNotificationUserNotificationBoxRecipientConfigs, callModelFirebaseFunctionMapFactory, canQueueStorageFileForProcessing, childFirestoreModelKey, childFirestoreModelKeyPath, childFirestoreModelKeys, clientFirebaseFirestoreContextFactory, clientFirebaseStorageContextFactory, combineUploadFileTypeDeterminers, completeSubtaskProcessingAndScheduleCleanupTaskResult, contextGrantedModelRolesReader, contextGrantedModelRolesReaderDoesNotExistErrorMessage, contextGrantedModelRolesReaderPermissionErrorMessage, convertHttpsCallableErrorToReadableError, copyDocumentIdForUserRelatedModifierFunction, copyDocumentIdToFieldModifierFunction, copyStoragePath, copyUserRelatedDataAccessorFactoryFunction, copyUserRelatedDataModifierConfig, createNotificationDocument, createNotificationDocumentIfSending, createNotificationDocumentPair, createNotificationTaskTemplate, createNotificationTemplate, createStorageFileDocumentPair, createStorageFileDocumentPairFactory, dataFromDocumentSnapshots, dataFromSnapshotStream, delayCompletion, determineByFileName, determineByFilePath, determineByFolderName, determineUserByFolder, determineUserByFolderWrapperFunction, determineUserByUserUploadsFolderWrapperFunction, developmentFirebaseFunctionMapFactory, directDataHttpsCallable, documentData, documentDataFunction, documentDataWithIdAndKey, documentReferenceFromDocument, documentReferencesFromDocuments, documentReferencesFromSnapshot, effectiveNotificationBoxRecipientConfig, effectiveNotificationBoxRecipientTemplateConfig, endAt, endAtValue, endBefore, extendFirestoreCollectionWithSingleDocumentAccessor, filterConstraintsOfType, filterDisallowedFirestoreItemPageIteratorInputConstraints, filterDisallowedFirestoreItemPageIteratorInputContraints, filterRepeatCheckpointSnapshots, filterWithDateRange, firebaseAuthErrorToReadableError, firebaseFirestoreClientDrivers, firebaseFirestoreQueryConstraintFunctionsDriver, firebaseFirestoreQueryDriver, firebaseFunctionMapFactory, firebaseModelLoader, firebaseModelPermissionService, firebaseModelService, firebaseModelServiceFactory, firebaseModelsService, firebaseQueryItemAccumulator, firebaseQuerySnapshotAccumulator, firebaseStorageBucketFolderPath, firebaseStorageClientAccessorDriver, firebaseStorageClientAccessorFile, firebaseStorageClientAccessorFolder, firebaseStorageClientDrivers, firebaseStorageClientListFilesResultFactory, firebaseStorageContextFactory, firebaseStorageFileExists, firebaseStorageFilePathFromStorageFilePath, firebaseStorageRefForStorageFilePath, firestoreArray, firestoreArrayMap, firestoreBitwiseObjectMap, firestoreBitwiseSet, firestoreBitwiseSetMap, firestoreBoolean, firestoreClientAccessorDriver, firestoreClientArrayUpdateToUpdateData, firestoreClientIncrementUpdateToUpdateData, firestoreCollectionQueryFactory, firestoreContextFactory, firestoreDate, firestoreDateCellRange, firestoreDateCellRangeArray, firestoreDateCellRangeAssignFn, firestoreDateCellSchedule, firestoreDateCellScheduleAssignFn, firestoreDencoderArray, firestoreDencoderMap, firestoreDencoderStringArray, firestoreDocumentAccessorContextExtension, firestoreDocumentAccessorFactory, firestoreDocumentLoader, firestoreDocumentSnapshotPairsLoader, firestoreDocumentSnapshotPairsLoaderInstance, firestoreDummyKey, firestoreEncodedArray, firestoreEncodedObjectMap, firestoreEnum, firestoreEnumArray, firestoreField, firestoreFieldConfigToModelMapFunctionsRef, firestoreFixedItemPageIteration, firestoreFixedItemPageIterationFactory, firestoreIdBatchVerifierFactory, firestoreIdentityTypeArray, firestoreIdentityTypeArrayName, firestoreItemPageIteration, firestoreItemPageIterationFactory, firestoreLatLngString, firestoreMap, firestoreMapZoomLevel, firestoreModelId, firestoreModelIdArrayField, firestoreModelIdFromDocument, firestoreModelIdFromEmail, firestoreModelIdGrantedRoleArrayMap, firestoreModelIdGrantedRoleMap, firestoreModelIdString, firestoreModelIdentity, firestoreModelIdentityTypeMap, firestoreModelIdsFromDocuments, firestoreModelIdsFromKey, firestoreModelKey, firestoreModelKeyArrayField, firestoreModelKeyCollectionName, firestoreModelKeyCollectionType, firestoreModelKeyCollectionTypeArray, firestoreModelKeyCollectionTypeArrayName, firestoreModelKeyCollectionTypePair, firestoreModelKeyEncodedGrantedRoleMap, firestoreModelKeyFromDocument, firestoreModelKeyGrantedRoleArrayMap, firestoreModelKeyGrantedRoleMap, firestoreModelKeyPairObject, firestoreModelKeyParentKey, firestoreModelKeyParentKeyPartPairs, firestoreModelKeyPart, firestoreModelKeyPartPairs, firestoreModelKeyPartPairsKeyPath, firestoreModelKeyPartPairsPaths, firestoreModelKeyPath, firestoreModelKeyString, firestoreModelKeyTypePair, firestoreModelKeys, firestoreModelKeysFromDocuments, firestoreModelType, firestoreNotificationBoxRecipient, firestoreNotificationBoxRecipientTemplateConfigRecord, firestoreNotificationItem, firestoreNotificationRecipientWithConfig, firestoreNotificationUserDefaultNotificationBoxRecipientConfig, firestoreNotificationUserNotificationBoxRecipientConfig, firestoreNumber, firestoreObjectArray, firestorePassThroughField, firestoreQueryConstraint, firestoreQueryConstraintFactory, firestoreQueryDocumentSnapshotPairsLoader, firestoreQueryFactory, firestoreSingleDocumentAccessor, firestoreString, firestoreSubObject, firestoreTimezoneString, firestoreUID, firestoreUniqueArray, firestoreUniqueKeyedArray, firestoreUniqueNumberArray, firestoreUniqueStringArray, firestoreUnitedStatesAddress, firestoreUnitedStatesAddressAssignFn, firestoreUpdateWithNoDataError, firestoreWebsiteFileLink, firestoreWebsiteFileLinkAssignFn, firestoreWebsiteFileLinkEncodedArray, firestoreWebsiteFileLinkObjectArray, firestoreWebsiteLink, firestoreWebsiteLinkArray, firestoreWebsiteLinkAssignFn, flatFirestoreModelKey, getDataFromDocumentSnapshots, getDocumentSnapshotData, getDocumentSnapshotDataPair, getDocumentSnapshotDataPairs, getDocumentSnapshotDataPairsWithData, getDocumentSnapshotDataTuples, getDocumentSnapshotPair, getDocumentSnapshotPairs, getDocumentSnapshots, getDocumentSnapshotsData, grantFullAccessIfAdmin, grantFullAccessIfAuthUserRelated, grantModelRolesIfAdmin, grantModelRolesIfAdminFunction, grantModelRolesIfAuthUserRelatedModelFunction, grantModelRolesIfFunction, grantModelRolesIfHasAuthRolesFactory, grantModelRolesIfHasAuthRolesFunction, grantModelRolesOnlyIfFunction, grantStorageFileRolesForUserAuthFunction, inContextFirebaseModelServiceFactory, inContextFirebaseModelsServiceFactory, incrementUpdateWithAccessorFunction, inferKeyFromTwoWayFlatFirestoreModelKey, inferNotificationBoxRelatedModelKey, interceptAccessorFactoryFunction, isAdminInFirebaseModelContext, isClientFirebaseError, isCompleteNotificationSendState, isFirebaseStorageObjectNotFoundError, isFirestoreModelId, isFirestoreModelIdOrKey, isFirestoreModelKey, isOwnerOfUserRelatedModelInFirebaseModelContext, iterateFirestoreDocumentSnapshotBatches, iterateFirestoreDocumentSnapshotCheckpoints, iterateFirestoreDocumentSnapshotPairBatches, iterateFirestoreDocumentSnapshotPairs, iterateFirestoreDocumentSnapshots, iterateStorageListFiles, iterateStorageListFilesByEachFile, iterateStorageListFilesFactory, iterationQueryDocChangeWatcher, iterationQueryDocChangeWatcherChangeTypeForGroup, latestDataFromDocuments, latestSnapshotsFromDocuments, lazyFirebaseFunctionsFactory, limit, limitToLast, limitUploadFileTypeDeterminer, limitedFirestoreDocumentAccessorFactory, loadAllFirestoreDocumentSnapshot, loadAllFirestoreDocumentSnapshotPairs, loadDocumentsForDocumentReferences, loadDocumentsForDocumentReferencesFromValues, loadDocumentsForIds, loadDocumentsForIdsFromValues, loadDocumentsForKeys, loadDocumentsForKeysFromValues, loadDocumentsForSnapshots, loadDocumentsForValues, loadNotificationBoxDocumentForReferencePair, makeDocuments, makeFirestoreCollection, makeFirestoreCollectionGroup, makeFirestoreCollectionWithParent, makeFirestoreItemPageIteratorDelegate, makeFirestoreQueryConstraintFunctionsDriver, makeRootSingleItemFirestoreCollection, makeSingleItemFirestoreCollection, mapDataFromSnapshot, mapHttpsCallable, mergeNotificationBoxRecipientTemplateConfigRecords, mergeNotificationBoxRecipientTemplateConfigs, mergeNotificationBoxRecipients, mergeNotificationSendMessagesResult, mergeNotificationUserDefaultNotificationBoxRecipientConfig, mergeNotificationUserNotificationBoxRecipientConfigs, modelStorageSlashPathFactory, modifyBeforeSetInterceptAccessorFactoryFunction, newDocuments, newNotificationBoxRecipientForUid, noContentNotificationMessageFunctionFactory, noStringFormatInStorageUploadOptionsError, notificationBoxCollectionReference, notificationBoxConverter, notificationBoxFirestoreCollection, notificationBoxIdForModel, notificationBoxIdentity, notificationBoxModelCrudFunctionsConfig, notificationBoxRecipientTemplateConfigArrayToRecord, notificationBoxRecipientTemplateConfigRecordToArray, notificationBoxesFlaggedForNeedsInitializationQuery, notificationBoxesFlaggedInvalidQuery, notificationCollectionReference, notificationCollectionReferenceFactory, notificationConverter, notificationFirestoreCollectionFactory, notificationFirestoreCollectionGroup, notificationFunctionMap, notificationFunctionTypeConfigMap, notificationIdentity, notificationMessageFunction, notificationSendExclusionCanSendFunction, notificationSendFlagsImplyIsComplete, notificationSummariesFlaggedForNeedsInitializationQuery, notificationSummaryCollectionReference, notificationSummaryConverter, notificationSummaryFirestoreCollection, notificationSummaryIdForModel, notificationSummaryIdForUidFunctionForRootFirestoreModelIdentity, notificationSummaryIdentity, notificationTaskCanRunNextCheckpoint, notificationTaskComplete, notificationTaskDelayRetry, notificationTaskFailed, notificationTaskPartiallyComplete, notificationTaskUniqueId, notificationTemplateTypeDetailsRecord, notificationTemplateTypeInfoRecord, notificationUserCollectionReference, notificationUserConverter, notificationUserFirestoreCollection, notificationUserHasExclusionQuery, notificationUserIdentity, notificationUsersFlaggedForNeedsSyncQuery, notificationWeekCollectionReference, notificationWeekCollectionReferenceFactory, notificationWeekConverter, notificationWeekFirestoreCollectionFactory, notificationWeekFirestoreCollectionGroup, notificationWeekIdentity, notificationsPastSendAtTimeQuery, notificationsReadyForCleanupQuery, offset, onCallCreateModelParams, onCallCreateModelResult, onCallCreateModelResultWithDocs, onCallDeleteModelParams, onCallDevelopmentParams, onCallReadModelParams, onCallTypedModelParams, onCallTypedModelParamsFunction, onCallUpdateModelParams, optionalFirestoreArray, optionalFirestoreBoolean, optionalFirestoreDate, optionalFirestoreEnum, optionalFirestoreField, optionalFirestoreNumber, optionalFirestoreString, optionalFirestoreUID, optionalFirestoreUnitedStatesAddress, orderBy, orderByDocumentId, readFirestoreModelKey, readFirestoreModelKeyFromDocumentSnapshot, replaceConstraints, selectFromFirebaseModelsService, separateConstraints, setIdAndKeyFromKeyIdRefOnDocumentData, setIdAndKeyFromSnapshotOnDocumentData, shouldSaveNotificationToNotificationWeek, shouldSendCreatedNotificationInput, snapshotConverterFunctions, snapshotStreamDataForAccessor, snapshotStreamForAccessor, sortNotificationItemsFunction, startAfter, startAt, startAtValue, storageFileCollectionReference, storageFileConverter, storageFileFirestoreCollection, storageFileFunctionMap, storageFileFunctionTypeConfigMap, storageFileIdentity, storageFileModelCrudFunctionsConfig, storageFileProcessingNotificationTaskTemplate, storageFilePurposeAndUserQuery, storageFileUploadUserSimpleClaimsConfiguration, storageFilesQueuedForDeleteQuery, storageFilesQueuedForProcessingQuery, storageListFilesResultFactory, storageListFilesResultHasNoNextError, storagePathFactory, storedFileReaderFactory, streamFromOnSnapshot, systemStateCollectionReference, systemStateConverter, systemStateFirestoreCollection, systemStateIdentity, twoWayFlatFirestoreModelKey, unreadNotificationItems, unsupportedFirestoreDriverFunctionError, updateNotificationBoxRecipientTemplateConfigRecord, updateNotificationRecipient, updateNotificationUserDefaultNotificationBoxRecipientConfig, updateNotificationUserNotificationBoxRecipientConfigIfChanged, updateNotificationUserNotificationBoxRecipientConfigs, updateNotificationUserNotificationSendExclusions, updateWithAccessorUpdateAndConverterFunction, uploadFileWithStream, useContextAuth, useContextAuthUid, useDocumentSnapshot, useDocumentSnapshotData, useFirebaseModelsService, userUploadsFolderSlashPathFactory, userUploadsFolderStoragePathFactory, where, whereDateIsAfter, whereDateIsAfterWithSort, whereDateIsBefore, whereDateIsBeforeWithSort, whereDateIsBetween, whereDateIsInRange, whereDateIsOnOrAfter, whereDateIsOnOrAfterWithSort, whereDateIsOnOrBefore, whereDateIsOnOrBeforeWithSort, whereDocumentId, whereStringHasRootIdentityModelKey, whereStringValueHasPrefix };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase",
3
- "version": "12.5.8",
3
+ "version": "12.5.10",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./src/index.d.ts",
@@ -82,12 +82,16 @@ export declare function grantModelRolesOnlyIfFunction<C, R extends string = stri
82
82
  */
83
83
  export type GrantRolesIfFunction<C, R extends string = string> = (context: C, otherwise?: GrantRolesOtherwiseFunction<R>) => Promise<GrantedRoleMap<R>>;
84
84
  export type GeneralGrantRolesIfFunction<C> = <R extends string = string>(context: C, otherwise?: GrantRolesOtherwiseFunction<R>) => Promise<GrantedRoleMap<R>>;
85
+ /**
86
+ * The result of a GrantedRolesOtherwiseFunction.
87
+ */
88
+ export type GrantedRolesOtherwiseFunctionResult<R extends string = string> = PromiseOrValue<Maybe<GrantedRoleMap<R>>>;
85
89
  /**
86
90
  * Used as the "else" statement for grantModelRolesIfFunction.
87
91
  *
88
92
  * If no roles are returned, the grantModelRolesIfFunction() will return a NoAccessRoleMap.
89
93
  */
90
- export type GrantRolesOtherwiseFunction<R extends string = string> = Getter<Maybe<PromiseOrValue<Maybe<GrantedRoleMap<R>>>>>;
94
+ export type GrantRolesOtherwiseFunction<R extends string = string> = Getter<GrantedRolesOtherwiseFunctionResult<R>>;
91
95
  /**
92
96
  * Creates a GrantRolesIfFunction.
93
97
  *
@@ -1,4 +1,4 @@
1
- import { type ArrayOrValue, type DateOrUnixDateTimeNumber, type FileSize, type Milliseconds, type MimeTypeWithoutParameters, type ISO8601DateString, type Maybe } from '@dereekb/util';
1
+ import { type ArrayOrValue, type DateOrUnixDateTimeNumber, type FileSize, type Milliseconds, type MimeTypeWithoutParameters, type ISO8601DateString, type Maybe, type ContentDispositionString, type ContentTypeMimeType } from '@dereekb/util';
2
2
  import { type Observable } from 'rxjs';
3
3
  export type FirebaseStorageLikeStorage = {
4
4
  /**
@@ -59,11 +59,11 @@ export interface StorageSignedDownloadUrlConfig {
59
59
  readonly virtualHostedStyle?: boolean;
60
60
  readonly cname?: string;
61
61
  readonly contentMd5?: string;
62
- readonly contentType?: string;
62
+ readonly contentType?: ContentTypeMimeType;
63
63
  readonly extensionHeaders?: Record<string, ArrayOrValue<string>>;
64
64
  readonly promptSaveAs?: string;
65
- readonly responseDisposition?: string;
66
- readonly responseType?: string;
65
+ readonly responseDisposition?: ContentDispositionString;
66
+ readonly responseType?: ContentTypeMimeType;
67
67
  readonly queryParams?: Record<string, string>;
68
68
  }
69
69
  /**
@@ -13,4 +13,5 @@ export * from './notification.message';
13
13
  export * from './notification.query';
14
14
  export * from './notification.send';
15
15
  export * from './notification.task';
16
+ export * from './notification.task.subtask';
16
17
  export * from './notification.util';
@@ -0,0 +1,56 @@
1
+ import { type Maybe } from '@dereekb/util';
2
+ import { type NotificationTaskCheckpointString } from './notification';
3
+ import { type NotificationItemMetadata } from './notification.item';
4
+ import { type NotificationTaskServiceHandleNotificationTaskResult } from './notification.task';
5
+ /**
6
+ * Used as a descriminator to determine which processing configuration to run for the input value.
7
+ */
8
+ export type NotificationTaskSubtaskTarget = string;
9
+ /**
10
+ * A subtask checkpoint.
11
+ *
12
+ * It is similar to NotificationTaskCheckpointString, but is stored within the subtask data.
13
+ */
14
+ export type NotificationTaskSubtaskCheckpointString = NotificationTaskCheckpointString;
15
+ /**
16
+ * Metadata for a subtask.
17
+ *
18
+ * It is similar to NotificationItemMetadata, but is stored within the subtask data.
19
+ */
20
+ export type NotificationTaskSubtaskMetadata = NotificationItemMetadata;
21
+ /**
22
+ * A base NotificationTask's subtask data structure.
23
+ */
24
+ export interface NotificationTaskSubtaskData<M extends NotificationTaskSubtaskMetadata = NotificationTaskSubtaskMetadata, S extends NotificationTaskSubtaskCheckpointString = NotificationTaskSubtaskCheckpointString> {
25
+ /**
26
+ * The steps of the underlying subtask that have already been completed.
27
+ */
28
+ readonly sfps?: Maybe<S[]>;
29
+ /**
30
+ * Arbitrary metadata that is stored by the underlying subtask.
31
+ */
32
+ readonly sd?: Maybe<M>;
33
+ }
34
+ export declare const NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING: NotificationTaskCheckpointString;
35
+ export declare const NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP: NotificationTaskCheckpointString;
36
+ /**
37
+ * The maximum number of times to delay the cleanup step of a StorageFileProcessingNotificationTask.
38
+ */
39
+ export declare const DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS = 4;
40
+ /**
41
+ * The default amount of time to delay the cleanup step of a StorageFileProcessingNotificationTask that failed to cleanup successfully.
42
+ */
43
+ export declare const DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY: number;
44
+ /**
45
+ * There are two task checkpoints, "processing" and "cleanup".
46
+ *
47
+ * Processing includes all of the subtask processing, while cleanup is scheduled for after the subtasks are complete, and
48
+ * is used for updating/deleting the StorageFile depending on the final processing outcome.
49
+ *
50
+ * Not to be confused with the NotificationTaskSubtaskCheckpointString, which is configured for the each subtask's processing checkpoint.
51
+ */
52
+ export type NotificationTaskSubtaskCheckpoint = typeof NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING | typeof NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP;
53
+ /**
54
+ * Returned by a subtask to complete the processing step and schedule the cleanup step.
55
+ */
56
+ export declare function completeSubtaskProcessingAndScheduleCleanupTaskResult<D extends NotificationTaskSubtaskData>(): NotificationTaskServiceHandleNotificationTaskResult<D, NotificationTaskSubtaskCheckpoint>;
@@ -5,6 +5,7 @@ export * from './storagefile.create';
5
5
  export * from './storagefile.id';
6
6
  export * from './storagefile.query';
7
7
  export * from './storagefile.task';
8
+ export * from './storagefile.permission';
8
9
  export * from './storagefile';
9
10
  export * from './storagefile.file';
10
11
  export * from './storagefile.upload';
@@ -1,8 +1,8 @@
1
1
  import { TargetModelParams, OnCallCreateModelResult } from '../../common';
2
2
  import { type ModelFirebaseCrudFunction, type FirebaseFunctionTypeConfigMap, type ModelFirebaseCrudFunctionConfigMap, type ModelFirebaseFunctionMap, ModelFirebaseCreateFunction } from '../../client';
3
- import { StorageFileTypes } from './storagefile';
4
- import { StorageBucketId, StoragePath, StorageSlashPath } from '../../common/storage';
5
- import { Maybe } from '@dereekb/util';
3
+ import { StorageFileSignedDownloadUrl, StorageFileTypes } from './storagefile';
4
+ import { type StorageBucketId, type StoragePath, type StorageSlashPath } from '../../common/storage';
5
+ import { ContentDispositionString, ContentTypeMimeType, Maybe, Milliseconds } from '@dereekb/util';
6
6
  /**
7
7
  * Used for directly create a new StorageFile.
8
8
  */
@@ -110,6 +110,38 @@ export interface DeleteAllQueuedStorageFilesResult {
110
110
  */
111
111
  readonly storageFilesFailedDeleting: number;
112
112
  }
113
+ export declare class DownloadStorageFileParams extends TargetModelParams {
114
+ /**
115
+ * Date to expire the download URL.
116
+ */
117
+ expiresAt?: Maybe<Date>;
118
+ /**
119
+ * Duration in milliseconds to expire the download URL from now.
120
+ */
121
+ expiresIn?: Maybe<Milliseconds>;
122
+ /**
123
+ * The content disposition for the response to use.
124
+ */
125
+ responseDisposition?: Maybe<ContentDispositionString>;
126
+ /**
127
+ * The content type for the response to use.
128
+ *
129
+ * Only available to admins.
130
+ */
131
+ responseContentType?: Maybe<ContentTypeMimeType>;
132
+ /**
133
+ * Whether or not an admin is creating the link.
134
+ *
135
+ * Allows a longer expiration.
136
+ */
137
+ asAdmin?: Maybe<boolean>;
138
+ }
139
+ export interface DownloadStorageFileResult {
140
+ /**
141
+ * The download URL.
142
+ */
143
+ readonly url: StorageFileSignedDownloadUrl;
144
+ }
113
145
  export type StorageFileFunctionTypeMap = {};
114
146
  export declare const storageFileFunctionTypeConfigMap: FirebaseFunctionTypeConfigMap<StorageFileFunctionTypeMap>;
115
147
  export type StorageFileModelCrudFunctionsConfig = {
@@ -123,6 +155,9 @@ export type StorageFileModelCrudFunctionsConfig = {
123
155
  _: UpdateStorageFileParams;
124
156
  process: [ProcessStorageFileParams, ProcessStorageFileResult];
125
157
  };
158
+ read: {
159
+ download: [DownloadStorageFileParams, DownloadStorageFileResult];
160
+ };
126
161
  delete: {
127
162
  _: DeleteStorageFileParams;
128
163
  };
@@ -140,6 +175,9 @@ export declare abstract class StorageFileFunctions implements ModelFirebaseFunct
140
175
  update: ModelFirebaseCrudFunction<UpdateStorageFileParams>;
141
176
  process: ModelFirebaseCrudFunction<ProcessStorageFileParams, ProcessStorageFileResult>;
142
177
  };
178
+ readStorageFile: {
179
+ download: ModelFirebaseCrudFunction<DownloadStorageFileParams, DownloadStorageFileResult>;
180
+ };
143
181
  deleteStorageFile: {
144
182
  delete: ModelFirebaseCrudFunction<DeleteStorageFileParams>;
145
183
  };
@@ -1,6 +1,6 @@
1
1
  import { type Maybe } from '@dereekb/util';
2
2
  import { type GrantedReadRole, type GrantedUpdateRole } from '@dereekb/model';
3
- import { AbstractFirestoreDocument, type CollectionReference, type FirestoreCollection, type FirestoreContext, type FirebaseAuthUserId, type FirebaseAuthOwnershipKey, type StoragePath } from '../../common';
3
+ import { AbstractFirestoreDocument, type CollectionReference, type FirestoreCollection, type FirestoreContext, type FirebaseAuthUserId, type FirebaseAuthOwnershipKey, type StoragePath, type StorageSignedDownloadUrl, type StorageDownloadUrl } from '../../common';
4
4
  import { type StorageFileId, type StorageFileMetadata, type StorageFilePurpose } from './storagefile.id';
5
5
  import { type NotificationKey } from '../notification';
6
6
  export declare abstract class StorageFileFirestoreCollections {
@@ -81,25 +81,59 @@ export declare enum StorageFileProcessingState {
81
81
  PROCESSING = 2,
82
82
  /**
83
83
  * The StorageFile has encountered an error during processing.
84
+ *
85
+ * It can be queued for reprocessing.
84
86
  */
85
87
  FAILED = 3,
86
88
  /**
87
89
  * The StorageFile has been processed or required no processing and is done.
90
+ *
91
+ * It can be queued for reprocessing.
88
92
  */
89
93
  SUCCESS = 4,
90
94
  /**
91
- * The StorageFile has been archived. It should not be processed.
95
+ * The StorageFile has been archived.
96
+ *
97
+ * It cannot be queued for reprocessing.
92
98
  */
93
99
  ARCHIVED = 5,
94
100
  /**
95
101
  * The StorageFile shouldn't be processed.
102
+ *
103
+ * It cannot be queued for reprocessing.
96
104
  */
97
105
  DO_NOT_PROCESS = 6
98
106
  }
107
+ /**
108
+ * If true, the StorageFile can safely be re-queued for processing.
109
+ *
110
+ * Requirements:
111
+ * - Has a purpose
112
+ * - The processing state is not already queued for processing, or processing.
113
+ * - The processing state is not archived or marked as do not process, as these should never be re-processed.
114
+ *
115
+ * @param state
116
+ * @returns
117
+ */
118
+ export declare function canQueueStorageFileForProcessing(storageFile: Pick<StorageFile, 'ps' | 'p'>): boolean;
99
119
  /**
100
120
  * After 3 hours of being in the PROCESSING state, we can check for retring processing.
101
121
  */
102
122
  export declare const STORAGE_FILE_PROCESSING_STUCK_THROTTLE_CHECK_MS: number;
123
+ /**
124
+ * A Google Cloud public download URL for a StorageFile.
125
+ *
126
+ * This URL is not protected by authentication and is the permanent URL for the file.
127
+ *
128
+ * Consider using a StorageFileSignedDownloadUrl if the file should be protected.
129
+ */
130
+ export type StorageFilePublicDownloadUrl = StorageDownloadUrl;
131
+ /**
132
+ * A Google Cloud signed download URL for a StorageFile.
133
+ *
134
+ * It expires after a period of time.
135
+ */
136
+ export type StorageFileSignedDownloadUrl = StorageSignedDownloadUrl;
103
137
  /**
104
138
  * A global storage file in the system.
105
139
  *
@@ -120,6 +154,10 @@ export interface StorageFile<M extends StorageFileMetadata = StorageFileMetadata
120
154
  fs: StorageFileState;
121
155
  /**
122
156
  * Processing state of the storage file.
157
+ *
158
+ * The state is important for managing the processing of the StorageFile.
159
+ *
160
+ * Once processing is finished, the state determines whether or not the StorageFile can be processed again.
123
161
  */
124
162
  ps: StorageFileProcessingState;
125
163
  /**
@@ -154,6 +192,8 @@ export interface StorageFile<M extends StorageFileMetadata = StorageFileMetadata
154
192
  o?: Maybe<FirebaseAuthOwnershipKey>;
155
193
  /**
156
194
  * Purpose of the file, if applicable.
195
+ *
196
+ * Is required for processing a StorageFile.
157
197
  */
158
198
  p?: Maybe<StorageFilePurpose>;
159
199
  /**
@@ -167,7 +207,13 @@ export interface StorageFile<M extends StorageFileMetadata = StorageFileMetadata
167
207
  */
168
208
  sdat?: Maybe<Date>;
169
209
  }
170
- export type StorageFileRoles = 'process' | GrantedUpdateRole | GrantedReadRole;
210
+ /**
211
+ * Granted roles for creating a download link to the StorageFile's file.
212
+ *
213
+ * The admin_download role allows specifying additional parameters and longer expiration times.
214
+ */
215
+ export type StorageFileDownloadRole = 'download' | 'admin_download';
216
+ export type StorageFileRoles = StorageFileDownloadRole | 'process' | GrantedUpdateRole | GrantedReadRole;
171
217
  export declare class StorageFileDocument extends AbstractFirestoreDocument<StorageFile, StorageFileDocument, typeof storageFileIdentity> {
172
218
  get modelIdentity(): import("../../common").RootFirestoreModelIdentity<"storageFile", "sf">;
173
219
  }
@@ -0,0 +1,28 @@
1
+ import { type FirebasePermissionServiceModel, type FirestoreModelKey, type GrantedRolesOtherwiseFunctionResult, type GrantRolesOtherwiseFunction, type StorageFile, type StorageFileDocument, type StorageFileRoles, type FirebaseModelContext } from '@dereekb/firebase';
2
+ import { type Getter, type Maybe } from '@dereekb/util';
3
+ /**
4
+ * grantStorageFileRolesForUserAuthFunction() configuration
5
+ */
6
+ export interface GrantStorageFileRolesForUserAuthFunctionConfig<T extends FirebaseModelContext> {
7
+ readonly output: FirebasePermissionServiceModel<StorageFile, StorageFileDocument>;
8
+ readonly context: T;
9
+ readonly model: StorageFileDocument;
10
+ }
11
+ export interface GrantStorageFileRolesForUserAuthInput {
12
+ /**
13
+ * Roles to grant if the user matches the storage file user.
14
+ */
15
+ readonly rolesForStorageFileUser?: Maybe<Getter<GrantedRolesOtherwiseFunctionResult<StorageFileRoles>>>;
16
+ /**
17
+ * Roles to grant if the StorageFile has an ownership key.
18
+ */
19
+ readonly rolesForStorageFileOwnershipKey?: Maybe<(ownershipKey: FirestoreModelKey) => GrantedRolesOtherwiseFunctionResult<StorageFileRoles>>;
20
+ }
21
+ export type GrantStorageFileRolesForUserAuthFunction = (input: GrantStorageFileRolesForUserAuthInput) => GrantRolesOtherwiseFunction<StorageFileRoles>;
22
+ /**
23
+ * Creates a new GrantStorageFileRolesForUserAuthFunction given the input config/context.
24
+ *
25
+ * @param config
26
+ * @returns
27
+ */
28
+ export declare function grantStorageFileRolesForUserAuthFunction<T extends FirebaseModelContext>(config: GrantStorageFileRolesForUserAuthFunctionConfig<T>): GrantStorageFileRolesForUserAuthFunction;
@@ -1,41 +1,24 @@
1
1
  import { type Maybe } from '@dereekb/util';
2
- import { type NotificationItemMetadata, type NotificationTaskCheckpointString } from '../notification';
3
2
  import { type CreateNotificationTaskTemplate } from '../notification/notification.create.task';
3
+ import { type NotificationTaskSubtaskCheckpoint, type NotificationTaskSubtaskCheckpointString, type NotificationTaskSubtaskData, type NotificationTaskSubtaskMetadata } from '../notification/notification.task.subtask';
4
4
  import { type NotificationTaskType } from '../notification/notification.id';
5
5
  import { type StorageFileDocument } from './storagefile';
6
6
  import { type StorageFileId, type StorageFilePurpose } from './storagefile.id';
7
7
  import { type StoragePath } from '../../common';
8
8
  export declare const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE: NotificationTaskType;
9
- /**
10
- * There are two task checkpoints, "processing" and "cleanup".
11
- *
12
- * Processing includes all of the subtask processing, while cleanup is scheduled for after the subtasks are complete, and
13
- * is used for updating/deleting the StorageFile depending on the final processing outcome.
14
- */
15
- export type StorageFileProcessingNotificationTaskCheckpoint = 'processing' | 'cleanup';
16
- export declare const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING: StorageFileProcessingNotificationTaskCheckpoint;
17
- export declare const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP: StorageFileProcessingNotificationTaskCheckpoint;
18
9
  /**
19
10
  * A subtask checkpoint.
20
11
  *
21
12
  * It is similar to NotificationTaskCheckpointString, but is used for StorageFile processing.
22
13
  */
23
- export type StorageFileProcessingSubtask = NotificationTaskCheckpointString;
14
+ export type StorageFileProcessingSubtask = NotificationTaskSubtaskCheckpointString;
24
15
  /**
25
16
  * Metadata for a subtask.
26
17
  *
27
18
  * It is similar to NotificationItemMetadata, but is stored within the StorageFileProcessingNotificationTaskData and passed to the subtasks.
28
19
  */
29
- export type StorageFileProcessingSubtaskMetadata = NotificationItemMetadata;
30
- /**
31
- * The maximum number of times to delay the cleanup step of a StorageFileProcessingNotificationTask.
32
- */
33
- export declare const DEFAULT_MAX_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_ATTEMPTS = 4;
34
- /**
35
- * The default amount of time to delay the cleanup step of a StorageFileProcessingNotificationTask that failed to cleanup successfully.
36
- */
37
- export declare const DEFAULT_STORAGE_FILE_PROCESSING_CLEANUP_RETRY_DELAY: number;
38
- export interface StorageFileProcessingNotificationTaskData<M extends StorageFileProcessingSubtaskMetadata = StorageFileProcessingSubtaskMetadata, S extends StorageFileProcessingSubtask = StorageFileProcessingSubtask> {
20
+ export type StorageFileProcessingSubtaskMetadata = NotificationTaskSubtaskMetadata;
21
+ export interface StorageFileProcessingNotificationTaskData<M extends StorageFileProcessingSubtaskMetadata = StorageFileProcessingSubtaskMetadata, S extends StorageFileProcessingSubtask = StorageFileProcessingSubtask> extends NotificationTaskSubtaskData<M, S> {
39
22
  /**
40
23
  * The StorageFileDocument id.
41
24
  */
@@ -52,14 +35,6 @@ export interface StorageFileProcessingNotificationTaskData<M extends StorageFile
52
35
  * Is retrieved from the StorageFile the first time the task is run.
53
36
  */
54
37
  readonly p?: Maybe<StorageFilePurpose>;
55
- /**
56
- * The steps of the underlying subtask that have already been completed.
57
- */
58
- readonly sfps?: Maybe<S[]>;
59
- /**
60
- * Arbitrary metadata that is stored by the underlying subtask.
61
- */
62
- readonly sd?: Maybe<M>;
63
38
  }
64
39
  export interface StorageFileProcessingNotificationTaskInput<M extends StorageFileProcessingSubtaskMetadata = StorageFileProcessingSubtaskMetadata> extends Omit<StorageFileProcessingNotificationTaskData<M>, 'storageFile' | 'p' | 'sfps'> {
65
40
  readonly storageFileDocument: StorageFileDocument;
@@ -67,3 +42,15 @@ export interface StorageFileProcessingNotificationTaskInput<M extends StorageFil
67
42
  }
68
43
  export declare function storageFileProcessingNotificationTaskTemplate(input: StorageFileProcessingNotificationTaskInput): CreateNotificationTaskTemplate;
69
44
  export declare const ALL_STORAGE_FILE_NOTIFICATION_TASK_TYPES: NotificationTaskType[];
45
+ /**
46
+ * @deprecated Use NotificationTaskSubtaskCheckpoint instead.
47
+ */
48
+ export type StorageFileProcessingNotificationTaskCheckpoint = NotificationTaskSubtaskCheckpoint;
49
+ /**
50
+ * @deprecated Use NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING instead.
51
+ */
52
+ export declare const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_PROCESSING: StorageFileProcessingNotificationTaskCheckpoint;
53
+ /**
54
+ * @deprecated Use NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP instead.
55
+ */
56
+ export declare const STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_CHECKPOINT_CLEANUP: StorageFileProcessingNotificationTaskCheckpoint;
package/test/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [12.5.10](https://github.com/dereekb/dbx-components/compare/v12.5.9-dev...v12.5.10) (2025-11-21)
6
+
7
+
8
+
9
+ ## [12.5.9](https://github.com/dereekb/dbx-components/compare/v12.5.8-dev...v12.5.9) (2025-11-16)
10
+
11
+
12
+
5
13
  ## [12.5.8](https://github.com/dereekb/dbx-components/compare/v12.5.7-dev...v12.5.8) (2025-11-06)
6
14
 
7
15
 
package/test/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase/test",
3
- "version": "12.5.8",
3
+ "version": "12.5.10",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {
6
6
  "@dereekb/util": "*",
@@ -385,19 +385,15 @@ function describeFirebaseStorageAccessorDriverTests(f) {
385
385
  });
386
386
  });
387
387
  // Cannot be tested, will throw "Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information."
388
- /*
389
388
  describe('getSignedUrl()', () => {
390
- it('should return the signed read url.', async () => {
391
- if (existsFile.getSignedUrl) {
392
- const result = await existsFile.getSignedUrl({
393
-
394
- });
395
- expect(result).toBeDefined();
396
- expect(typeof result).toBe('string');
397
- }
398
- });
389
+ it('should return the signed read url.', async () => {
390
+ if (existsFile.getSignedUrl) {
391
+ const result = await existsFile.getSignedUrl({});
392
+ expect(result).toBeDefined();
393
+ expect(typeof result).toBe('string');
394
+ }
395
+ });
399
396
  });
400
- */
401
397
  describe('makePublic()', () => {
402
398
  beforeEach(async () => {
403
399
  await existsFile.delete();
@@ -1 +1 @@
1
- {"version":3,"file":"test.driver.accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/test/src/lib/common/storage/test.driver.accessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.driver.accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/test/src/lib/common/storage/test.driver.accessor.ts"],"names":[],"mappings":"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"}