@dereekb/firebase 10.0.17 → 10.0.19

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
@@ -4640,6 +4640,18 @@ function whereDateIsOnOrAfter(fieldPath, date = new Date()) {
4640
4640
  function whereDateIsOnOrAfterWithSort(fieldPath, date = new Date(), sortDirection) {
4641
4641
  return [orderBy(fieldPath, sortDirection !== null && sortDirection !== void 0 ? sortDirection : 'asc'), whereDateIsOnOrAfter(fieldPath, date)];
4642
4642
  }
4643
+ function whereDateIsOnOrBefore(fieldPath, date = new Date()) {
4644
+ return where(fieldPath, '<=', date.toISOString());
4645
+ }
4646
+ function whereDateIsOnOrBeforeWithSort(fieldPath, date = new Date(), sortDirection) {
4647
+ return [orderBy(fieldPath, sortDirection !== null && sortDirection !== void 0 ? sortDirection : 'desc'), whereDateIsOnOrBefore(fieldPath, date)];
4648
+ }
4649
+ function whereDateIsAfter(fieldPath, date = new Date()) {
4650
+ return where(fieldPath, '>', date.toISOString());
4651
+ }
4652
+ function whereDateIsAfterWithSort(fieldPath, date = new Date(), sortDirection) {
4653
+ return [orderBy(fieldPath, sortDirection !== null && sortDirection !== void 0 ? sortDirection : 'asc'), whereDateIsAfter(fieldPath, date)];
4654
+ }
4643
4655
  function whereDateIsBefore(fieldPath, date = new Date()) {
4644
4656
  return where(fieldPath, '<', date.toISOString());
4645
4657
  }
@@ -6784,54 +6796,190 @@ function lazyFirebaseFunctionsFactory(configMap) {
6784
6796
  };
6785
6797
  }
6786
6798
 
6799
+ /**
6800
+ * Creates a OnCallTypedModelParamsFunction
6801
+ *
6802
+ * @param call
6803
+ * @returns
6804
+ */
6805
+ function onCallTypedModelParamsFunction(call) {
6806
+ return (modelTypeInput, data, specifier) => {
6807
+ const modelType = typeof modelTypeInput === 'string' ? modelTypeInput : modelTypeInput.modelType;
6808
+ if (!modelType) {
6809
+ throw new Error('modelType is required.');
6810
+ }
6811
+ const result = {
6812
+ call,
6813
+ modelType,
6814
+ data
6815
+ };
6816
+ if (specifier != null) {
6817
+ result.specifier = specifier;
6818
+ }
6819
+ return result;
6820
+ };
6821
+ }
6822
+ /**
6823
+ * Pre-configured OnCallTypedModelParamsFunctions for 'create'
6824
+ */
6825
+ const onCallCreateModelParams = onCallTypedModelParamsFunction('create');
6826
+ /**
6827
+ * Pre-configured OnCallTypedModelParamsFunctions for 'read'
6828
+ */
6829
+ const onCallReadModelParams = onCallTypedModelParamsFunction('read');
6830
+ /**
6831
+ * Pre-configured OnCallTypedModelParamsFunctions for 'update'
6832
+ */
6833
+ const onCallUpdateModelParams = onCallTypedModelParamsFunction('update');
6834
+ /**
6835
+ * Pre-configured OnCallTypedModelParamsFunctions for 'delete'
6836
+ */
6837
+ const onCallDeleteModelParams = onCallTypedModelParamsFunction('delete');
6787
6838
  /**
6788
6839
  * Creates a OnCallTypedModelParams
6789
6840
  *
6841
+ * @deprecated use onCallTypedModelParamsFunction instead.
6842
+ *
6790
6843
  * @param modelType
6791
6844
  * @param data
6792
6845
  * @returns
6793
6846
  */
6794
- function onCallTypedModelParams(modelTypeInput, data, specifier) {
6795
- const modelType = typeof modelTypeInput === 'string' ? modelTypeInput : modelTypeInput.modelType;
6796
- if (!modelType) {
6797
- throw new Error('modelType is required.');
6798
- }
6799
- const result = {
6800
- modelType,
6801
- data
6847
+ function onCallTypedModelParams(modelTypeInput, data, specifier, call) {
6848
+ return onCallTypedModelParamsFunction(call)(modelTypeInput, data, specifier);
6849
+ }
6850
+ /**
6851
+ * Key used on the front-end and backend that refers to the call function.
6852
+ */
6853
+ const CALL_MODEL_APP_FUNCTION_KEY = 'callModel';
6854
+ function onCallCreateModelResultWithDocs(result) {
6855
+ return onCallCreateModelResult(util.asArray(result).map(x => x.documentRef.path));
6856
+ }
6857
+ function onCallCreateModelResult(modelKeys) {
6858
+ return {
6859
+ modelKeys: util.asArray(modelKeys)
6802
6860
  };
6803
- if (specifier != null) {
6804
- result.specifier = specifier;
6805
- }
6806
- return result;
6807
6861
  }
6862
+ // MARK: Compat
6808
6863
  /**
6809
6864
  * Key used on the front-end and backend that refers to a specific function for creating models.
6865
+ *
6866
+ * @deprecated Replaced by the callModel function.
6810
6867
  */
6811
6868
  const CREATE_MODEL_APP_FUNCTION_KEY = 'createModel';
6812
6869
  /**
6813
6870
  * Key used on the front-end and backend that refers to a specific function for reading models.
6871
+ *
6872
+ * @deprecated Replaced by the callModel function.
6814
6873
  */
6815
6874
  const READ_MODEL_APP_FUNCTION_KEY = 'readModel';
6816
6875
  /**
6817
6876
  * Key used on the front-end and backend that refers to a specific function for updating models.
6877
+ *
6878
+ * @deprecated Replaced by the callModel function.
6818
6879
  */
6819
6880
  const UPDATE_MODEL_APP_FUNCTION_KEY = 'updateModel';
6820
6881
  /**
6821
6882
  * Key used on the front-end and backend that refers to a specific function for deleting models.
6883
+ *
6884
+ * @deprecated Replaced by the callModel function.
6822
6885
  */
6823
6886
  const DELETE_MODEL_APP_FUNCTION_KEY = 'deleteModel';
6824
- function onCallCreateModelResultWithDocs(result) {
6825
- return onCallCreateModelResult(util.asArray(result).map(x => x.documentRef.path));
6826
- }
6827
- function onCallCreateModelResult(modelKeys) {
6828
- return {
6829
- modelKeys: util.asArray(modelKeys)
6830
- };
6831
- }
6832
6887
 
6833
6888
  const MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT = '_';
6834
6889
  const MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER = ',';
6890
+ /**
6891
+ * Creates a ModelFirebaseFunctionMapFactory for the input config that targets the "callModel" Firebase function.
6892
+ *
6893
+ * @param configMap
6894
+ * @param crudConfigMap
6895
+ * @returns
6896
+ */
6897
+ function callModelFirebaseFunctionMapFactory(configMap, crudConfigMap) {
6898
+ const functionFactory = firebaseFunctionMapFactory(configMap);
6899
+ return functionsInstance => {
6900
+ const functionMap = functionFactory(functionsInstance);
6901
+ const _callFn = util.cachedGetter(() => functions.httpsCallable(functionsInstance, CALL_MODEL_APP_FUNCTION_KEY));
6902
+ function makeCallFunction(call, fn, modelType, specifier) {
6903
+ return mapHttpsCallable(fn(), {
6904
+ mapInput: data => onCallTypedModelParams(modelType, data, specifier, call)
6905
+ }, true);
6906
+ }
6907
+ function makeCallSpecifiers(call, fn, modelType, specifierKeys) {
6908
+ const modelTypeSuffix = util.capitalizeFirstLetter(modelType);
6909
+ const specifiers = {};
6910
+ specifierKeys.forEach(inputSpecifier => {
6911
+ const specifier = inputSpecifier === MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT ? '' : inputSpecifier;
6912
+ const specifierFn = makeCallFunction(call, fn, modelType, inputSpecifier);
6913
+ const fullSpecifierName = `${call}${modelTypeSuffix}${util.capitalizeFirstLetter(specifier)}`;
6914
+ specifiers[fullSpecifierName] = specifierFn;
6915
+ const shortSpecifierName = util.lowercaseFirstLetter(specifier) || call;
6916
+ specifiers[shortSpecifierName] = specifierFn;
6917
+ });
6918
+ return specifiers;
6919
+ }
6920
+ const result = util.build({
6921
+ base: functionMap,
6922
+ build: x => {
6923
+ Object.entries(crudConfigMap).forEach(([modelType, config]) => {
6924
+ const modelTypeSuffix = util.capitalizeFirstLetter(modelType);
6925
+ const {
6926
+ included: crudFunctionKeys,
6927
+ excluded: specifiedCallFunctionKeys
6928
+ } = util.separateValues(config, x => x.indexOf(':') === -1);
6929
+ const crudFunctions = new Set(crudFunctionKeys);
6930
+ const specifiedCallFunctionTuples = specifiedCallFunctionKeys.map(x => {
6931
+ const [crud, functionsSplit] = x.split(':', 2);
6932
+ const functions = functionsSplit.split(MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER);
6933
+ return [crud, functions];
6934
+ });
6935
+ // check that there isn't a repeat crud key configured, which disallowed configuration and would cause some functions to be ignored
6936
+ const encounteredCalls = new Set();
6937
+ function assertCallKeyNotEncountered(crud) {
6938
+ if (encounteredCalls.has(crud)) {
6939
+ throw new Error(`Cannot have multiple declarations of the same crud. Found repeat for crud: ${crud}`);
6940
+ } else {
6941
+ encounteredCalls.add(crud);
6942
+ }
6943
+ }
6944
+ crudFunctions.forEach(assertCallKeyNotEncountered);
6945
+ specifiedCallFunctionTuples.forEach(([crud]) => assertCallKeyNotEncountered(crud));
6946
+ // build and add the functions
6947
+ const specifierFunctions = new Map(specifiedCallFunctionTuples);
6948
+ function addCallFunctions(crud, fn, modelType) {
6949
+ let crudFns;
6950
+ if (crudFunctions.has(crud)) {
6951
+ crudFns = makeCallFunction(crud, fn, modelType);
6952
+ } else if (specifierFunctions.has(crud)) {
6953
+ crudFns = makeCallSpecifiers(crud, fn, modelType, specifierFunctions.get(crud));
6954
+ }
6955
+ if (crudFns) {
6956
+ modelTypeCalls[`${crud}${modelTypeSuffix}`] = crudFns;
6957
+ }
6958
+ }
6959
+ const modelTypeCalls = {};
6960
+ // add functions for each call type
6961
+ addCallFunctions('create', _callFn, modelType);
6962
+ addCallFunctions('read', _callFn, modelType);
6963
+ addCallFunctions('update', _callFn, modelType);
6964
+ addCallFunctions('delete', _callFn, modelType);
6965
+ // tslint:disable-next-line
6966
+ x[modelType] = modelTypeCalls;
6967
+ });
6968
+ }
6969
+ });
6970
+ return result;
6971
+ };
6972
+ }
6973
+ // MARK: Compat
6974
+ /**
6975
+ * @deprecated move to using callModelFirebaseFunctionMapFactory instead and the call configuration in general.
6976
+ *
6977
+ * This will be removed in the next release.
6978
+ *
6979
+ * @param configMap
6980
+ * @param crudConfigMap
6981
+ * @returns
6982
+ */
6835
6983
  function modelFirebaseFunctionMapFactory(configMap, crudConfigMap) {
6836
6984
  const functionFactory = firebaseFunctionMapFactory(configMap);
6837
6985
  return functionsInstance => {
@@ -7819,6 +7967,7 @@ exports.AbstractFirestoreDocument = AbstractFirestoreDocument;
7819
7967
  exports.AbstractFirestoreDocumentDataAccessorWrapper = AbstractFirestoreDocumentDataAccessorWrapper;
7820
7968
  exports.AbstractFirestoreDocumentWithParent = AbstractFirestoreDocumentWithParent;
7821
7969
  exports.BASE_MODEL_STORAGE_FILE_PATH = BASE_MODEL_STORAGE_FILE_PATH;
7970
+ exports.CALL_MODEL_APP_FUNCTION_KEY = CALL_MODEL_APP_FUNCTION_KEY;
7822
7971
  exports.COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION = COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION;
7823
7972
  exports.CREATE_MODEL_APP_FUNCTION_KEY = CREATE_MODEL_APP_FUNCTION_KEY;
7824
7973
  exports.ContextGrantedModelRolesReaderInstance = ContextGrantedModelRolesReaderInstance;
@@ -7907,6 +8056,7 @@ exports.assignUnitedStatesAddressFunction = assignUnitedStatesAddressFunction;
7907
8056
  exports.assignWebsiteFileLinkFunction = assignWebsiteFileLinkFunction;
7908
8057
  exports.assignWebsiteLinkFunction = assignWebsiteLinkFunction;
7909
8058
  exports.buildFirebaseCollectionTypeModelTypeMap = buildFirebaseCollectionTypeModelTypeMap;
8059
+ exports.callModelFirebaseFunctionMapFactory = callModelFirebaseFunctionMapFactory;
7910
8060
  exports.childFirestoreModelKey = childFirestoreModelKey;
7911
8061
  exports.childFirestoreModelKeyPath = childFirestoreModelKeyPath;
7912
8062
  exports.childFirestoreModelKeys = childFirestoreModelKeys;
@@ -8118,10 +8268,15 @@ exports.modifyBeforeSetInterceptAccessorFactoryFunction = modifyBeforeSetInterce
8118
8268
  exports.newDocuments = newDocuments;
8119
8269
  exports.noStringFormatInStorageUploadOptionsError = noStringFormatInStorageUploadOptionsError;
8120
8270
  exports.offset = offset;
8271
+ exports.onCallCreateModelParams = onCallCreateModelParams;
8121
8272
  exports.onCallCreateModelResult = onCallCreateModelResult;
8122
8273
  exports.onCallCreateModelResultWithDocs = onCallCreateModelResultWithDocs;
8274
+ exports.onCallDeleteModelParams = onCallDeleteModelParams;
8123
8275
  exports.onCallDevelopmentParams = onCallDevelopmentParams;
8276
+ exports.onCallReadModelParams = onCallReadModelParams;
8124
8277
  exports.onCallTypedModelParams = onCallTypedModelParams;
8278
+ exports.onCallTypedModelParamsFunction = onCallTypedModelParamsFunction;
8279
+ exports.onCallUpdateModelParams = onCallUpdateModelParams;
8125
8280
  exports.optionalFirestoreArray = optionalFirestoreArray;
8126
8281
  exports.optionalFirestoreBoolean = optionalFirestoreBoolean;
8127
8282
  exports.optionalFirestoreDate = optionalFirestoreDate;
@@ -8162,12 +8317,16 @@ exports.useDocumentSnapshot = useDocumentSnapshot;
8162
8317
  exports.useDocumentSnapshotData = useDocumentSnapshotData;
8163
8318
  exports.useFirebaseModelsService = useFirebaseModelsService;
8164
8319
  exports.where = where;
8320
+ exports.whereDateIsAfter = whereDateIsAfter;
8321
+ exports.whereDateIsAfterWithSort = whereDateIsAfterWithSort;
8165
8322
  exports.whereDateIsBefore = whereDateIsBefore;
8166
8323
  exports.whereDateIsBeforeWithSort = whereDateIsBeforeWithSort;
8167
8324
  exports.whereDateIsBetween = whereDateIsBetween;
8168
8325
  exports.whereDateIsInRange = whereDateIsInRange;
8169
8326
  exports.whereDateIsOnOrAfter = whereDateIsOnOrAfter;
8170
8327
  exports.whereDateIsOnOrAfterWithSort = whereDateIsOnOrAfterWithSort;
8328
+ exports.whereDateIsOnOrBefore = whereDateIsOnOrBefore;
8329
+ exports.whereDateIsOnOrBeforeWithSort = whereDateIsOnOrBeforeWithSort;
8171
8330
  exports.whereDocumentId = whereDocumentId;
8172
8331
  exports.whereStringHasRootIdentityModelKey = whereStringHasRootIdentityModelKey;
8173
8332
  exports.whereStringValueHasPrefix = whereStringValueHasPrefix;
package/index.esm.js CHANGED
@@ -5031,6 +5031,58 @@ function whereDateIsOnOrAfterWithSort(fieldPath, date = new Date(), sortDirectio
5031
5031
  return [orderBy(fieldPath, sortDirection != null ? sortDirection : 'asc'), whereDateIsOnOrAfter(fieldPath, date)];
5032
5032
  }
5033
5033
 
5034
+ /**
5035
+ * Searches dates that are on or before the input date. If no date is input, uses now.
5036
+ *
5037
+ * @param field
5038
+ * @param date
5039
+ * @param sortDirection
5040
+ */
5041
+
5042
+ function whereDateIsOnOrBefore(fieldPath, date = new Date()) {
5043
+ return where(fieldPath, '<=', date.toISOString());
5044
+ }
5045
+
5046
+ /**
5047
+ * Searches dates that are on or before the input date. If no date is input, uses now.
5048
+ *
5049
+ * Sorts in descending order by default.
5050
+ *
5051
+ * @param field
5052
+ * @param date
5053
+ * @param sortDirection
5054
+ */
5055
+
5056
+ function whereDateIsOnOrBeforeWithSort(fieldPath, date = new Date(), sortDirection) {
5057
+ return [orderBy(fieldPath, sortDirection != null ? sortDirection : 'desc'), whereDateIsOnOrBefore(fieldPath, date)];
5058
+ }
5059
+
5060
+ /**
5061
+ * Searches dates that are on or after the input date. If no date is input, uses now.
5062
+ *
5063
+ * @param field
5064
+ * @param date
5065
+ * @param sortDirection
5066
+ */
5067
+
5068
+ function whereDateIsAfter(fieldPath, date = new Date()) {
5069
+ return where(fieldPath, '>', date.toISOString());
5070
+ }
5071
+
5072
+ /**
5073
+ * Searches dates that are on or after the input date. If no date is input, uses now.
5074
+ *
5075
+ * Sorts in ascending order by default.
5076
+ *
5077
+ * @param field
5078
+ * @param date
5079
+ * @param sortDirection
5080
+ */
5081
+
5082
+ function whereDateIsAfterWithSort(fieldPath, date = new Date(), sortDirection) {
5083
+ return [orderBy(fieldPath, sortDirection != null ? sortDirection : 'asc'), whereDateIsAfter(fieldPath, date)];
5084
+ }
5085
+
5034
5086
  /**
5035
5087
  * Searches dates that are on or after the input date. If no date is input, uses now.
5036
5088
  *
@@ -5046,7 +5098,7 @@ function whereDateIsBefore(fieldPath, date = new Date()) {
5046
5098
  /**
5047
5099
  * Searches dates that are on or after the input date. If no date is input, uses now.
5048
5100
  *
5049
- * Sorts in ascending order by default.
5101
+ * Sorts in descending order by default.
5050
5102
  *
5051
5103
  * @param field
5052
5104
  * @param date
@@ -7504,44 +7556,95 @@ function lazyFirebaseFunctionsFactory(configMap) {
7504
7556
  };
7505
7557
  }
7506
7558
 
7559
+ /**
7560
+ * Set of known call types. The basic CRUD functions.
7561
+ */
7562
+
7563
+ /**
7564
+ * A call function type specifier.
7565
+ */
7566
+
7567
+ /**
7568
+ *
7569
+ */
7570
+
7571
+ /**
7572
+ * Creates a OnCallTypedModelParamsFunction
7573
+ *
7574
+ * @param call
7575
+ * @returns
7576
+ */
7577
+ function onCallTypedModelParamsFunction(call) {
7578
+ return (modelTypeInput, data, specifier) => {
7579
+ const modelType = typeof modelTypeInput === 'string' ? modelTypeInput : modelTypeInput.modelType;
7580
+ if (!modelType) {
7581
+ throw new Error('modelType is required.');
7582
+ }
7583
+ const result = {
7584
+ call,
7585
+ modelType,
7586
+ data
7587
+ };
7588
+ if (specifier != null) {
7589
+ result.specifier = specifier;
7590
+ }
7591
+ return result;
7592
+ };
7593
+ }
7594
+
7595
+ /**
7596
+ * Pre-configured OnCallTypedModelParamsFunctions for 'create'
7597
+ */
7598
+ const onCallCreateModelParams = onCallTypedModelParamsFunction('create');
7599
+
7600
+ /**
7601
+ * Pre-configured OnCallTypedModelParamsFunctions for 'read'
7602
+ */
7603
+ const onCallReadModelParams = onCallTypedModelParamsFunction('read');
7604
+
7605
+ /**
7606
+ * Pre-configured OnCallTypedModelParamsFunctions for 'update'
7607
+ */
7608
+ const onCallUpdateModelParams = onCallTypedModelParamsFunction('update');
7609
+
7610
+ /**
7611
+ * Pre-configured OnCallTypedModelParamsFunctions for 'delete'
7612
+ */
7613
+ const onCallDeleteModelParams = onCallTypedModelParamsFunction('delete');
7614
+
7507
7615
  /**
7508
7616
  * Creates a OnCallTypedModelParams
7509
7617
  *
7618
+ * @deprecated use onCallTypedModelParamsFunction instead.
7619
+ *
7510
7620
  * @param modelType
7511
7621
  * @param data
7512
7622
  * @returns
7513
7623
  */
7514
- function onCallTypedModelParams(modelTypeInput, data, specifier) {
7515
- const modelType = typeof modelTypeInput === 'string' ? modelTypeInput : modelTypeInput.modelType;
7516
- if (!modelType) {
7517
- throw new Error('modelType is required.');
7518
- }
7519
- const result = {
7520
- modelType,
7521
- data
7522
- };
7523
- if (specifier != null) {
7524
- result.specifier = specifier;
7525
- }
7526
- return result;
7624
+ function onCallTypedModelParams(modelTypeInput, data, specifier, call) {
7625
+ return onCallTypedModelParamsFunction(call)(modelTypeInput, data, specifier);
7527
7626
  }
7528
7627
 
7529
7628
  /**
7530
- * Key used on the front-end and backend that refers to a specific function for creating models.
7629
+ * Key used on the front-end and backend that refers to the call function.
7531
7630
  */
7532
- const CREATE_MODEL_APP_FUNCTION_KEY = 'createModel';
7631
+ const CALL_MODEL_APP_FUNCTION_KEY = 'callModel';
7632
+
7533
7633
  /**
7534
- * Key used on the front-end and backend that refers to a specific function for reading models.
7634
+ * OnCallTypedModelParams for Create calls.
7535
7635
  */
7536
- const READ_MODEL_APP_FUNCTION_KEY = 'readModel';
7636
+
7537
7637
  /**
7538
- * Key used on the front-end and backend that refers to a specific function for updating models.
7638
+ * OnCallTypedModelParams for Read calls.
7539
7639
  */
7540
- const UPDATE_MODEL_APP_FUNCTION_KEY = 'updateModel';
7640
+
7541
7641
  /**
7542
- * Key used on the front-end and backend that refers to a specific function for deleting models.
7642
+ * OnCallTypedModelParams for Update calls.
7643
+ */
7644
+
7645
+ /**
7646
+ * OnCallTypedModelParams for Delete calls.
7543
7647
  */
7544
- const DELETE_MODEL_APP_FUNCTION_KEY = 'deleteModel';
7545
7648
 
7546
7649
  // MARK: Result
7547
7650
 
@@ -7554,6 +7657,35 @@ function onCallCreateModelResult(modelKeys) {
7554
7657
  };
7555
7658
  }
7556
7659
 
7660
+ // MARK: Compat
7661
+ /**
7662
+ * Key used on the front-end and backend that refers to a specific function for creating models.
7663
+ *
7664
+ * @deprecated Replaced by the callModel function.
7665
+ */
7666
+ const CREATE_MODEL_APP_FUNCTION_KEY = 'createModel';
7667
+
7668
+ /**
7669
+ * Key used on the front-end and backend that refers to a specific function for reading models.
7670
+ *
7671
+ * @deprecated Replaced by the callModel function.
7672
+ */
7673
+ const READ_MODEL_APP_FUNCTION_KEY = 'readModel';
7674
+
7675
+ /**
7676
+ * Key used on the front-end and backend that refers to a specific function for updating models.
7677
+ *
7678
+ * @deprecated Replaced by the callModel function.
7679
+ */
7680
+ const UPDATE_MODEL_APP_FUNCTION_KEY = 'updateModel';
7681
+
7682
+ /**
7683
+ * Key used on the front-end and backend that refers to a specific function for deleting models.
7684
+ *
7685
+ * @deprecated Replaced by the callModel function.
7686
+ */
7687
+ const DELETE_MODEL_APP_FUNCTION_KEY = 'deleteModel';
7688
+
7557
7689
  /**
7558
7690
  * Used to specify which function to direct requests to.
7559
7691
  */
@@ -7577,6 +7709,104 @@ const MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER = ',';
7577
7709
  * Used for building a FirebaseFunctionMap<M> for a specific Functions instance.
7578
7710
  */
7579
7711
 
7712
+ /**
7713
+ * Creates a ModelFirebaseFunctionMapFactory for the input config that targets the "callModel" Firebase function.
7714
+ *
7715
+ * @param configMap
7716
+ * @param crudConfigMap
7717
+ * @returns
7718
+ */
7719
+ function callModelFirebaseFunctionMapFactory(configMap, crudConfigMap) {
7720
+ const functionFactory = firebaseFunctionMapFactory(configMap);
7721
+ return functionsInstance => {
7722
+ const functionMap = functionFactory(functionsInstance);
7723
+ const _callFn = cachedGetter(() => httpsCallable(functionsInstance, CALL_MODEL_APP_FUNCTION_KEY));
7724
+ function makeCallFunction(call, fn, modelType, specifier) {
7725
+ return mapHttpsCallable(fn(), {
7726
+ mapInput: data => onCallTypedModelParams(modelType, data, specifier, call)
7727
+ }, true);
7728
+ }
7729
+ function makeCallSpecifiers(call, fn, modelType, specifierKeys) {
7730
+ const modelTypeSuffix = capitalizeFirstLetter(modelType);
7731
+ const specifiers = {};
7732
+ specifierKeys.forEach(inputSpecifier => {
7733
+ const specifier = inputSpecifier === MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT ? '' : inputSpecifier;
7734
+ const specifierFn = makeCallFunction(call, fn, modelType, inputSpecifier);
7735
+ const fullSpecifierName = `${call}${modelTypeSuffix}${capitalizeFirstLetter(specifier)}`;
7736
+ specifiers[fullSpecifierName] = specifierFn;
7737
+ const shortSpecifierName = lowercaseFirstLetter(specifier) || call;
7738
+ specifiers[shortSpecifierName] = specifierFn;
7739
+ });
7740
+ return specifiers;
7741
+ }
7742
+ const result = build({
7743
+ base: functionMap,
7744
+ build: x => {
7745
+ Object.entries(crudConfigMap).forEach(([modelType, config]) => {
7746
+ const modelTypeSuffix = capitalizeFirstLetter(modelType);
7747
+ const {
7748
+ included: crudFunctionKeys,
7749
+ excluded: specifiedCallFunctionKeys
7750
+ } = separateValues(config, x => x.indexOf(':') === -1);
7751
+ const crudFunctions = new Set(crudFunctionKeys);
7752
+ const specifiedCallFunctionTuples = specifiedCallFunctionKeys.map(x => {
7753
+ const [crud, functionsSplit] = x.split(':', 2);
7754
+ const functions = functionsSplit.split(MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER);
7755
+ return [crud, functions];
7756
+ });
7757
+
7758
+ // check that there isn't a repeat crud key configured, which disallowed configuration and would cause some functions to be ignored
7759
+ const encounteredCalls = new Set();
7760
+ function assertCallKeyNotEncountered(crud) {
7761
+ if (encounteredCalls.has(crud)) {
7762
+ throw new Error(`Cannot have multiple declarations of the same crud. Found repeat for crud: ${crud}`);
7763
+ } else {
7764
+ encounteredCalls.add(crud);
7765
+ }
7766
+ }
7767
+ crudFunctions.forEach(assertCallKeyNotEncountered);
7768
+ specifiedCallFunctionTuples.forEach(([crud]) => assertCallKeyNotEncountered(crud));
7769
+
7770
+ // build and add the functions
7771
+ const specifierFunctions = new Map(specifiedCallFunctionTuples);
7772
+ function addCallFunctions(crud, fn, modelType) {
7773
+ let crudFns;
7774
+ if (crudFunctions.has(crud)) {
7775
+ crudFns = makeCallFunction(crud, fn, modelType);
7776
+ } else if (specifierFunctions.has(crud)) {
7777
+ crudFns = makeCallSpecifiers(crud, fn, modelType, specifierFunctions.get(crud));
7778
+ }
7779
+ if (crudFns) {
7780
+ modelTypeCalls[`${crud}${modelTypeSuffix}`] = crudFns;
7781
+ }
7782
+ }
7783
+ const modelTypeCalls = {};
7784
+
7785
+ // add functions for each call type
7786
+ addCallFunctions('create', _callFn, modelType);
7787
+ addCallFunctions('read', _callFn, modelType);
7788
+ addCallFunctions('update', _callFn, modelType);
7789
+ addCallFunctions('delete', _callFn, modelType);
7790
+
7791
+ // tslint:disable-next-line
7792
+ x[modelType] = modelTypeCalls;
7793
+ });
7794
+ }
7795
+ });
7796
+ return result;
7797
+ };
7798
+ }
7799
+
7800
+ // MARK: Compat
7801
+ /**
7802
+ * @deprecated move to using callModelFirebaseFunctionMapFactory instead and the call configuration in general.
7803
+ *
7804
+ * This will be removed in the next release.
7805
+ *
7806
+ * @param configMap
7807
+ * @param crudConfigMap
7808
+ * @returns
7809
+ */
7580
7810
  function modelFirebaseFunctionMapFactory(configMap, crudConfigMap) {
7581
7811
  const functionFactory = firebaseFunctionMapFactory(configMap);
7582
7812
  return functionsInstance => {
@@ -8850,4 +9080,4 @@ function systemStateFirestoreCollection(firestoreContext, converters) {
8850
9080
  });
8851
9081
  }
8852
9082
 
8853
- export { AbstractFirestoreDocument, AbstractFirestoreDocumentDataAccessorWrapper, AbstractFirestoreDocumentWithParent, BASE_MODEL_STORAGE_FILE_PATH, COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION, CREATE_MODEL_APP_FUNCTION_KEY, ContextGrantedModelRolesReaderInstance, 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_QUERY_CHANGE_WATCHER_DELAY, DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER, DEFAULT_WEBSITE_LINK, DELETE_MODEL_APP_FUNCTION_KEY, 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_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, FirestoreItemPageIterationInstance, InferredTargetModelIdParams, InferredTargetModelParams, IsFirestoreModelId, IsFirestoreModelKey, 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, READ_MODEL_APP_FUNCTION_KEY, RUN_DEV_FUNCTION_APP_FUNCTION_KEY, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, ScheduledFunctionDevelopmentFirebaseFunctionParams, ScheduledFunctionDevelopmentFunctionTypeEnum, SystemStateDocument, SystemStateFirestoreCollections, TargetModelIdParams, TargetModelParams, UPDATE_MODEL_APP_FUNCTION_KEY, addConstraintToBuilder, addOrReplaceLimitInConstraints, allChildDocumentsUnderParent, allChildDocumentsUnderParentPath, allChildDocumentsUnderRelativePath, asTopLevelFieldPath, asTopLevelFieldPaths, assertFirestoreUpdateHasData, assertStorageUploadOptionsStringFormat, assignDateCellRangeFunction, assignDateCellScheduleFunction, assignUnitedStatesAddressFunction, assignWebsiteFileLinkFunction, assignWebsiteLinkFunction, buildFirebaseCollectionTypeModelTypeMap, childFirestoreModelKey, childFirestoreModelKeyPath, childFirestoreModelKeys, clientFirebaseFirestoreContextFactory, clientFirebaseStorageContextFactory, contextGrantedModelRolesReader, contextGrantedModelRolesReaderDoesNotExistErrorMessage, contextGrantedModelRolesReaderPermissionErrorMessage, convertHttpsCallableErrorToReadableError, copyDocumentIdForUserRelatedModifierFunction, copyDocumentIdToFieldModifierFunction, copyUserRelatedDataAccessorFactoryFunction, copyUserRelatedDataModifierConfig, dataFromDocumentSnapshots, dataFromSnapshotStream, developmentFirebaseFunctionMapFactory, directDataHttpsCallable, documentData, documentDataFunction, documentDataWithIdAndKey, documentReferenceFromDocument, documentReferencesFromDocuments, documentReferencesFromSnapshot, endAt, endAtValue, endBefore, extendFirestoreCollectionWithSingleDocumentAccessor, filterConstraintsOfType, filterDisallowedFirestoreItemPageIteratorInputContraints, 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, firestoreClientIncrementUpdateToUpdateData, firestoreContextFactory, firestoreDate, firestoreDateCellRange, firestoreDateCellRangeArray, firestoreDateCellRangeAssignFn, firestoreDateCellSchedule, firestoreDateCellScheduleAssignFn, firestoreDencoderArray, firestoreDencoderMap, firestoreDencoderStringArray, firestoreDocumentAccessorContextExtension, firestoreDocumentAccessorFactory, firestoreDocumentLoader, firestoreDummyKey, firestoreEncodedArray, firestoreEncodedObjectMap, firestoreEnum, firestoreEnumArray, firestoreField, firestoreFieldConfigToModelMapFunctionsRef, firestoreIdBatchVerifierFactory, firestoreIdentityTypeArray, firestoreIdentityTypeArrayName, firestoreItemPageIteration, firestoreItemPageIterationFactory, firestoreLatLngString, firestoreMap, firestoreMapZoomLevel, firestoreModelId, firestoreModelIdArrayField, firestoreModelIdFromDocument, 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, firestoreNumber, firestoreObjectArray, firestorePassThroughField, firestoreQueryConstraint, firestoreQueryConstraintFactory, firestoreQueryFactory, firestoreSingleDocumentAccessor, firestoreString, firestoreSubObject, firestoreTimezoneString, firestoreUID, firestoreUniqueArray, firestoreUniqueKeyedArray, firestoreUniqueStringArray, firestoreUnitedStatesAddress, firestoreUnitedStatesAddressAssignFn, firestoreUpdateWithNoDataError, firestoreWebsiteFileLink, firestoreWebsiteFileLinkAssignFn, firestoreWebsiteFileLinkEncodedArray, firestoreWebsiteFileLinkObjectArray, firestoreWebsiteLink, firestoreWebsiteLinkArray, firestoreWebsiteLinkAssignFn, flatFirestoreModelKey, getDataFromDocumentSnapshots, getDocumentSnapshotData, getDocumentSnapshotDataPair, getDocumentSnapshotDataPairs, getDocumentSnapshotDataTuples, getDocumentSnapshotPair, getDocumentSnapshotPairs, getDocumentSnapshots, getDocumentSnapshotsData, grantFullAccessIfAdmin, grantFullAccessIfAuthUserRelated, grantModelRolesIfAdmin, grantModelRolesIfAdminFunction, grantModelRolesIfAuthUserRelatedModelFunction, grantModelRolesIfFunction, grantModelRolesIfHasAuthRolesFactory, grantModelRolesIfHasAuthRolesFunction, grantModelRolesOnlyIfFunction, inContextFirebaseModelServiceFactory, inContextFirebaseModelsServiceFactory, incrementUpdateWithAccessorFunction, inferKeyFromTwoWayFlatFirestoreModelKey, interceptAccessorFactoryFunction, isAdminInFirebaseModelContext, isFirebaseStorageObjectNotFoundError, isFirestoreModelId, isFirestoreModelKey, isOwnerOfUserRelatedModelInFirebaseModelContext, iterateFirestoreDocumentSnapshotBatches, iterateFirestoreDocumentSnapshotCheckpoints, iterateFirestoreDocumentSnapshotPairBatches, iterateFirestoreDocumentSnapshotPairs, iterateFirestoreDocumentSnapshots, iterationQueryDocChangeWatcher, iterationQueryDocChangeWatcherChangeTypeForGroup, latestDataFromDocuments, latestSnapshotsFromDocuments, lazyFirebaseFunctionsFactory, limit, limitToLast, limitedFirestoreDocumentAccessorFactory, loadDocumentsForDocumentReferences, loadDocumentsForDocumentReferencesFromValues, loadDocumentsForIds, loadDocumentsForIdsFromValues, loadDocumentsForKeys, loadDocumentsForKeysFromValues, loadDocumentsForSnapshots, loadDocumentsForValues, makeDocuments, makeFirestoreCollection, makeFirestoreCollectionGroup, makeFirestoreCollectionWithParent, makeFirestoreItemPageIteratorDelegate, makeFirestoreQueryConstraintFunctionsDriver, makeRootSingleItemFirestoreCollection, makeSingleItemFirestoreCollection, mapDataFromSnapshot, mapHttpsCallable, modelFirebaseFunctionMapFactory, modelStorageSlashPathFactory, modifyBeforeSetInterceptAccessorFactoryFunction, newDocuments, noStringFormatInStorageUploadOptionsError, offset, onCallCreateModelResult, onCallCreateModelResultWithDocs, onCallDevelopmentParams, onCallTypedModelParams, optionalFirestoreArray, optionalFirestoreBoolean, optionalFirestoreDate, optionalFirestoreEnum, optionalFirestoreField, optionalFirestoreNumber, optionalFirestoreString, optionalFirestoreUID, optionalFirestoreUnitedStatesAddress, orderBy, orderByDocumentId, readFirestoreModelKey, replaceConstraints, selectFromFirebaseModelsService, separateConstraints, setIdAndKeyFromKeyIdRefOnDocumentData, setIdAndKeyFromSnapshotOnDocumentData, snapshotConverterFunctions, snapshotStreamDataForAccessor, snapshotStreamForAccessor, startAfter, startAt, startAtValue, storageListFilesResultFactory, storageListFilesResultHasNoNextError, storagePathFactory, streamFromOnSnapshot, systemStateCollectionReference, systemStateConverter, systemStateFirestoreCollection, systemStateIdentity, twoWayFlatFirestoreModelKey, unsupportedFirestoreDriverFunctionError, updateWithAccessorUpdateAndConverterFunction, useContextAuth, useContextAuthUid, useDocumentSnapshot, useDocumentSnapshotData, useFirebaseModelsService, where, whereDateIsBefore, whereDateIsBeforeWithSort, whereDateIsBetween, whereDateIsInRange, whereDateIsOnOrAfter, whereDateIsOnOrAfterWithSort, whereDocumentId, whereStringHasRootIdentityModelKey, whereStringValueHasPrefix };
9083
+ export { AbstractFirestoreDocument, AbstractFirestoreDocumentDataAccessorWrapper, AbstractFirestoreDocumentWithParent, BASE_MODEL_STORAGE_FILE_PATH, CALL_MODEL_APP_FUNCTION_KEY, COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION, CREATE_MODEL_APP_FUNCTION_KEY, ContextGrantedModelRolesReaderInstance, 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_QUERY_CHANGE_WATCHER_DELAY, DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER, DEFAULT_WEBSITE_LINK, DELETE_MODEL_APP_FUNCTION_KEY, 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_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, FirestoreItemPageIterationInstance, InferredTargetModelIdParams, InferredTargetModelParams, IsFirestoreModelId, IsFirestoreModelKey, 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, READ_MODEL_APP_FUNCTION_KEY, RUN_DEV_FUNCTION_APP_FUNCTION_KEY, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, ScheduledFunctionDevelopmentFirebaseFunctionParams, ScheduledFunctionDevelopmentFunctionTypeEnum, SystemStateDocument, SystemStateFirestoreCollections, TargetModelIdParams, TargetModelParams, UPDATE_MODEL_APP_FUNCTION_KEY, addConstraintToBuilder, addOrReplaceLimitInConstraints, allChildDocumentsUnderParent, allChildDocumentsUnderParentPath, allChildDocumentsUnderRelativePath, asTopLevelFieldPath, asTopLevelFieldPaths, assertFirestoreUpdateHasData, assertStorageUploadOptionsStringFormat, assignDateCellRangeFunction, assignDateCellScheduleFunction, assignUnitedStatesAddressFunction, assignWebsiteFileLinkFunction, assignWebsiteLinkFunction, buildFirebaseCollectionTypeModelTypeMap, callModelFirebaseFunctionMapFactory, childFirestoreModelKey, childFirestoreModelKeyPath, childFirestoreModelKeys, clientFirebaseFirestoreContextFactory, clientFirebaseStorageContextFactory, contextGrantedModelRolesReader, contextGrantedModelRolesReaderDoesNotExistErrorMessage, contextGrantedModelRolesReaderPermissionErrorMessage, convertHttpsCallableErrorToReadableError, copyDocumentIdForUserRelatedModifierFunction, copyDocumentIdToFieldModifierFunction, copyUserRelatedDataAccessorFactoryFunction, copyUserRelatedDataModifierConfig, dataFromDocumentSnapshots, dataFromSnapshotStream, developmentFirebaseFunctionMapFactory, directDataHttpsCallable, documentData, documentDataFunction, documentDataWithIdAndKey, documentReferenceFromDocument, documentReferencesFromDocuments, documentReferencesFromSnapshot, endAt, endAtValue, endBefore, extendFirestoreCollectionWithSingleDocumentAccessor, filterConstraintsOfType, filterDisallowedFirestoreItemPageIteratorInputContraints, 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, firestoreClientIncrementUpdateToUpdateData, firestoreContextFactory, firestoreDate, firestoreDateCellRange, firestoreDateCellRangeArray, firestoreDateCellRangeAssignFn, firestoreDateCellSchedule, firestoreDateCellScheduleAssignFn, firestoreDencoderArray, firestoreDencoderMap, firestoreDencoderStringArray, firestoreDocumentAccessorContextExtension, firestoreDocumentAccessorFactory, firestoreDocumentLoader, firestoreDummyKey, firestoreEncodedArray, firestoreEncodedObjectMap, firestoreEnum, firestoreEnumArray, firestoreField, firestoreFieldConfigToModelMapFunctionsRef, firestoreIdBatchVerifierFactory, firestoreIdentityTypeArray, firestoreIdentityTypeArrayName, firestoreItemPageIteration, firestoreItemPageIterationFactory, firestoreLatLngString, firestoreMap, firestoreMapZoomLevel, firestoreModelId, firestoreModelIdArrayField, firestoreModelIdFromDocument, 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, firestoreNumber, firestoreObjectArray, firestorePassThroughField, firestoreQueryConstraint, firestoreQueryConstraintFactory, firestoreQueryFactory, firestoreSingleDocumentAccessor, firestoreString, firestoreSubObject, firestoreTimezoneString, firestoreUID, firestoreUniqueArray, firestoreUniqueKeyedArray, firestoreUniqueStringArray, firestoreUnitedStatesAddress, firestoreUnitedStatesAddressAssignFn, firestoreUpdateWithNoDataError, firestoreWebsiteFileLink, firestoreWebsiteFileLinkAssignFn, firestoreWebsiteFileLinkEncodedArray, firestoreWebsiteFileLinkObjectArray, firestoreWebsiteLink, firestoreWebsiteLinkArray, firestoreWebsiteLinkAssignFn, flatFirestoreModelKey, getDataFromDocumentSnapshots, getDocumentSnapshotData, getDocumentSnapshotDataPair, getDocumentSnapshotDataPairs, getDocumentSnapshotDataTuples, getDocumentSnapshotPair, getDocumentSnapshotPairs, getDocumentSnapshots, getDocumentSnapshotsData, grantFullAccessIfAdmin, grantFullAccessIfAuthUserRelated, grantModelRolesIfAdmin, grantModelRolesIfAdminFunction, grantModelRolesIfAuthUserRelatedModelFunction, grantModelRolesIfFunction, grantModelRolesIfHasAuthRolesFactory, grantModelRolesIfHasAuthRolesFunction, grantModelRolesOnlyIfFunction, inContextFirebaseModelServiceFactory, inContextFirebaseModelsServiceFactory, incrementUpdateWithAccessorFunction, inferKeyFromTwoWayFlatFirestoreModelKey, interceptAccessorFactoryFunction, isAdminInFirebaseModelContext, isFirebaseStorageObjectNotFoundError, isFirestoreModelId, isFirestoreModelKey, isOwnerOfUserRelatedModelInFirebaseModelContext, iterateFirestoreDocumentSnapshotBatches, iterateFirestoreDocumentSnapshotCheckpoints, iterateFirestoreDocumentSnapshotPairBatches, iterateFirestoreDocumentSnapshotPairs, iterateFirestoreDocumentSnapshots, iterationQueryDocChangeWatcher, iterationQueryDocChangeWatcherChangeTypeForGroup, latestDataFromDocuments, latestSnapshotsFromDocuments, lazyFirebaseFunctionsFactory, limit, limitToLast, limitedFirestoreDocumentAccessorFactory, loadDocumentsForDocumentReferences, loadDocumentsForDocumentReferencesFromValues, loadDocumentsForIds, loadDocumentsForIdsFromValues, loadDocumentsForKeys, loadDocumentsForKeysFromValues, loadDocumentsForSnapshots, loadDocumentsForValues, makeDocuments, makeFirestoreCollection, makeFirestoreCollectionGroup, makeFirestoreCollectionWithParent, makeFirestoreItemPageIteratorDelegate, makeFirestoreQueryConstraintFunctionsDriver, makeRootSingleItemFirestoreCollection, makeSingleItemFirestoreCollection, mapDataFromSnapshot, mapHttpsCallable, modelFirebaseFunctionMapFactory, modelStorageSlashPathFactory, modifyBeforeSetInterceptAccessorFactoryFunction, newDocuments, noStringFormatInStorageUploadOptionsError, offset, onCallCreateModelParams, onCallCreateModelResult, onCallCreateModelResultWithDocs, onCallDeleteModelParams, onCallDevelopmentParams, onCallReadModelParams, onCallTypedModelParams, onCallTypedModelParamsFunction, onCallUpdateModelParams, optionalFirestoreArray, optionalFirestoreBoolean, optionalFirestoreDate, optionalFirestoreEnum, optionalFirestoreField, optionalFirestoreNumber, optionalFirestoreString, optionalFirestoreUID, optionalFirestoreUnitedStatesAddress, orderBy, orderByDocumentId, readFirestoreModelKey, replaceConstraints, selectFromFirebaseModelsService, separateConstraints, setIdAndKeyFromKeyIdRefOnDocumentData, setIdAndKeyFromSnapshotOnDocumentData, snapshotConverterFunctions, snapshotStreamDataForAccessor, snapshotStreamForAccessor, startAfter, startAt, startAtValue, storageListFilesResultFactory, storageListFilesResultHasNoNextError, storagePathFactory, streamFromOnSnapshot, systemStateCollectionReference, systemStateConverter, systemStateFirestoreCollection, systemStateIdentity, twoWayFlatFirestoreModelKey, unsupportedFirestoreDriverFunctionError, updateWithAccessorUpdateAndConverterFunction, useContextAuth, useContextAuthUid, useDocumentSnapshot, useDocumentSnapshotData, useFirebaseModelsService, 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": "10.0.17",
3
+ "version": "10.0.19",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./src/index.d.ts",
@@ -77,4 +77,21 @@ export type ModelFirebaseFunctionMap<M extends FirebaseFunctionTypeMap, C extend
77
77
  * Used for building a FirebaseFunctionMap<M> for a specific Functions instance.
78
78
  */
79
79
  export type ModelFirebaseFunctionMapFactory<M extends FirebaseFunctionTypeMap, U extends ModelFirebaseCrudFunctionTypeMap> = (functionsInstance: Functions) => ModelFirebaseFunctionMap<M, U>;
80
+ /**
81
+ * Creates a ModelFirebaseFunctionMapFactory for the input config that targets the "callModel" Firebase function.
82
+ *
83
+ * @param configMap
84
+ * @param crudConfigMap
85
+ * @returns
86
+ */
87
+ export declare function callModelFirebaseFunctionMapFactory<M extends FirebaseFunctionTypeMap, U extends ModelFirebaseCrudFunctionTypeMap>(configMap: FirebaseFunctionTypeConfigMap<M>, crudConfigMap: ModelFirebaseCrudFunctionConfigMap<U, FirestoreModelIdentity>): ModelFirebaseFunctionMapFactory<M, U>;
88
+ /**
89
+ * @deprecated move to using callModelFirebaseFunctionMapFactory instead and the call configuration in general.
90
+ *
91
+ * This will be removed in the next release.
92
+ *
93
+ * @param configMap
94
+ * @param crudConfigMap
95
+ * @returns
96
+ */
80
97
  export declare function modelFirebaseFunctionMapFactory<M extends FirebaseFunctionTypeMap, U extends ModelFirebaseCrudFunctionTypeMap>(configMap: FirebaseFunctionTypeConfigMap<M>, crudConfigMap: ModelFirebaseCrudFunctionConfigMap<U, FirestoreModelIdentity>): ModelFirebaseFunctionMapFactory<M, U>;
@@ -90,6 +90,46 @@ export declare function whereDateIsOnOrAfter(field: FieldPathOrStringPath, date?
90
90
  */
91
91
  export declare function whereDateIsOnOrAfterWithSort<T>(field: StringKeyPropertyKeys<T>, date?: Date, sortDirection?: OrderByDirection): FirestoreQueryConstraint[];
92
92
  export declare function whereDateIsOnOrAfterWithSort(field: FieldPathOrStringPath, date?: Date, sortDirection?: OrderByDirection): FirestoreQueryConstraint[];
93
+ /**
94
+ * Searches dates that are on or before the input date. If no date is input, uses now.
95
+ *
96
+ * @param field
97
+ * @param date
98
+ * @param sortDirection
99
+ */
100
+ export declare function whereDateIsOnOrBefore<T>(field: StringKeyPropertyKeys<T>, date?: Date): FirestoreQueryConstraint;
101
+ export declare function whereDateIsOnOrBefore(field: FieldPathOrStringPath, date?: Date): FirestoreQueryConstraint;
102
+ /**
103
+ * Searches dates that are on or before the input date. If no date is input, uses now.
104
+ *
105
+ * Sorts in descending order by default.
106
+ *
107
+ * @param field
108
+ * @param date
109
+ * @param sortDirection
110
+ */
111
+ export declare function whereDateIsOnOrBeforeWithSort<T>(field: StringKeyPropertyKeys<T>, date?: Date, sortDirection?: OrderByDirection): FirestoreQueryConstraint[];
112
+ export declare function whereDateIsOnOrBeforeWithSort(field: FieldPathOrStringPath, date?: Date, sortDirection?: OrderByDirection): FirestoreQueryConstraint[];
113
+ /**
114
+ * Searches dates that are on or after the input date. If no date is input, uses now.
115
+ *
116
+ * @param field
117
+ * @param date
118
+ * @param sortDirection
119
+ */
120
+ export declare function whereDateIsAfter<T>(field: StringKeyPropertyKeys<T>, date?: Date): FirestoreQueryConstraint;
121
+ export declare function whereDateIsAfter(field: FieldPathOrStringPath, date?: Date): FirestoreQueryConstraint;
122
+ /**
123
+ * Searches dates that are on or after the input date. If no date is input, uses now.
124
+ *
125
+ * Sorts in ascending order by default.
126
+ *
127
+ * @param field
128
+ * @param date
129
+ * @param sortDirection
130
+ */
131
+ export declare function whereDateIsAfterWithSort<T>(field: StringKeyPropertyKeys<T>, date?: Date, sortDirection?: OrderByDirection): FirestoreQueryConstraint[];
132
+ export declare function whereDateIsAfterWithSort(field: FieldPathOrStringPath, date?: Date, sortDirection?: OrderByDirection): FirestoreQueryConstraint[];
93
133
  /**
94
134
  * Searches dates that are on or after the input date. If no date is input, uses now.
95
135
  *
@@ -102,7 +142,7 @@ export declare function whereDateIsBefore(field: FieldPathOrStringPath, date?: D
102
142
  /**
103
143
  * Searches dates that are on or after the input date. If no date is input, uses now.
104
144
  *
105
- * Sorts in ascending order by default.
145
+ * Sorts in descending order by default.
106
146
  *
107
147
  * @param field
108
148
  * @param date
@@ -1,37 +1,84 @@
1
1
  import { type ArrayOrValue } from '@dereekb/util';
2
2
  import { type DocumentReferenceRef } from '../firestore/reference';
3
3
  import { type FirestoreModelKey, type FirestoreModelType, type FirestoreModelTypeRef } from '../firestore/collection/collection';
4
+ /**
5
+ * Set of known call types. The basic CRUD functions.
6
+ */
7
+ export type KnownOnCallFunctionType = 'create' | 'read' | 'update' | 'delete';
8
+ /**
9
+ * A call function type specifier.
10
+ */
11
+ export type OnCallFunctionType = KnownOnCallFunctionType | string;
4
12
  export interface OnCallTypedModelParams<T = unknown> extends FirestoreModelTypeRef {
5
- specifier?: string;
6
- data: T;
13
+ /**
14
+ * Call type. Should typically be defined.
15
+ */
16
+ readonly call?: OnCallFunctionType;
17
+ /**
18
+ * Call sub-function specifier.
19
+ */
20
+ readonly specifier?: string;
21
+ /**
22
+ * Call data
23
+ */
24
+ readonly data: T;
7
25
  }
26
+ /**
27
+ *
28
+ */
29
+ export type OnCallTypeModelParamsFunction = <T>(modelTypeInput: FirestoreModelType | FirestoreModelTypeRef, data: T, specifier?: string) => OnCallTypedModelParams<T>;
30
+ /**
31
+ * Creates a OnCallTypedModelParamsFunction
32
+ *
33
+ * @param call
34
+ * @returns
35
+ */
36
+ export declare function onCallTypedModelParamsFunction(call?: string): OnCallTypeModelParamsFunction;
37
+ /**
38
+ * Pre-configured OnCallTypedModelParamsFunctions for 'create'
39
+ */
40
+ export declare const onCallCreateModelParams: OnCallTypeModelParamsFunction;
41
+ /**
42
+ * Pre-configured OnCallTypedModelParamsFunctions for 'read'
43
+ */
44
+ export declare const onCallReadModelParams: OnCallTypeModelParamsFunction;
45
+ /**
46
+ * Pre-configured OnCallTypedModelParamsFunctions for 'update'
47
+ */
48
+ export declare const onCallUpdateModelParams: OnCallTypeModelParamsFunction;
49
+ /**
50
+ * Pre-configured OnCallTypedModelParamsFunctions for 'delete'
51
+ */
52
+ export declare const onCallDeleteModelParams: OnCallTypeModelParamsFunction;
8
53
  /**
9
54
  * Creates a OnCallTypedModelParams
10
55
  *
56
+ * @deprecated use onCallTypedModelParamsFunction instead.
57
+ *
11
58
  * @param modelType
12
59
  * @param data
13
60
  * @returns
14
61
  */
15
- export declare function onCallTypedModelParams<T>(modelTypeInput: FirestoreModelType | FirestoreModelTypeRef, data: T, specifier?: string): OnCallTypedModelParams<T>;
62
+ export declare function onCallTypedModelParams<T>(modelTypeInput: FirestoreModelType | FirestoreModelTypeRef, data: T, specifier?: string, call?: string): OnCallTypedModelParams<T>;
16
63
  /**
17
- * Key used on the front-end and backend that refers to a specific function for creating models.
64
+ * Key used on the front-end and backend that refers to the call function.
65
+ */
66
+ export declare const CALL_MODEL_APP_FUNCTION_KEY = "callModel";
67
+ /**
68
+ * OnCallTypedModelParams for Create calls.
18
69
  */
19
- export declare const CREATE_MODEL_APP_FUNCTION_KEY = "createModel";
20
70
  export type OnCallCreateModelParams<T = unknown> = OnCallTypedModelParams<T>;
21
71
  /**
22
- * Key used on the front-end and backend that refers to a specific function for reading models.
72
+ * OnCallTypedModelParams for Read calls.
23
73
  */
24
- export declare const READ_MODEL_APP_FUNCTION_KEY = "readModel";
25
74
  export type OnCallReadModelParams<T = unknown> = OnCallTypedModelParams<T>;
26
75
  /**
27
- * Key used on the front-end and backend that refers to a specific function for updating models.
76
+ * OnCallTypedModelParams for Update calls.
28
77
  */
29
- export declare const UPDATE_MODEL_APP_FUNCTION_KEY = "updateModel";
30
78
  export type OnCallUpdateModelParams<T = unknown> = OnCallTypedModelParams<T>;
31
79
  /**
32
- * Key used on the front-end and backend that refers to a specific function for deleting models.
80
+ * OnCallTypedModelParams for Delete calls.
33
81
  */
34
- export declare const DELETE_MODEL_APP_FUNCTION_KEY = "deleteModel";
35
82
  export type OnCallDeleteModelParams<T = unknown> = OnCallTypedModelParams<T>;
36
83
  export interface OnCallCreateModelResult {
37
84
  /**
@@ -41,3 +88,27 @@ export interface OnCallCreateModelResult {
41
88
  }
42
89
  export declare function onCallCreateModelResultWithDocs(result: ArrayOrValue<DocumentReferenceRef<unknown>>): OnCallCreateModelResult;
43
90
  export declare function onCallCreateModelResult(modelKeys: ArrayOrValue<FirestoreModelKey>): OnCallCreateModelResult;
91
+ /**
92
+ * Key used on the front-end and backend that refers to a specific function for creating models.
93
+ *
94
+ * @deprecated Replaced by the callModel function.
95
+ */
96
+ export declare const CREATE_MODEL_APP_FUNCTION_KEY = "createModel";
97
+ /**
98
+ * Key used on the front-end and backend that refers to a specific function for reading models.
99
+ *
100
+ * @deprecated Replaced by the callModel function.
101
+ */
102
+ export declare const READ_MODEL_APP_FUNCTION_KEY = "readModel";
103
+ /**
104
+ * Key used on the front-end and backend that refers to a specific function for updating models.
105
+ *
106
+ * @deprecated Replaced by the callModel function.
107
+ */
108
+ export declare const UPDATE_MODEL_APP_FUNCTION_KEY = "updateModel";
109
+ /**
110
+ * Key used on the front-end and backend that refers to a specific function for deleting models.
111
+ *
112
+ * @deprecated Replaced by the callModel function.
113
+ */
114
+ export declare const DELETE_MODEL_APP_FUNCTION_KEY = "deleteModel";
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
+ ## [10.0.19](https://github.com/dereekb/dbx-components/compare/v10.0.18-dev...v10.0.19) (2024-02-13)
6
+
7
+
8
+
9
+ ## [10.0.18](https://github.com/dereekb/dbx-components/compare/v10.0.17-dev...v10.0.18) (2024-02-13)
10
+
11
+
12
+
5
13
  ## [10.0.17](https://github.com/dereekb/dbx-components/compare/v10.0.16-dev...v10.0.17) (2024-02-06)
6
14
 
7
15
 
package/test/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase/test",
3
- "version": "10.0.17",
3
+ "version": "10.0.19",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {
6
6
  "@dereekb/util": "*",
@@ -661,6 +661,28 @@ function describeFirestoreQueryDriverTests(f) {
661
661
  * Since we choose to store dates as strings, we can compare ranges of dates.
662
662
  */
663
663
  describe('Searching Date Strings', () => {
664
+ describe('whereDateIsAfterWithSort()', () => {
665
+ it('should return models with dates after the input.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
666
+ var _a, _b;
667
+ const startHoursLater = 2;
668
+ const start = (0, date_fns_1.addHours)(startDate, startHoursLater);
669
+ const result = yield query((0, firebase_1.whereDateIsAfterWithSort)('date', start)).getDocs();
670
+ expect(result.docs.length).toBe(startHoursLater);
671
+ // ascending order by default
672
+ expect((_a = result.docs[0].data().date) === null || _a === void 0 ? void 0 : _a.toISOString()).toBe((0, date_fns_1.addHours)(start, 1).toISOString());
673
+ expect((_b = result.docs[1].data().date) === null || _b === void 0 ? void 0 : _b.toISOString()).toBe((0, date_fns_1.addHours)(start, 2).toISOString());
674
+ }));
675
+ it('should return models with dates after the input in descending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
676
+ var _c, _d;
677
+ const startHoursLater = 2;
678
+ const start = (0, date_fns_1.addHours)(startDate, startHoursLater);
679
+ const result = yield query((0, firebase_1.whereDateIsAfterWithSort)('date', start, 'desc')).getDocs();
680
+ expect(result.docs.length).toBe(startHoursLater);
681
+ // check descending order
682
+ expect((_c = result.docs[0].data().date) === null || _c === void 0 ? void 0 : _c.toISOString()).toBe((0, date_fns_1.addHours)(start, 2).toISOString());
683
+ expect((_d = result.docs[1].data().date) === null || _d === void 0 ? void 0 : _d.toISOString()).toBe((0, date_fns_1.addHours)(start, 1).toISOString());
684
+ }));
685
+ });
664
686
  describe('whereDateIsBeforeWithSort()', () => {
665
687
  it('should return models with dates before the input.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
666
688
  var _a, _b;
@@ -684,7 +706,7 @@ function describeFirestoreQueryDriverTests(f) {
684
706
  }));
685
707
  });
686
708
  describe('whereDateIsOnOrAfterWithSort()', () => {
687
- it('should return models with dates before the input.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
709
+ it('should return models with dates after the input.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
688
710
  var _a, _b, _c;
689
711
  const startHoursLater = 2;
690
712
  const start = (0, date_fns_1.addHours)(startDate, startHoursLater);
@@ -695,7 +717,7 @@ function describeFirestoreQueryDriverTests(f) {
695
717
  expect((_b = result.docs[1].data().date) === null || _b === void 0 ? void 0 : _b.toISOString()).toBe((0, date_fns_1.addHours)(start, 1).toISOString());
696
718
  expect((_c = result.docs[2].data().date) === null || _c === void 0 ? void 0 : _c.toISOString()).toBe((0, date_fns_1.addHours)(start, 2).toISOString());
697
719
  }));
698
- it('should return models with dates before the input in descending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
720
+ it('should return models with dates after the input in descending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
699
721
  var _d, _e, _f;
700
722
  const startHoursLater = 2;
701
723
  const start = (0, date_fns_1.addHours)(startDate, startHoursLater);
@@ -707,6 +729,30 @@ function describeFirestoreQueryDriverTests(f) {
707
729
  expect((_f = result.docs[2].data().date) === null || _f === void 0 ? void 0 : _f.toISOString()).toBe((0, date_fns_1.addHours)(start, 0).toISOString());
708
730
  }));
709
731
  });
732
+ describe('whereDateIsOnOrBeforeWithSort()', () => {
733
+ it('should return models with dates before the input.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
734
+ var _a, _b, _c;
735
+ const startHoursLater = 2;
736
+ const endDate = (0, date_fns_1.addHours)(startDate, startHoursLater);
737
+ const result = yield query((0, firebase_1.whereDateIsOnOrBeforeWithSort)('date', endDate)).getDocs();
738
+ expect(result.docs.length).toBe(3);
739
+ // descending order by default
740
+ expect((_a = result.docs[0].data().date) === null || _a === void 0 ? void 0 : _a.toISOString()).toBe((0, date_fns_1.addHours)(endDate, 0).toISOString());
741
+ expect((_b = result.docs[1].data().date) === null || _b === void 0 ? void 0 : _b.toISOString()).toBe((0, date_fns_1.addHours)(endDate, -1).toISOString());
742
+ expect((_c = result.docs[2].data().date) === null || _c === void 0 ? void 0 : _c.toISOString()).toBe((0, date_fns_1.addHours)(endDate, -2).toISOString());
743
+ }));
744
+ it('should return models with dates before the input in ascending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
745
+ var _d, _e, _f;
746
+ const startHoursLater = 2;
747
+ const endDate = (0, date_fns_1.addHours)(startDate, startHoursLater);
748
+ const result = yield query((0, firebase_1.whereDateIsOnOrBeforeWithSort)('date', endDate, 'asc')).getDocs();
749
+ expect(result.docs.length).toBe(3);
750
+ // check ascending order
751
+ expect((_d = result.docs[0].data().date) === null || _d === void 0 ? void 0 : _d.toISOString()).toBe((0, date_fns_1.addHours)(endDate, -2).toISOString());
752
+ expect((_e = result.docs[1].data().date) === null || _e === void 0 ? void 0 : _e.toISOString()).toBe((0, date_fns_1.addHours)(endDate, -1).toISOString());
753
+ expect((_f = result.docs[2].data().date) === null || _f === void 0 ? void 0 : _f.toISOString()).toBe((0, date_fns_1.addHours)(endDate, 0).toISOString());
754
+ }));
755
+ });
710
756
  describe('whereDateIsInRange()', () => {
711
757
  it('should return the date values within the given range.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
712
758
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"test.driver.query.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/test/src/lib/common/firestore/test.driver.query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.driver.query.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/test/src/lib/common/firestore/test.driver.query.ts"],"names":[],"mappings":"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"}